?? main.s
字號:
.module main.c
.area data(ram, con, rel)
_BitTab::
.blkb 2
.area idata
.byte 254,253
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 251,247
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.dbsym e BitTab _BitTab A[4:4]c
_DispTab::
.blkb 2
.area idata
.byte 63,6
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.blkb 2
.area idata
.byte 91,'O
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.blkb 2
.area idata
.byte 'f,'m
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.blkb 2
.area idata
.byte 125,7
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.blkb 2
.area idata
.byte 127,'o
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.dbsym e DispTab _DispTab A[10:10]c
_DISP_DATA::
.blkb 2
.area idata
.byte 2,0
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.blkb 2
.area idata
.byte 0,9
.area data(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.dbsym e DISP_DATA _DISP_DATA A[4:4]c
.area text(rom, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
.dbfunc e Delay_us _Delay_us fV
; time -> R16,R17
.even
_Delay_us::
.dbline -1
.dbline 48
; /****************************************Copyright (c)**************************************************
; ** ADEmbed Development Co.,LTD.
; ** http://www.adembed.com
; **--------------File Info-------------------------------------------------------------------------------
; ** File name: main.c
; ** Last modified Date: 2008-12-13
; ** Last Version: 1.0
; ** Descriptions: StopWatch.
; **
; **------------------------------------------------------------------------------------------------------
; ** Created by: junbolu
; ** Created date: 2008-12-13
; ** Version: 1.0
; ** Descriptions:
; **
; **------------------------------------------------------------------------------------------------------
; ** Modified by:
; ** Modified date:
; ** Version:
; ** Descriptions:
; **
; **------------------------------------------------------------------------------------------------------
; **ICC-AVR application builder : 2008-12-13
; **Target : M16
; **Crystal: 7.3728Mhz
; **PA0~PA7口接LED的段碼
; **PB0~PB3口接LED的位選
; **描述:這是一個LED數碼管測試程序。采用共陰LED數碼管,動態顯示固定數字2009。
; ** 沒有一點多余的代碼,清晰明了。
; **
; **涉及知識點:
; ** DO輸出
; ** for 循環的應用
; ** 數組的簡單應用
; *******************************************************************************************************/
;
; #include<iom16v.h>
; #include<macros.h>
;
; unsigned char DISP_NUM; //顯示的位數
; unsigned char BitTab[]={0xFE,0xFD,0xFB,0xF7}; //三位位選碼
; unsigned char DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //LED字形碼
; unsigned char DISP_DATA[4]={2,0,0,9}; //顯示的數字
;
; void Display(void);
;
; void Delay_us(unsigned int time)
; {
L2:
.dbline 49
L3:
.dbline 49
; while(time--);
movw R2,R16
subi R16,1
sbci R17,0
tst R2
brne L2
tst R3
brne L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r time 16 i
.dbend
.dbfunc e Delay_ms _Delay_ms fV
; time -> R20,R21
.even
_Delay_ms::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 53
; }
;
; void Delay_ms(unsigned int time)
; {
xjmp L7
L6:
.dbline 55
.dbline 56
ldi R16,10000
ldi R17,39
xcall _Delay_us
.dbline 57
L7:
.dbline 54
; while(time--)
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L6
tst R3
brne L6
X1:
.dbline -2
L5:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r time 20 i
.dbend
.dbfunc e Display _Display fV
.even
_Display::
.dbline -1
.dbline 62
.dbline 63
clr R2
out 0x1b,R2
.dbline 64
ldi R24,<_BitTab
ldi R25,>_BitTab
lds R30,_DISP_NUM
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
out 0x18,R2
.dbline 65
ldi R24,<_DISP_DATA
ldi R25,>_DISP_DATA
lds R30,_DISP_NUM
clr R31
add R30,R24
adc R31,R25
ldd R30,z+0
clr R31
ldi R24,<_DispTab
ldi R25,>_DispTab
add R30,R24
adc R31,R25
ldd R2,z+0
out 0x1b,R2
.dbline 68
lds R24,_DISP_NUM
subi R24,255 ; addi 1
sts _DISP_NUM,R24
.dbline 69
cpi R24,4
brne L10
.dbline 70
clr R2
sts _DISP_NUM,R2
L10:
.dbline -2
L9:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 74
; {
; Delay_us(10000);
; }
; }
;
; //顯示函數,DISP_NUM決定顯示哪個LED
; void Display(void)
; {
; PORTA=0x00; //清除顯示再位選
; PORTB=BitTab[DISP_NUM]; //PB口接位選
; PORTA=DispTab[DISP_DATA[DISP_NUM]]; //PA口接LED的段碼
;
;
; DISP_NUM++; //先顯示低位,再顯示高位
; if(DISP_NUM==4)
; DISP_NUM=0;
; }
;
; void main(void)
; {
.dbline 75
; DDRA=0XFF;
ldi R24,255
out 0x1a,R24
.dbline 76
; PORTA=0X00;
clr R2
out 0x1b,R2
.dbline 77
; DDRB=0X0F;
ldi R24,15
out 0x17,R24
.dbline 78
; PORTB=0X00;
out 0x18,R2
.dbline 80
;
; DISP_NUM=0;
sts _DISP_NUM,R2
.dbline 81
; for(;;)
L13:
.dbline 82
.dbline 83
ldi R16,200
ldi R17,0
xcall _Delay_us
.dbline 84
xcall _Display
.dbline 85
.dbline 81
.dbline 81
xjmp L13
X2:
.dbline -2
L12:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile E:\MYWORK~1\開發設計\EasyAVR\程序范例\Mega16程序包\完成整理\數碼管測試\main.c
_DISP_NUM::
.blkb 1
.dbsym e DISP_NUM _DISP_NUM c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -