微控制器課設流水廣告燈設計

2021-06-30 10:39:54 字數 4530 閱讀 6787

sda bit p1.7

sclbit p1.6

rstbit p1.0

int_key bit p3.2

mtd equ 40h

mrd equ 48h

disbuf equ 38h

;定義zlg7290器件位址及子位址

zlg7290 equ 70h

ack bit 10h

sladata 50h

suba data 51h

numbyte data 52h

keydata 53h

systemreg equ 00h

keyreg equ 01h

cmdbuf0 equ 07h

cmdbuf1 equ 08h

dpram equ 10h

org 8000h

ljmp main

org 8013h

ajmp inos

;-------主程式如下:

main: mov sp,#70h

lcall clsdisp

setb ea

setb ex1

setb it1

sjmp $

inos: ljmp loop1

loop1: mov r0,#d1-table1

mov dptr,#table1

mov r4,#00h

loop11:

mov a,r4

movc a,@a+dptr

mov p1,a

lcall delay1

inc r4

djnz r0,loop11

ljmp loop2

loop2:

mov dptr,#table2

mov r4,#00

lcall clsdisp

mov disbuf+0,#0

mov disbuf+1,#0

mov disbuf+2,#0

mov disbuf+3,#0

mov disbuf+4,#0

mov disbuf+5,#0

mov disbuf+6,#0

mov disbuf+7,#0

lcall display

acall delay1

loop22:

mov a,r4

movc a,@a+dptr

mov p1,a

inc r4

mov disbuf+0,r4

mov disbuf+1,r4

mov disbuf+2,r4

mov disbuf+3,r4

mov disbuf+4,r4

mov disbuf+5,r4

mov disbuf+6,r4

mov disbuf+7,r4

lcall display

acall delay1

mov a,r4

subb a,#8

jz loop3

ljmp loop22

loop3:reti

;子程式名:clsdisp

;功能:清除顯示內容

;呼叫:vi2c_asm.inc

;入口引數:無

;出口引數:無

;占用資源: r0,r1,r2,r3(工作暫存器組1),acc,cy,r5(當前工作暫存器組)

clsdisp: mov r5,#8

mov a,#01100000b

cls1: mov sla,#zlg7290

mov suba,#cmdbuf0

mov mtd,a

mov mtd+1,#1fh

mov numbyte,#02h

push acc

push psw

setb rs0

clr rs1

lcall iwrnbyte

pop psw

pop acc

inc a

lcall delay

djnz r5,cls1

ret;子程式名:display

;功能:在8段led數碼管顯示

;呼叫:vi2c_asm.inc

;入口引數: disbuf+0~ disbuf+7,8位元組顯示緩衝區

;出口引數:無

;占用資源: r0,r1,r2,r3(工作暫存器組1),acc,cy,r0,r5(當前工作暫存器組)

display: mov r5,#8

mov a,#01100000b

mov r0,# disbuf

disp1: mov sla,#zlg7290

mov suba,#cmdbuf0

mov mtd,a

mov mtd+1,@r0

mov numbyte,#02h

push acc

push psw

setb rs0

clr rs1

lcall iwrnbyte

pop psw

pop acc

inc a

inc r0

lcall delay

djnz r5,disp1

ret;子程式名:getkey

;功能:獲取使用者按鍵值(key)

;呼叫:vi2c_asm.inc

;入口引數:無

;出口引數:key

;占用資源: r0,r1,r2,r3(工作暫存器組1),acc,cy

getkey: mov sla,#zlg7290

mov suba,#01h

mov numbyte,#01h

push acc

push psw

setb rs0

clr rs1

lcall irdnbyte

pop psw

pop acc

mov key,mrd

ret;子程式名: delay

;功能:延時約36.5 ms(11.0592mhz時鐘)

;呼叫:ys500us

;入口引數:無

;出口引數:無

;占用資源: r7,r6

delay: mov r7,#80h

min: lcall ys500us

djnz r7,min

ret;子程式名: ys500us

;功能:延時約279us(11.0592mhz時鐘)

;呼叫:無

;入口引數:無

;出口引數:無

;占用資源: r6

ys500us:mov r6,#80h

djnz r6,$

retdelay1: mov r5,#10

dl1: mov r6,#250

dl2: mov r7,#200

dl3: djnz r7,dl3

djnz r6,dl2

djnz r5,dl1

rettable1: db 11111110b,11111100b,11111000b,11110000b

db 11100000b,11000000b,10000000b,00000000b

db 11111110b,11111101b,11111011b,11110111b

db 11101111b,11011111b,10111111b,01111111b

db 00000000b,11111111b,00000000b,11111111b

db 00000000b,11111111b,00000000b,11111111b

db 00000000b,11111111b

d1: db 11111111b

table2: db 11110111b

db 11100111b

db 11100011b

db 11000011b

db 11000001b

db 11000000b

db 10000000b

db 00000000b

db 10000000b

db 11000000b

db 11100000b

db 11110000b

db 11111000b

db 11111100b

db 11111110b

d2: db 11111111b

$include(vi2c_asm.inc) ;將viic軟體包加入到本段**後end

微控制器課設

目錄一 引言3 二 器件介紹4 1 51微控制器89c52簡介4 2 a d轉換器晶元adc0809簡介7 3 74hc138簡介9 三 軟體的設計11 1 軟體所要實現的功能11 2 程式流程圖11 四 硬體電路設計16 五 心得體會17 六 參考文獻19 附錄一 硬體原理圖20 附錄二 課設程式...

廣告燈微控制器課程設計

摘要引言在現在諸多的娛樂場所 理髮店 賓館 飯店 公司等的門外,都可以看到各式各樣的廣告流水燈。所謂 廣告流水燈 就是將一系列的有顏色的廣告燈串聯接在一起,然後令這些燈按一定的次序逐個或者幾個的一次點亮和熄滅。由於各燈點亮和熄滅,產生的效果就像流動的水一樣,因此,就稱這類廣告燈為 廣告流水燈 生活中...

廣告燈微控制器課程設計

摘要引言在現在諸多的娛樂場所 理髮店 賓館 飯店 公司等的門外,都可以看到各式各樣的廣告流水燈。所謂 廣告流水燈 就是將一系列的有顏色的廣告燈串聯接在一起,然後令這些燈按一定的次序逐個或者幾個的一次點亮和熄滅。由於各燈點亮和熄滅,產生的效果就像流動的水一樣,因此,就稱這類廣告燈為 廣告流水燈 生活中...