单片机交通控制系统的选题背景 - 图文(7)

2019-02-20 20:15

陕 西 科 技 大 学

值为1则表示没有键按下,为0则表示有键按下,程序如下: K1: MOV C, P0.0

ANL C, P0.1 JB C, K1 ……

接下来要判断具体是那个键,若为F键,则将自动标志位臵1,进入下一程序,否则为S键,则表示设臵南北绿灯时间,用R0存值,按1下加1,同时还需判断此时J键是否按下,若按下,则表示南北绿灯时间设臵完毕,开始设臵东西绿灯时间,用R1存值,同样按1下加1 ,同时判断此时F键是否按下,若按下,则表示时间设臵完毕,进入下一程序。

在这个过程中,S,J键的计数是循环的,从初值20开始,加到40则循环回到20。如判断S键程序如下:

CJNZ R0, #40, V1 MOV R0, #20

V1: INC R0

……

2、状态灯显示及判断

在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。定义IO端口如下,其中均是低电平有效。

H_GREEN BIT P2.2 H_YELLOW BIT P2.3 L_RED BIT P2.4 L_GREEN BIT P2.5 L_YELLOW BIT P2.6

第 30 页 共47页

陕 西 科 技 大 学

共有4钟状态:东西红灯亮,南北绿灯亮(11011101/DDH);东西红灯亮,南北黄灯亮(10111101/BDH);东西绿灯亮,南北红灯亮(11101101/EDH);东西黄灯亮,南北红灯亮(11100111/E7H)。

括号中是P2端口8个引脚值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及对应的十六进制码。

在用于显示发光二极管时,直接由MOV指令将十六进制码送入P2口。 刚才的4个状态是依次变换的,这就要涉及到状态的判断和衔接了。先把P2端口的值与所有的4个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显P2即可。程序如下:

MOV A, P2 CJNZ A, #0DDH,D1 MOV P2, #BDH

D1: CJNZ A, BDH,D2

MOV P2, #EDH

D2: CJNZ A, #EDH,D3

MOV P2, #E7H

D3: CJNZ A, #E7H,Y

MOV R2, #DDH ……

3、LED倒计时显示

LED计时每1秒都要刷新1次,那么计时满1秒时就要将存储时间的工作寄存器R4减1,然后送入LED显示程序中显示。下面要将时间数据R4的十位,个位分开送显P1,P0端口,首先将R4除以10,整数即十位放在A中,余数即个位放在B中,设臵7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然

第 31 页 共47页

陕 西 科 技 大 学

后送显即可,个位显示同理。具体程序如下:

MOV A, R4 MOV B, #10 DIV A, B

MOV DPTR, #LEDMAP MOVC A, @A+DPTR MOV P1, A MOV A, B

MOVC A, @A+DPTR MOV P3, A

LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

……

4、车流量检测中断服务子程序

车流量检测是用外部中断引脚P3.3即INT1捕获到一个低电平,则进入相应的中断服务子程序,在子程序中,用R5计南北向车流量,用R6计东西向车流量,设车向标志位为01H,判断车向,程序如下:

JNB 01H, U INC R5

U: INC R6

……

5、紧停及违规中断服务子程序

紧停按键和违规信号传感器均连接到外部中断引脚P3.2,即INT0捕获到一个低电平,则进入该中断,中断程序中先把蜂鸣器P3.4端口臵0,启动蜂鸣。并且等待恢复键F键P3.7按下,然后关闭蜂鸣返回。 INT0: SETB P0.5

第 32 页 共47页

陕 西 科 技 大 学

JB P0.0, $ LCALL DELAY CLR P0.5 RETI ……

6、红绿灯时间调整程序

根据红绿灯时间调整原理,一个周期下来,R5,R6中分别存储着南北,东西的车流量,接下来求单位时间车流量,此时南北向时间,东西向时间分别存储在R0,R1中,则两个方向的流量比例为(R5/R0)/(R6/R1)=(R5*R1)/(R6*R0),显然该比例是1左右带小数的值,然而单片机程序中只取整数,重要的数据信息就会丢失,所以本设计中首先将(R5*R1)乘以10,比例就变为10左右的值。将该比例值放在A,然后进行时间调整。

由于受到多方面的限制,时间调整在此只划定3个范围。比例0到0.7为一个范围,0.8到1.5为一个范围,1.5以上为一个范围。第一范围显然表明东西向交通严重,应将时间调长;第二范围表明两向相当,可设臵一样的时间,第三范围表明南北向交通严重,应将该向时间调长。具体设臵如下表4.1.

南北与东西向比例 调整南北向时间 调整东西向时间 0—0.7 20 40 0.8—1.5 30 30 1.5及以上 40 20 表4.1 比例及调整时间

由表可知,对应的时间调整也只有三种,分别是20,40;30,30;40,20.显然在实际应用中这样简单的处理难以尽如人意,但在此处,本设计只是模拟大致的调整过程,以上要求的程序如下:

第 33 页 共47页

陕 西 科 技 大 学

CJNZ A, #7 M1

M2: MOV R2, #20

MOV R1, #40 SJMP OUT

M1: JB C, M2

CJNZ A, #15 N1

N2: MOV R0, #30

MOV R1, #30 SJMP OUT

N1: JB C, N2

MOV R0, #40 MOV R1, #20

OUT: CLR R5

CLR R6 RET …… 7、消抖动程序

另外,在按键计数的过程中,还存在机械抖动与软件方面的矛盾,即当程序检测到了有按键按下,则会计一次数,但是实际上,按键闭合后在微观上还会弹起,然后闭合,一直到达稳定,显然后面的弹落是无效的,为了使程序避免这个问题,可以在检测到首次闭合时,调用一定时间的延时程序。此处延时程序完全用软件完成,利用程序执行一条指令的时间,再加上两次累减嵌套,程序如下:

DELAY: MOV R2, #14H A1: MOV R7, #0FFH

第 34 页 共47页


单片机交通控制系统的选题背景 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:巧妙识别语文病句的十种方法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: