单片机红绿灯的汇编语言程序设计.doc

单片机红绿灯的汇编语言程序设计.doc

ID:51935334

大小:25.50 KB

页数:7页

时间:2020-03-19

单片机红绿灯的汇编语言程序设计.doc_第1页
单片机红绿灯的汇编语言程序设计.doc_第2页
单片机红绿灯的汇编语言程序设计.doc_第3页
单片机红绿灯的汇编语言程序设计.doc_第4页
单片机红绿灯的汇编语言程序设计.doc_第5页
资源描述:

《单片机红绿灯的汇编语言程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机红绿灯的汇编语言程序设计a>程序源代码ORG0000H;主程序的入口地址LJMPMAIN;跳转到主程序的开始处ORG0003H;外部中断0的中断程序入口地址ORG000BH;定时器0的中断程序入口地址LJMPT0_INT;跳转到中断服务程序处ORG0013H;外部中断1的中断程序入口地址MAIN:MOVSP,#50HMOVIE,#8EH;CPU开中断,允许T0中断,T1中断和外部中断1中断MOVTMOD,#51H;设置T1为计数方式,T0为定时方式,且都工作于模式1MOVTH1,#00H;T1计数器清零MOVTL

2、1,#00HSETBTR1;启动T1计时器SETBEX1;允许INT1中断SETBIT1;选择边沿触发方式MOVDPTR,#0003HMOVA,#80H;给8255赋初值,8255工作于方式0MOVX@DPTR,AAGAIN:JBP3.1,N0;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1则跳转MOVA,P1JBP1.7,RED;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间MOVR0,#00H;R0清零MOVR0,A;存入东西方向绿灯初始时间MOVR3,ALCALLDISP1LCALLDELA

3、YAJMPAGAINRED:MOVA,P1ANLA,#7FH1.7置0MOVR7,#00H;R7清零MOVR7,A;存入东西方向红灯初始时间MOVR3,ALCALLDISP1LCALLDELAYAJMPAGAIN;-------------------------------------------N0:SETBTR0;启动T0计时器MOV76H,R7;红灯时间存入76HN00:MOVA,76H;东西方向禁止,南北方向通行MOVR3,AMOVDPTR,#0000H;置8255A口,东西方向红灯亮,南北方向绿灯亮MOVA

4、,#0DDHMOVX@DPTR,AN01:JBP2.0,B0N02:SETBP3.0CJNER3,#00H,N01;比较R3中的值是否为0,不为0转到当前指令处执行;------黄灯闪烁5秒程序------N1:SETBP3.0MOVR3,#05HMOVDPTR,#0000H;置8255A口,东西,南北方向黄灯亮MOVA,#0D4HMOVX@DPTR,AN11:MOVR4,#00HN12:CJNER4,#7DH,$;黄灯持续亮0.5秒N13:MOVDPTR,#0000H;置8255A口,南北方向黄灯灭MOVA,#0DD

5、HMOVX@DPTR,AN14:MOVR4,#00HCJNER4,#7DH,$;黄灯持续灭0.5秒CJNER3,#00H,N1;闪烁时间达5秒则退出;------------------------------------------------------------N2:MOVR7,#00HMOVA,R0;东西通行,南北禁止MOVR3,AMOVDPTR,#0000H;置8255A口,东西方向绿灯亮,南北方向红灯亮MOVA,#0EBHMOVX@DPTR,AN21:JBP2.0,T03N22:CJNER3,#00H,N

6、21;------黄灯闪烁5秒程序------N3:MOVR3,#05HMOVDPTR,#0000H;置8255A口,东西,南北方向黄灯亮MOVA,#0E2HMOVX@DPTR,AN31:MOVR4,#00HCJNER4,#7DH,$;黄灯持续亮0.5秒N32:MOVDPTR,#0000H;置8255A口,南北方向黄灯灭MOVA,#0EBHMOVX@DPTR,AN33:MOVR4,#00HCJNER4,#7DH,$;黄灯持续灭0.5秒CJNER3,#00H,N3;闪烁时间达5秒则退出SJMPN00;------闯红灯报

7、警程序------B0:MOVR2,#03H;报警持续时间3秒B01:MOVA,R3JZN1;若倒计时完毕,不再报警CLRP3.0;报警CJNER2,#00H,B01;判断3秒是否结束SJMPN02;------1秒延时子程序-------N7:RETIT0_INT:MOVTL0,#9AH;给定时器T0送定时10ms的初值MOVTH0,#0F1HINCR4INCR5CJNER5,#0FAH,T01;判断延时是否够一秒,不够则调用显示子程序MOVR5,#00H;R5清零DECR3;倒计时初值减一DECR2;报警初值减一T

8、01:ACALLDISP;调用显示子程序RETI;中断返回;------显示子程序------DISP:JNBP2.4,T02DISP1:MOVB,#0AHMOVA,R3;R3中值二转十显示转换DIVABMOV79H,AMOV7AH,BDIS:MOVA,79H;显示十位MOVDPTR,#TABMOVCA,@A+DPTRMOVDPT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。