?? 數(shù)碼管顯示1-8.avr
字號:
;匯編語言編寫:
.INCLUDE "8515DEF.INC" ;CPU配置文件
.ORG $0000
RJMP RESET ;上電復(fù)位跳轉(zhuǎn)到主程序
.ORG $0013 ;代碼段定位,跳過中斷區(qū)
RESET:
LDI R16,LOW(RAMEND) ;設(shè)置堆棧指針
OUT SPL,R16
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,0xFF ;設(shè)置PA口為輸出端口
OUT DDRA,R16
OUT PORTA,R16
OUT DDRC,R16 ;設(shè)置PC口為輸出端口
OUT PORTC,R16
LDI R16,$01 ;顯示值送顯示緩存區(qū)
STS $6C,R16
LDI R16,$02
STS $6D,R16
LDI R16,$03
STS $6E,R16
LDI R16,$04
STS $6F,R16
LDI R16,$05
STS $70,R16
LDI R16,$06
STS $71,R16
LDI R16,$07
STS $72,R16
LDI R16,$08
STS $73,R16
DISPLAY:
LDI R26,$6C ;顯示緩存區(qū)首址
CLR R27
LDI R17,$FE
MOV R13,R17 ;位選初始化
PLAY_A:
LD R17,X+ ;
LDI R31,HIGH(TABLE*2)
LDI R30,LOW(TABLE*2)
ADD R30,R17
ADC R31,R27
LPM ;查表取段碼
OUT PORTA,R0 ;段碼送PA口
OUT PORTC,R13 ;位選碼送PC口
SEC ; ;C置1
ROL R13 ;指向下一位位選
LDI R17,6
CLR R14
PLAY_B:
DEC R14 ;延時
BRNE PLAY_B
DEC R17
BRNE PLAY_B
SER R17 ;關(guān)閉顯示
OUT PORTC,R17
CPI R26,$74 ;8個數(shù)碼管是否掃描完畢?
BRNE PLAY_A
RJMP DISPLAY
RET
TABLE:
.DB 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xFF
; 0, 1, 2, 3,4, 5, 6, 7, 8, 9,滅
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -