📄 mcu.s
字号:
.module MCU.c
.area lit(rom, con, rel)
_SEGtable::
.byte 192,249
.byte 164,176
.byte 153,146
.byte 130,248
.byte 128,144
.byte 136,131
.byte 198,161
.byte 134,142
.dbfile D:\当前项目\PROTEU~2\Proteus实例\第十章\10.8\MCU.c
.dbsym e SEGtable _SEGtable A[16:16]kc
.area text(rom, con, rel)
.dbfile D:\当前项目\PROTEU~2\Proteus实例\第十章\10.8\MCU.c
.dbfunc e main _main fI
; counter -> R16
; i -> R18
; j -> R20
.even
_main::
.dbline -1
.dbline 5
; #include <iom16v.h>
; unsigned char const SEGtable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
; //"0"~"F"对应的字形编码,共阳极八段数码管
; main()
; {
.dbline 7
; unsigned char i,j;
; unsigned char counter=0; //指示当前显示的数字或者字符在表格中存放位置
clr R16
.dbline 8
; DDRD = 0xFF;
ldi R24,255
out 0x11,R24
.dbline 9
; PORTD = 0xFF; //初始化PORTA
out 0x12,R24
xjmp L3
L2:
.dbline 11
; while(1)
; {
.dbline 12
; for(i=0;i<250;i++) //软件延时
clr R18
xjmp L8
L5:
.dbline 13
; {
.dbline 14
clr R20
xjmp L12
L9:
.dbline 14
L10:
.dbline 14
inc R20
L12:
.dbline 14
; for(j=0;j<250;j++);
cpi R20,250
brlo L9
.dbline 15
clr R20
xjmp L16
L13:
.dbline 15
L14:
.dbline 15
inc R20
L16:
.dbline 15
; for(j=0;j<250;j++);
cpi R20,250
brlo L13
.dbline 16
clr R20
xjmp L20
L17:
.dbline 16
L18:
.dbline 16
inc R20
L20:
.dbline 16
; for(j=0;j<250;j++);
cpi R20,250
brlo L17
.dbline 17
clr R20
xjmp L24
L21:
.dbline 17
L22:
.dbline 17
inc R20
L24:
.dbline 17
; for(j=0;j<250;j++);
cpi R20,250
brlo L21
.dbline 18
clr R20
xjmp L28
L25:
.dbline 18
L26:
.dbline 18
inc R20
L28:
.dbline 18
cpi R20,250
brlo L25
.dbline 19
L6:
.dbline 12
inc R18
L8:
.dbline 12
cpi R18,250
brlo L5
.dbline 20
; for(j=0;j<250;j++);
; }
; if(counter>=15) //已经显示到F,回到0继续显示
cpi R16,15
brlo L29
.dbline 21
; {
.dbline 22
; counter = 0;
clr R16
.dbline 23
; }
xjmp L30
L29:
.dbline 25
; else
; {
.dbline 26
; counter++; //数字字符增加
inc R16
.dbline 27
; }
L30:
.dbline 28
ldi R24,<_SEGtable
ldi R25,>_SEGtable
mov R30,R16
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
out 0x12,R30
.dbline 29
L3:
.dbline 10
xjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r counter 16 c
.dbsym r i 18 c
.dbsym r j 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -