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