?? main.lis
字號:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\MYWORK~1\開發(fā)設(shè)計\EasyAVR\程序范例\Mega16程序包\完成整理\LED跑馬燈實驗\main.c
0000 .dbfunc e Delay_us _Delay_us fV
0000 ; time -> R16,R17
.even
0000 _Delay_us::
0000 .dbline -1
0000 .dbline 43
0000 ; /****************************************Copyright (c)**************************************************
0000 ; ** ADEmbed Development Co.,LTD.
0000 ; ** http://www.adembed.com
0000 ; **--------------File Info-------------------------------------------------------------------------------
0000 ; ** File name: main.c
0000 ; ** Last modified Date: 2008-12-13
0000 ; ** Last Version: 1.0
0000 ; ** Descriptions: LED Test.
0000 ; **
0000 ; **------------------------------------------------------------------------------------------------------
0000 ; ** Created by: junbolu
0000 ; ** Created date: 2008-12-13
0000 ; ** Version: 1.0
0000 ; ** Descriptions:
0000 ; **
0000 ; **------------------------------------------------------------------------------------------------------
0000 ; ** Modified by:
0000 ; ** Modified date:
0000 ; ** Version:
0000 ; ** Descriptions:
0000 ; **
0000 ; **------------------------------------------------------------------------------------------------------
0000 ; **ICC-AVR application builder : 2008-12-13
0000 ; **Target : M16
0000 ; **Crystal: 7.3728Mhz
0000 ; **PA0~PA7口接8位LED指示燈的使能端(低電平使能)
0000 ; **
0000 ; **描述:8位LED指示燈點亮,并且讓他們循環(huán)閃爍。
0000 ; ** 學(xué)習(xí)單片機的簡單程序,如果你才學(xué)習(xí)單片機,一定要好好掌握。
0000 ; **
0000 ; **涉及知識點:
0000 ; ** DO輸出
0000 ; ** for 循環(huán)的應(yīng)用
0000 ; ** 軟件延時函數(shù)的編寫
0000 ; *******************************************************************************************************/
0000 ;
0000 ; #include<iom16v.h>
0000 ; #include<macros.h>
0000 ;
0000 ; unsigned char DISP_NUM; //電亮的位數(shù),一共8位
0000 ;
0000 ; void Delay_us(unsigned int time)
0000 ; {
0000 L2:
0000 .dbline 44
0000 L3:
0000 .dbline 44
0000 ; while(time--);
0000 1801 movw R2,R16
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 2220 tst R2
0008 D9F7 brne L2
000A 3320 tst R3
000C C9F7 brne L2
000E X0:
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r time 16 i
0010 .dbend
0010 .dbfunc e Delay_ms _Delay_ms fV
0010 ; time -> R20,R21
.even
0010 _Delay_ms::
0010 0E940000 xcall push_gset1
0014 A801 movw R20,R16
0016 .dbline -1
0016 .dbline 48
0016 ; }
0016 ;
0016 ; void Delay_ms(unsigned int time)
0016 ; {
0016 03C0 xjmp L7
0018 L6:
0018 .dbline 50
0018 .dbline 51
0018 08EE ldi R16,1000
001A 13E0 ldi R17,3
001C F1DF xcall _Delay_us
001E .dbline 52
001E L7:
001E .dbline 49
001E ; while(time--)
001E 1A01 movw R2,R20
0020 4150 subi R20,1
0022 5040 sbci R21,0
0024 2220 tst R2
0026 C1F7 brne L6
0028 3320 tst R3
002A B1F7 brne L6
002C X1:
002C .dbline -2
002C L5:
002C 0E940000 xcall pop_gset1
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbsym r time 20 i
0032 .dbend
0032 .dbfunc e main _main fV
.even
0032 _main::
0032 .dbline -1
0032 .dbline 56
0032 ; {
0032 ; Delay_us(1000);
0032 ; }
0032 ; }
0032 ;
0032 ; void main(void)
0032 ; {
0032 .dbline 58
0032 ; //初始化端口
0032 ; DDRA=0XFF; //設(shè)置PA端口為輸出
0032 8FEF ldi R24,255
0034 8ABB out 0x1a,R24
0036 .dbline 59
0036 ; PORTA=0XFF; //設(shè)置PA端口為高電平
0036 8BBB out 0x1b,R24
0038 .dbline 62
0038 ;
0038 ; //開始演示
0038 ; for(;;)
0038 L10:
0038 .dbline 63
0038 ; {
0038 .dbline 64
0038 ; PORTA=0X00; //全部點亮
0038 2224 clr R2
003A 2BBA out 0x1b,R2
003C .dbline 65
003C ; Delay_ms(200); //延時0.2s
003C 08EC ldi R16,200
003E 10E0 ldi R17,0
0040 E7DF xcall _Delay_ms
0042 .dbline 66
0042 ; PORTA=0XFF; //全部熄滅
0042 8FEF ldi R24,255
0044 8BBB out 0x1b,R24
0046 .dbline 67
0046 ; Delay_ms(200); //延時0.2s
0046 08EC ldi R16,200
0048 10E0 ldi R17,0
004A E2DF xcall _Delay_ms
004C .dbline 68
004C ; PORTA=0X00; //全部點亮
004C 2224 clr R2
004E 2BBA out 0x1b,R2
0050 .dbline 69
0050 ; Delay_ms(200); //延時0.2s
0050 08EC ldi R16,200
0052 10E0 ldi R17,0
0054 DDDF xcall _Delay_ms
0056 .dbline 70
0056 ; PORTA=0XFF; //全部熄滅
0056 8FEF ldi R24,255
0058 8BBB out 0x1b,R24
005A .dbline 71
005A ; Delay_ms(1000); //延時1s
005A 08EE ldi R16,1000
005C 13E0 ldi R17,3
005E D8DF xcall _Delay_ms
0060 .dbline 73
0060 ;
0060 ; for(DISP_NUM=0;DISP_NUM<8;DISP_NUM++) //循環(huán)熄滅
0060 2224 clr R2
0062 20920000 sts _DISP_NUM,R2
0066 10C0 xjmp L17
0068 L14:
0068 .dbline 74
0068 .dbline 75
0068 10910000 lds R17,_DISP_NUM
006C 01E0 ldi R16,1
006E 0E940000 xcall lsl8
0072 202E mov R2,R16
0074 2094 com R2
0076 2BBA out 0x1b,R2
0078 .dbline 76
0078 08EC ldi R16,200
007A 10E0 ldi R17,0
007C C9DF xcall _Delay_ms
007E .dbline 77
007E L15:
007E .dbline 73
007E 80910000 lds R24,_DISP_NUM
0082 8F5F subi R24,255 ; addi 1
0084 80930000 sts _DISP_NUM,R24
0088 L17:
0088 .dbline 73
0088 80910000 lds R24,_DISP_NUM
008C 8830 cpi R24,8
008E 60F3 brlo L14
0090 .dbline 78
0090 .dbline 62
0090 .dbline 62
0090 D3CF xjmp L10
0092 X2:
0092 .dbline -2
0092 L9:
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\MYWORK~1\開發(fā)設(shè)計\EasyAVR\程序范例\Mega16程序包\完成整理\LED跑馬燈實驗\main.c
0000 _DISP_NUM::
0000 .blkb 1
0001 .dbsym e DISP_NUM _DISP_NUM c
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -