广告流水灯程序.docx

上传人:b****1 文档编号:2377492 上传时间:2022-10-29 格式:DOCX 页数:17 大小:16.93KB
下载 相关 举报
广告流水灯程序.docx_第1页
第1页 / 共17页
广告流水灯程序.docx_第2页
第2页 / 共17页
广告流水灯程序.docx_第3页
第3页 / 共17页
广告流水灯程序.docx_第4页
第4页 / 共17页
广告流水灯程序.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

广告流水灯程序.docx

《广告流水灯程序.docx》由会员分享,可在线阅读,更多相关《广告流水灯程序.docx(17页珍藏版)》请在冰豆网上搜索。

广告流水灯程序.docx

广告流水灯程序

;广告流水灯程序

ORG00H

MOVP2,#80H

START:

MOVA,#0FFH;赋初值

CLRC

MOVR2,#8

LOOP:

RRCA;带进位右移

MOVP1,A

CALLDELAY

DJNZR2,LOOP

MOVR2,#7

LOOP1:

RLCA;带进位左移

MOVP1,A

CALLDELAY

DJNZR2,LOOP1

JMPSTART

DELAY:

MOVR3,#20;延时0.2秒

D1:

MOVR4,#20

D2:

MOVR5,#248

DJNZR5,$

DJNZR4,D2

DJNZR3,D1

RET

END;

利用中断的99秒计时器,动态扫描两位数码管

LACTCH1BITP2.0

LACTCH2BITP2.3

ORG00H

JMPSTART

ORG0BH

JMPTIM0

START:

MOVR3,#00;中断循环次数

MOVR4,#00H;时间初值

MOVDPTR,#TABLE

MOVSP,#40H

MOVTMOD,#01H;定时器工作方式

MOVTH0,#HIGH(65536-3800)

MOVTL0,#LOW(65536-3800);初值4MS

SETBTR0

MOVIE,#82H;开中断

TIM0:

MOVTH0,#HIGH(65536-3800)

MOVTL0,#LOW(65536-3800)

INCR3

CJNER3,#250,X1;1S

MOVR3,#00

MOVA,R4;十进制转换

MOVB,#10H

DIVAB

MOV20H,B;个位

MOV21H,A;十位

MOVA,R4

ADDA,#01H

DAA

MOVR4,A

CALLSCAN;调用数码管扫描

X1:

PUSHACC

PUSHPSW

CALLSCAN

POPPSW

POPACC

RETI

SCAN:

MOVA,21H

MOVCA,@A+DPTR

MOVP0,A

SETBLACTCH1

CLRLACTCH1

MOVP0,#11111110B;扫描子程序

SETBLACTCH2

CLRLACTCH2

CALLDELAY1

MOVA,20H

MOVCA,@A+DPTR

MOVP0,A

SETBLACTCH1

CLRLACTCH1

MOVP0,#11111101B;0代表选通该位数码管

SETBLACTCH2

CLRLACTCH2

CALLDELAY1

RET

DELAY:

MOVR5,#50;典型延时程序

D1:

MOVR6,#40

D2:

MOVR7,#248

CALLSCAN

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

DELAY1:

MOVR6,#4;扫描延时

D3:

MOVR7,#248

DJNZR7,$

DJNZR6,D3

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴字码表

END

;交通灯模拟实验程序

GEWEIEQU21H;个位数据

SHIWEIEQU23H;十位数据

SCANLEDEQU25H

SCANMODEEQU26H

REDEQU28H;定义灯的缓冲区

GREENEQU29H

YELLOWEQU32H

NUMTIMEQU33H

LEDEQU34H

LACTCH1BITP2.0

LACTCH2BITP2.3

ORG000H

JMPSTART

ORG0BH

JMPTIMER0;定时器0中断入口

ORG100H

START:

MOVSP,#50H

MOVR0,#20H

MOVR5,#20

CLR0:

MOV@R0,#00H

INCR0

DJNZR5,CLR0

MOVTMOD,#01H;设置定时器

MOVTH0,#HIGH(65536-5000)

MOVTL0,#LOW(65536-5000)

SETBTR0

MOVIE,#10000010B;端口初始化

MOVP0,#0FFH

MOVP1,#0FFH

MOVP2,#00H

MOVP3,#0FFH

MOVR3,#10

MOVR2,#3

MOVR1,#10

MOVR7,#200

MOVRED,#10

MOVYELLOW,#3

MOVGREEN,#10

MOVNUMTIM,#10

MOVLED,#0FFH

AJMP$

;=============================================================

TIMER0:

PUSHACC;定时器部分,负责交通灯的及时和数码管动态扫描

PUSHPSW

MOVTH0,#HIGH(65536-5000);重新赋初值

MOVTL0,#LOW(65536-5000)

DJNZR7,RET0

MOVR7,#200

MOVA,SCANMODE;调用扫描

MOVB,#4

DIVAB

MOVA,B

RLA

MOVDPTR,#TAB_SCAN

JMP@A+DPTR

TAB_SCAN:

AJMPRED_LIGHT

AJMPYEL_LIGHT

AJMPGRE_LIGHT

AJMPYEL_LIGHT

RET0:

MOVA,NUMTIM

LCALLBIN_BCD

MOVSHIWEI,A

MOVGEWEI,B

INCSCANLED

MOVA,SCANLED

MOVB,#4

DIVAB

MOVA,B

RLA

MOVDPTR,#TAB_SCAN0

JMP@A+DPTR

TAB_SCAN0:

AJMPSCAN_L1

AJMPSCAN_L2

SCAN_L1:

MOVP0,#11111110B

SETBLACTCH2

CLRLACTCH2

MOVA,SHIWEI

JMPEND_SCAN

SCAN_L2:

MOVP0,#11111101B

SETBLACTCH2

CLRLACTCH2

MOVA,GEWEI

JMPEND_SCAN

END_SCAN:

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

SETBLACTCH1

CLRLACTCH1

MOVA,LED

MOVP1,A

POPPSW

POPACC

RETI

RED_LIGHT:

MOVLED,#11111100B

MOVNUMTIM,RED

DECRED

MOVA,RED

CJNEA,#0FFH,RET0

MOVRED,#10

MOVA,SCANMODE

ADDA,#01H

MOVSCANMODE,A

JMPRET0

YEL_LIGHT:

MOVLED,#11110011B

MOVNUMTIM,YELLOW

DECYELLOW

MOVA,YELLOW

CJNEA,#0FFH,RET0

MOVYELLOW,#3

MOVA,SCANMODE

ADDA,#01H

MOVSCANMODE,A

JMPRET0

GRE_LIGHT:

MOVLED,#11001111B

MOVNUMTIM,GREEN

DECGREEN

MOVA,GREEN

CJNEA,#0FFH,RET1

MOVGREEN,#10

MOVA,SCANMODE

ADDA,#01H

MOVSCANMODE,A

RET1:

JMPRET0

BIN_BCD:

MOVB,#10

DIVAB

RET

DELAY:

MOVR5,#02

D1:

MOVR6,#200

D2:

MOVR7,#200

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阳字码表

END

;简单的时钟程序

LACTCH1BITP2.0;锁存

LACTCH2BITP2.3

BUFF_KEYEQU21H;键盘键

LED1EQU22H;数码管显示缓存

LED2EQU23H

LED3EQU24H

LED4EQU25H

LED5EQU26H

LED6EQU27H

LED_LPEQU28H;T0键盘显示扫描缓存

HOREQU30H;小时值缓存

MINEQU31H;分钟值缓存

SECEQU32H;秒值缓存

F_BEEPBIT01H

LED_PORTEQUP0

DIG_PORTEQUP0

SW1BITP3.0

SW2BITP3.1

SW3BITP3.2

SW4BITP3.3

SW5BITP3.4

SW6BITP3.5

BEEPBITP1.6

org000h

JMPmain

ORG00BH

JMPT0_INT

ORG100H

MAIN:

MOVSP,#40H

MOVPSW,#00H

MOVR0,#7FH;初始化RAM区,

CLR_RAM:

MOVA,#00H

MOV@R0,A

DJNZR0,CLR_RAM

MOVP1,0FFH;INIT

MOVP2,0FFH

MOVP0,0FFH

MOVP3,0FFH

MOVHOR,#12

MOVTMOD,#21h

MOVTH0,#240;T0=4MS

MOVTL0,#96

SETBTR0

SETBET0

SETBEA

WAIT_KEY:

;等候按键!

JNBSW1,SW1_OK

JNBSW2,SW2_OK

JNBSW3,SW3_OK

JNBSW4,SW4_OK

JNBSW5,SW5_OKA

JNBSW6,SW6_OKA

JMPWAIT_KEY

SW5_OKA:

JMPSW5_OK

SW6_OKA:

JMPSW6_OK

SW1_OK:

MOVA,HOR

CJNEA,#24,SW1_OVER

MOVHOR,#00H

SETBF_BEEP

CLRBEEP

LCALLDEL

SETBBEEP

CLRF_BEEP

JMPWAIT_KEY

SW1_OVER:

INCHOR;时加1

SETBF_BEEP

CLRBEEP

LCALLDEL

SETBBEEP

CLRF_BEEP

JMPWAIT_KEY

SW2_OK:

MOVA,HOR

CJNEA,#00,SW2_OVER

MOVHOR,#23

SE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

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

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