ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:16.33KB ,
资源ID:3181450      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3181450.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机交通灯汇编代码.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机交通灯汇编代码.docx

1、单片机交通灯汇编代码1、倒计时交通灯 源程序: CMD_8279 EQU 0BF01 DA TA_8279 EQU 0BF00 ORG OOOOH LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0040H MAIN: MOV SP,#50H LCALL INIT8279 MOV 30H,#16 MOV 31H,#16 MOV 20H,#0 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#82H CLR TR0 MOV 40H,#00H ;主循环用于检测有没有键按下,并取键值 STAR: LCALL DISPLAY ST

2、AR0: LCALL SCAN_KEY JNC STAR0 STAR1: LCALL KEY_NUM CJNE A,#0AH,NEQ MOV A,30H SW AP A ADD A,31H MOV 50H,A LCALL JIAOTONG NEQ: JNC KEY_B SJMP DA TAKEY KEY_B: CJNE A,#0BH,STAR0 SETB 20H.1 LJMP STAR DA TAKEY: MOV 30H,31H MOV 31H,A LJMP STAR ;交通灯控制程序 JIAOTONG:MOV P1,#7EH LCALL DISPLAY30S JB 20H.1,MAIN MO

3、V P1,#0BDH LCALL DISPLAY2S JB 20H.1,MAIN MOV P1,#0DBH LCALL DISPLAY30S JB 20H.1,MAIN MOV P1,#0BDH LCALL DISPLAY2S JB 20H.1,MAIN SJMP JIAOTONG ;8279初始化程序 INIT8279:MOV DPTR,#CMD_8279 MOV A,#34H MOVX DPTR,A MOV A,#90H MOVX DPTR,A INIT8279_1:LCALL CLEAR MOV A,#90H MOVX DPTR,A RET CLEAR: MOV A,#0DEH MOV

4、DPTR,#CMD_8279 MOVX DPTR,A WAIT1: MOVX A,DPTR JB ACC.7,W AIT1 RET ;扫描键盘并取键值子程序 ;键值存放在A中 SCAN_KEY:MOV DPTR,#CMD_8279 MOVX A,DPTR READ_FIFO:ANL A,#7 JZ NO_KEY READ: MOV A,#40H MOVX DPTR,A MOV DPTR,#DA TA_8279 MOVX A,DPTR SETB C SCAN_KEY1:RET NO_KEY: CLR C SJMP SCAN_KEY1 KEY_NUM:ANL A,#3FH RET ;显示子程序 D

5、ISPLAY:PUSH 07H MOV R0,#30H MOV DPTR,#LED_TAB MOV P2,#0BFH MOV R1,#01H MOV A,#90H MOVX R1,A MOV R1,#00H MOV R7,#2 DISPLAY1:MOV A,R0 MOVC A,A+DPTR MOVX R1,A INC R0 DJNZ R7,DISPLA Y1 POP 07H RET ;共阳极LED字形码表 LED_TAB: DB 0C0H,0F9H,0A4H,0b0h,99h,92h,82h,0f8h; DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH; DB 0FF

6、H; ;中断服务子程序 INT_T0: PUSH ACC MOV TH0,#3CH MOV TL0,#0B0H INC 40H MOV A,40H CJNE A,#20,INT_T01 MOV 40H,#00H CLR C CLR A MOV A,#9AH SUBB A,#01H ADD A,60H DA A MOV 60H,A INT_T01: POP ACC RETI ;延时30S并显示子程序 DISPLAY30S:MOV 60H,50H LCALL DECSEC RET ;延时2S并显示子程序 DISPLAY2S:MOV 60H,#02H LCALL DECSEC RET ;自减1子程序

7、 DECSEC: SETB TR0 MOV A,60H MOV R0,#31H LCALL P_BCD LCALL DISPLAY LCALL SCAN_KEY JC XIUGAI CONTINUE:MOV A,60H CJNE A,#00H,DECSEC MOV R0,#31H LCALL P_BCD LCALL DISPLAY SJMP OUT OUT: RET ;拆字子程序 P-BCD: MOV R0,A ANL A,#0FH XCH A,R0 DEC R0 SW AP A ANL A,#0FH MOV R0,A DEC R0 RET END Z8279 EQU 0FF82H ;8279

8、 状态/命令口地址 D8279 EQU 0FF80H ;8279 数据口地址 LEDMOD EQU 00H ;左边输入八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 33H ;扫描速率 LEDCLS EQU 0C1H ;清除显示RAM LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 ORG 0000H LJMP START ORG 0003H ;INT 0 中断入口地址 LJMP INT_0 ORG 001BH ;T1中断入口地址 LJMP INT_T1 ORG 0040H START: MOV SP,#60H MOV TMOD,#10H ;置T1为方式1

9、SETB EX0 ;INT 0 中断有效 SETB IT0 SETB EA MOV TL1,#00H ;延时50mS 常数 MOV TH1,#4cH MOV R0,#2 ;延时100mS 常数 SETB TR1 ;启动T1 SETB ET1 setb pt1 ;必须设置定时器1的中断优先级高于外部中断0 LCALL INIT8279 ;初始化8279 LCALL STA TUS0 ;初始状态(都是红灯) CIRCLE: LCALL STA TUS1 ;南北绿灯,东西红灯 LCALL STA TUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STA TUS3 ;南北红灯,东西绿灯 LCALL

10、STA TUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLE INT_0: PUSH PSW ;保护现场 PUSH 2 PUSH 90H clr ex0 MOV P1,#0FH ;南北,东西都亮红灯 MOV R2,#100 ;延时10秒 LCALL DELAY_DISPLAY setb ex0 POP 90H ;恢复现场 POP 2 POP PSW RETI INT_T1: PUSH ACC PUSH PSW CLR TR1 MOV TL1,#00H ;延时50mS 常数 MOV TH1,#4CH SETB TR1 DJNZ R0,EXIT MOV R0,#2 ;延时100ms 常数

11、 DEC R2 EXIT: POP PSW POP ACC RETI STA TUS0: ;南北红灯,东西红灯 MOV P1,#0FH MOV R2,#10 ;延时1秒 LCALL DELAY_DISPLAY RET STA TUS1: ;南北绿灯,东西红灯 MOV P1,#96H ;南北绿灯,东西红灯 MOV R2,#200 ;延时20秒 LCALL DELAY_DISPLAY RET STA TUS2: ;南北绿灯闪转黄灯,东西红灯 MOV R3,#03H ;绿灯闪3次 FLASH: MOV P1,#9FH MOV R2,#03H LCALL DELAY_DISPLAY MOV P1,#9

12、6H MOV R2,#03H LCALL DELAY_DISPLAY DJNZ R3,FLASH MOV P1,#06H ;南北黄灯,东西红灯 MOV R2,#10 ;延时1秒 LCALL DELAY_DISPLAY RET STA TUS3: ;南北红灯,东西绿灯 MOV P1,#69H MOV R2,#200 ;延时20秒 LCALL DELAY_DISPLAY RET STA TUS4: ;南北红灯,东西绿灯闪转黄灯 MOV R3,#03H ;绿灯闪3次 FLASH1: MOV P1,#6FH MOV R2,#03H LCALL DELAY_DISPLAY MOV P1,#69H MOV

13、 R2,#03H LCALL DELAY_DISPLAY DJNZ R3,FLASH1 MOV P1,#09H ;南北红灯,东西黄灯 MOV R2,#10 ;延时1秒 LCALL DELAY_DISPLAY NOP RET INIT8279: ;8279初始化子程序 PUSH DPH ;保存现场 PUSH DPL PUSH ACC LCALL DELAY;延时 MOV DPTR ,#Z8279 MOV A,#LEDMOD ;置8279工作方式 MOVX DPTR,A MOV A,#LEDFEQ ;置键盘扫描速率 MOVX DPTR,A MOV A,#LEDCLS ;清除LED 显示 MOVX

14、DPTR,A LCALL DELAY;延时 POP ACC ;恢复现场 POP DPL POP DPH RET ;显示字符子程序 ;输入: R4,位置R5,值 DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0 ;置显示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#Z8279 MOVX DPTR,A;设定显示位置 MOV DPTR,#LEDSEG ;置显示常数表起始位置 MOV A,R5 MOVC A,A+DPTR ;查表 MOV DPTR,#D8279 MOVX DPTR,A;显示数据 POP ACC ;恢复现场 POP DPL POP DPH RET DELAY: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0,#0H DELAY1: MOV 1,#0H DJNZ 1,$ DJNZ 0,DELAY1 POP 1 ;恢复现场 POP0 RET DELAY_DISPLAY: ;延时和显示时间子程序 PUSH 1 PUSH 0 push acc

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1