?? main.lis
字號:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\ICCAVR\project\AVRMEG~2\icc\008-AD-LED\main.c
0000 .dbfunc e delay_ms _delay_ms fV
0000 ; a -> R20
0000 ; b -> R22
0000 ; i -> R16
.even
0000 _delay_ms::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 22
0004 ; /*
0004 ; 實(shí)驗(yàn)八:
0004 ; AD轉(zhuǎn)換實(shí)驗(yàn)。
0004 ; 1、AD轉(zhuǎn)換實(shí)驗(yàn)。程序進(jìn)行周期AD轉(zhuǎn)換,在并轉(zhuǎn)換值顯示在數(shù)碼管上。
0004 ; 2、使用內(nèi)部1 M晶振。
0004 ; 3、進(jìn)行此實(shí)驗(yàn)需要插上:JP1的所有8個短路塊、JP9(A/D)。
0004 ; 4、此實(shí)驗(yàn)采用項(xiàng)目化管理,主要文件有ADC、DISP、主程序。
0004 ;
0004 ; AVR mega16學(xué)習(xí)板
0004 ; www.iccavr.com
0004 ; 2006-04-05
0004 ; */
0004 ;
0004 ; #include "iom16v.h"
0004 ; #include <macros.h>
0004 ;
0004 ; extern unsigned char get_ad(void);/*AD采樣函數(shù)*/
0004 ; extern void Disp_Init(void);/*顯示初始化*/
0004 ; extern unsigned char led_buf[];/*顯示緩存*/
0004 ;
0004 ; /*延時函數(shù),頻率1MHz,單位mS*/
0004 ; void delay_ms(unsigned char i) {
0004 .dbline 25
0004 41E0 ldi R20,1
0006 06C0 xjmp L5
0008 L2:
0008 .dbline 25
0008 ;
0008 ; unsigned char a, b;
0008 ; for (a = 1; a < i; a++) {
0008 .dbline 26
0008 61E0 ldi R22,1
000A 01C0 xjmp L9
000C L6:
000C .dbline 26
000C .dbline 27
000C .dbline 28
000C L7:
000C .dbline 26
000C 6395 inc R22
000E L9:
000E .dbline 26
000E 6623 tst R22
0010 E9F7 brne L6
0012 .dbline 29
0012 L3:
0012 .dbline 25
0012 4395 inc R20
0014 L5:
0014 .dbline 25
0014 4017 cp R20,R16
0016 C0F3 brlo L2
0018 .dbline -2
0018 L1:
0018 0E940000 xcall pop_gset2
001C .dbline 0 ; func end
001C 0895 ret
001E .dbsym r a 20 c
001E .dbsym r b 22 c
001E .dbsym r i 16 c
001E .dbend
001E .dbfunc e main _main fV
001E ; i -> R20
.even
001E _main::
001E .dbline -1
001E .dbline 32
001E ; for (b = 1; b; b++) {
001E ; ;
001E ; }
001E ; }
001E ; }
001E ;
001E ; void main(void) {
001E .dbline 35
001E ;
001E ; unsigned char i;
001E ; DDRA = 0x00; /*方向輸入*/
001E 2224 clr R2
0020 2ABA out 0x1a,R2
0022 .dbline 36
0022 ; PORTA = 0x7F; /*打開上拉*/
0022 8FE7 ldi R24,127
0024 8BBB out 0x1b,R24
0026 .dbline 37
0026 ; DDRB = 0xFF; /*方向輸出*/
0026 8FEF ldi R24,255
0028 87BB out 0x17,R24
002A .dbline 38
002A ; PORTB = 0xFF; /*電平設(shè)置*/
002A 88BB out 0x18,R24
002C .dbline 39
002C ; DDRC = 0x00;
002C 24BA out 0x14,R2
002E .dbline 40
002E ; PORTC = 0xFF;
002E 85BB out 0x15,R24
0030 .dbline 41
0030 ; DDRD = 0x00;
0030 21BA out 0x11,R2
0032 .dbline 42
0032 ; PORTD = 0xFF;
0032 82BB out 0x12,R24
0034 .dbline 44
0034 ;
0034 ; delay_ms(200); /*加入延時*/
0034 08EC ldi R16,200
0036 E4DF xcall _delay_ms
0038 .dbline 45
0038 ; Disp_Init(); /*電平設(shè)置*/
0038 0E940000 xcall _Disp_Init
003C 1CC0 xjmp L12
003E L11:
003E .dbline 46
003E .dbline 47
003E 04E6 ldi R16,100
0040 DFDF xcall _delay_ms
0042 .dbline 48
0042 0E940000 xcall _get_ad
0046 402F mov R20,R16
0048 .dbline 49
0048 2224 clr R2
004A 20920300 sts _led_buf+3,R2
004E .dbline 50
004E 14E6 ldi R17,100
0050 0E940000 xcall div8u
0054 00930200 sts _led_buf+2,R16
0058 .dbline 51
0058 14E6 ldi R17,100
005A 042F mov R16,R20
005C 0E940000 xcall mod8u
0060 1AE0 ldi R17,10
0062 0E940000 xcall div8u
0066 00930100 sts _led_buf+1,R16
006A .dbline 52
006A 1AE0 ldi R17,10
006C 042F mov R16,R20
006E 0E940000 xcall mod8u
0072 00930000 sts _led_buf,R16
0076 .dbline 53
0076 L12:
0076 .dbline 46
0076 E3CF xjmp L11
0078 X0:
0078 .dbline -2
0078 L10:
0078 .dbline 0 ; func end
0078 0895 ret
007A .dbsym r i 20 c
007A .dbend
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -