第一范文网 - 专业文章范例文档资料分享平台

基于单片机的交通灯的设计报告(程序为汇编语言) - 图文

来源:用户分享 时间:2025/8/17 17:43:30 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

秒的时间,另一种是采用软延时的方法。 5.2、1秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序. 5.3、相应程序代码 (1)主程序

定时器需定时10毫秒,故T0工作于方式1。 初值: T0初值=216-fose/12Xt=216-(12X106X0.01)/12=55536D=D8F0H ORG 0000H

MAIN: MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H

SETB EA SETB ET0

SETB TR0

SETB EX0 SETB EX1 SETB IT0 CLR IT1 SETB PT0 (2)中断服务子程序

ORG 000BH

ZHD2: MOV TL0,#0F0H ;重先赋值 MOV TH0,#0D8H CLR P3.4 RETI 5.4、键盘显示流程图

主程序 “加”键按下 键盘“设置”按下 “加”数字显示程序 “减”数字显示程序 “减”键按下 主程序 程序设 置

5.5、 软件延时

MCS-51的工作频率为2-12MHZ,我们选用的AT89C51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就可

5

以通过指令的执行条数来确定1秒的时间。 具体的延时程序分析:

DEL: MOV R7,#40 ; ;延时10ms DEL1: MOV R6,#123

NOP

DEL2: DJNZ R6,DEL2

DJNZ R7,DEL1 RET 5.6、软件流程图:见附录Ⅱ 5.7、源程序代码

ORG 0000H ;伪指令、程序开始、中断入口地址

LJMP MAIN ORG 0003H LJMP ZHD1 ORG 000BH LJMP ZHD2 ORG 0013H LJMP ZHD3 ORG 1000H ;主程序

MAIN:MOV TMOD,#01H ;设工作方式

MOV TL0,#0F0H ;设初值 ,单片机晶振12M,定时10MS MOV TH0,#0D8H

SETB EA ;开放总中断 SETB ET0 ;开放T0中断 SETB TR0 ;启动T0定时 SETB EX0 ;开放外中断0 SETB EX1 ;开放外中断1

SETB IT0 ;设外中断0为边沿触发 CLR IT1 ;设外中断1为低电平有效 SETB PT0

CYCLE:MOV R0,#60 ;AB方向绿灯显示时间 MOV R1,#65 ;CD方向红灯显示时间 MOV R2,#25 ;为延时1秒而用 ;CD红灯 AB绿灯 LOOP1:SETB P3.4 MOV P1,#01H

SETB P1.7 ;点亮红灯 SETB P1.4 ;点亮绿灯

LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP1 MOV R2,#25 DEC R1

DJNZ R0,LOOP1

6

MOV R0,#3 ;AB方向黄灯显示时间 ;CD红灯 AB黄灯 LOOP2:MOV P1,#01H

SETB P1.7 ;点亮红灯 SETB P1.3 ;点亮黄灯

LLJ: LCALL DISPLAY ;调用显示程序 CPL P1.3 DJNZ R2,LLJ DEC R1

MOV R2,#25 DJNZ R0,LOOP2

MOV R0,#40 ;CD红灯 AB红灯 LOOP3:MOV P1,#01H

SETB P1.7 SETB P1.2 LCALL DISPLAY DJNZ R2,LOOP3 MOV R2,#25 DEC R0

DJNZ R1,LOOP3

MOV R1,#35 ;CD绿灯 AB红灯 LOOP4:MOV P1,#01H

SETB P1.5 SETB P1.2 LCALL DISPLAY DJNZ R2,LOOP4 MOV R2,#25 DEC R0

DJNZ R1,LOOP4

MOV R1,#3 ;CD黄灯 AB红灯 LOOP5:MOV P1,#01H

SETB P1.6 SETB P1.2 LLJ1: LCALL DISPLAY CPL P1.6

DJNZ R2,LLJ1 MOV R2,#25 DEC R0

DJNZ R1,LOOP5 LJMP CYCLE ;键盘中断程序

;AB方向红灯显示时间 点亮红灯 点亮红灯

;调用显示程序 ;CD方向绿灯显示时间 ;点亮绿灯 ;点亮红灯

;调用显示程序 ;CD方向黄灯显示时间 ;点亮黄灯 ;点亮红灯

;调用显示程序 7

; ;

ZHD1: LCALL DISPLAY JB P3.6,Q2 INC R1 INC R0

CJNE R1,#99,TIAO2 MOV R1,#00H

TIAO2:CJNE R0,#99,TIAO3 MOV R0,#00H

TIAO3:LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY JNB P1.0,Z2 Q2: JB P3.7,WAIT1 DEC R1 DEC R0

CJNE R1,#00H,TIAO MOV R1,#99

TIAO: CJNE R0,#00H,TIAO1 MOV R0,#99

TIAO1:LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY WAIT1:JNB P1.0,Z2 WAIT: LJMP ZHD1 Z2: RETI ;时间中断程序

ZHD2: MOV TL0,#0F0H ;重先赋值 MOV TH0,#0D8H CLR P3.4 RETI

;应急通道中断程序 ZHD3:MOV P1,#85H

MOV P0,#30H MOV P2,#30H JNB P3.3,ZHD3 RETI ;数显显示

DISPLAY:MOV A,R0 ;AB方向时间的显示

8

基于单片机的交通灯的设计报告(程序为汇编语言) - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8k1l81j6en721et5igwu_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top