单片机交通灯汇编代码Word文件下载.docx
- 文档编号:16091225
- 上传时间:2022-11-19
- 格式:DOCX
- 页数:11
- 大小:16.33KB
单片机交通灯汇编代码Word文件下载.docx
《单片机交通灯汇编代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机交通灯汇编代码Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
STAR1:
LCALLKEY_NUM
CJNEA,#0AH,NEQ
MOVA,30H
SWAPA
ADDA,31H
MOV50H,A
LCALLJIAOTONG
NEQ:
JNCKEY_B
SJMPDATAKEY
KEY_B:
CJNEA,#0BH,STAR0
SETB20H.1
LJMPSTAR
DATAKEY:
MOV30H,31H
MOV31H,A
交通灯控制程序
JIAOTONG:
MOVP1,#7EH
LCALLDISPLAY30S
JB20H.1,MAIN
MOVP1,#0BDH
LCALLDISPLAY2S
MOVP1,#0DBH
SJMPJIAOTONG
8279初始化程序
INIT8279:
MOVDPTR,#CMD_8279MOVA,#34H
MOVX@DPTR,A
MOVA,#90H
INIT8279_1:
LCALLCLEAR
RET
CLEAR:
MOVA,#0DEH
MOVDPTR,#CMD_8279
WAIT1:
MOVXA,@DPTR
JBACC.7,WAIT1
扫描键盘并取键值子程序
键值存放在A中
SCAN_KEY:
MOVXA,@DPTR
READ_FIFO:
ANLA,#7
JZNO_KEY
READ:
MOVA,#40H
MOVDPTR,#DATA_8279
SETBC
SCAN_KEY1:
NO_KEY:
CLRC
SJMPSCAN_KEY1
KEY_NUM:
ANLA,#3FH
显示子程序
DISPLAY:
PUSH07H
MOVR0,#30H
MOVDPTR,#LED_TAB
MOVP2,#0BFH
MOVR1,#01H
MOVX@R1,A
MOVR1,#00H
MOVR7,#2
DISPLAY1:
MOVA,@R0
MOVCA,@A+DPTR
INCR0
DJNZR7,DISPLAY1
POP07H
共阳极LED字形码表
LED_TAB:
DB0C0H,0F9H,0A4H,0b0h,99h,92h,82h,0f8h;
DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH;
DB0FFH;
中断服务子程序
INT_T0:
PUSHACC
INC40H
MOVA,40H
CJNEA,#20,INT_T01MOV40H,#00H
CLRC
CLRA
MOVA,#9AH
SUBBA,#01H
ADDA,60H
DAA
MOV60H,A
INT_T01:
POPACC
RETI
延时30S并显示子程序
DISPLAY30S:
MOV60H,50HLCALLDECSEC
延时2S并显示子程序
DISPLAY2S:
MOV60H,#02HLCALLDECSEC
自减1子程序
DECSEC:
SETBTR0MOVA,60H
MOVR0,#31H
LCALLP_BCDLCALLDISPLAYLCALLSCAN_KEYJCXIUGAI
CONTINUE:
MOVA,60HCJNEA,#00H,DECSECMOVR0,#31H
LCALLP_BCDLCALLDISPLAYSJMPOUT
OUT:
RET
拆字子程序
P-BCD:
MOV@R0,AANLA,#0FH
XCHA,@R0
DECR0
ANLA,#0FH
MOV@R0,A
END
Z8279EQU0FF82H;
8279状态/命令口地址
D8279EQU0FF80H;
8279数据口地址
LEDMODEQU00H;
左边输入八位字符显示
外部译码键扫描方式,双键互锁
LEDFEQEQU33H;
扫描速率
LEDCLSEQU0C1H;
清除显示RAM
LEDWR0EQU80H;
设定的将要写入的显示RAM地址
ORG0000H
LJMPSTART
ORG0003H;
INT0中断入口地址
LJMPINT_0
ORG001BH;
T1中断入口地址
LJMPINT_T1
START:
MOVSP,#60H
MOVTMOD,#10H;
置T1为方式1
SETBEX0;
INT0中断有效
SETBIT0
SETBEA
MOVTL1,#00H;
延时50mS常数
MOVTH1,#4cH
MOVR0,#2;
延时100mS常数
SETBTR1;
启动T1
SETBET1
setbpt1;
必须设置定时器1的中断优先级高于外部中断0
LCALLINIT8279;
初始化8279
LCALLSTATUS0;
初始状态(都是红灯)
CIRCLE:
LCALLSTATUS1;
南北绿灯,东西红灯
LCALLSTATUS2;
南北绿灯闪转黄灯,东西红灯
LCALLSTATUS3;
南北红灯,东西绿灯
LCALLSTATUS4;
南北红灯,东西绿灯闪转黄灯
LJMPCIRCLE
INT_0:
PUSHPSW;
保护现场
PUSH2
PUSH90H
clrex0
MOVP1,#0FH;
南北,东西都亮红灯
MOVR2,#100;
延时10秒
LCALLDELAY_DISPLAY
setbex0
POP90H;
恢复现场
POP2
POPPSW
INT_T1:
PUSHACC
PUSHPSW
CLRTR1
MOVTH1,#4CH
SETBTR1
DJNZR0,EXIT
延时100ms常数
DECR2
EXIT:
POPACC
STATUS0:
;
南北红灯,东西红灯
MOVP1,#0FH
MOVR2,#10;
延时1秒
STATUS1:
MOVP1,#96H;
MOVR2,#200;
延时20秒
STATUS2:
MOVR3,#03H;
绿灯闪3次
FLASH:
MOVP1,#9FH
MOVR2,#03H
MOVP1,#96H
DJNZR3,FLASH
MOVP1,#06H;
南北黄灯,东西红灯
STATUS3:
MOVP1,#69H
STATUS4:
FLASH1:
MOVP1,#6FH
DJNZR3,FLASH1
MOVP1,#09H;
南北红灯,东西黄灯
NOP
8279初始化子程序
PUSHDPH;
保存现场
PUSHDPL
LCALLDELAY;
延时
MOVDPTR,#Z8279
MOVA,#LEDMOD;
置8279工作方式
MOVA,#LEDFEQ;
置键盘扫描速率
MOVA,#LEDCLS;
清除LED显示
POPACC;
POPDPL
POPDPH
显示字符子程序
输入:
R4,位置R5,值
DISLED:
MOVA,#LEDWR0;
置显示起始地址
ADDA,R4;
加位置偏移量
MOVDPTR,#Z8279
MOVX@DPTR,A;
设定显示位置
MOVDPTR,#LEDSEG;
置显示常数表起始位置
MOVA,R5
MOVCA,@A+DPTR;
查表
MOVDPTR,#D8279
显示数据
DELAY:
延时子程序
PUSH0;
PUSH1
MOV0,#0H
DELAY1:
MOV1,#0H
DJNZ1,$
DJNZ0,DELAY1
POP1;
POP0
DELAY_DISPLAY:
延时和显示时间子程序
PUSH0
pushacc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 交通灯 汇编 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)