?? adc.lis
字號:
.module adc.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\調試成功\adc/abs.h
0000 .dbfunc e WDT_ON _WDT_ON fV
.even
0000 _WDT_ON::
0000 .dbline -1
0000 .dbline 9
0000 ; #include<iom16v.h>
0000 ; #include<macros.h>
0000 ; #include "abs.h"
0000 ;
0000 ; /* 七段譯碼字形表 */
0000 ; /*const unsigned char tabel[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0000 ; 0x88,0x83,0xc6,0xa1,0x86,0x8e};*/
0000 ; //放一個串口通訊時自己能看懂的數據簡單處理
0000 ; const unsigned char tabel[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15};
0000 .dbline 10
0000 ; /* 顯示緩沖區 */
0000 A895 wdr
0002 .dbline 11
0002 ; unsigned int d[]={0,0,0,0,0,0,0,0,0,0,0};
0002 81B5 in R24,0x21
0004 8F61 ori R24,31
0006 81BD out 0x21,R24
0008 .dbline 12
0008 ; void port_init(void)//端口初始化
0008 81B5 in R24,0x21
000A 8F7E andi R24,239
000C 81BD out 0x21,R24
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e WDT_OFF _WDT_OFF fV
.even
0010 _WDT_OFF::
0010 .dbline -1
0010 .dbline 16
0010 ; {
0010 ; PORTA = 0x00;DDRA = 0xff; PORTB = 0x00;DDRB = 0x00;
0010 ; PORTC = 0x00;DDRC = 0x00; PORTD = 0xff;DDRD = 0x00;
0010 ; DDRA =0xff&((~(1<<PA3))|(~(1<<PA6)) );
0010 .dbline 17
0010 ; }
0010 A895 wdr
0012 .dbline 18
0012 ; void display()
0012 81B5 in R24,0x21
0014 8861 ori R24,24
0016 81BD out 0x21,R24
0018 .dbline 19
0018 ; {
0018 2224 clr R2
001A 21BC out 0x21,R2
001C .dbline -2
001C L2:
001C .dbline 0 ; func end
001C 0895 ret
001E .dbend
001E .dbfunc e delay_1ms _delay_1ms fV
001E ; i -> R16,R17
.even
001E _delay_1ms::
001E .dbline -1
001E .dbline 22
001E ; USART_Transmit8(tabel[d[3]]); //送數據
001E ; delay_nms(10);
001E ; USART_Transmit8(tabel[d[2]]);
001E .dbline 24
001E ; delay_nms(10);
001E ; USART_Transmit8(tabel[d[1]]);
001E 0027 clr R16
0020 1127 clr R17
0022 03C0 xjmp L7
0024 L4:
0024 .dbline 25
0024 A895 wdr
0026 L5:
0026 .dbline 24
0026 0F5F subi R16,255 ; offset = 1
0028 1F4F sbci R17,255
002A L7:
002A .dbline 24
002A 0639 cpi R16,150
002C E0E0 ldi R30,0
002E 1E07 cpc R17,R30
0030 C8F3 brlo L4
0032 .dbline -2
0032 L3:
0032 .dbline 0 ; func end
0032 0895 ret
0034 .dbsym r i 16 i
0034 .dbend
0034 .dbfunc e delay_nms _delay_nms fV
0034 ; i -> R20,R21
0034 ; n -> R22,R23
.even
0034 _delay_nms::
0034 0E940000 xcall push_gset2
0038 B801 movw R22,R16
003A .dbline -1
003A .dbline 29
003A ; delay_nms(10);
003A ; USART_Transmit8(tabel[d[0]]);
003A ; delay_nms(10);
003A ; }
003A ;
003A .dbline 31
003A ; unsigned int ad_con;//存放PA0的AD轉換結果
003A ; /* 將AD結果轉換成電壓 */
003A 4427 clr R20
003C 5527 clr R21
003E 03C0 xjmp L12
0040 L9:
0040 .dbline 32
0040 .dbline 33
0040 EEDF xcall _delay_1ms
0042 .dbline 34
0042 L10:
0042 .dbline 31
0042 4F5F subi R20,255 ; offset = 1
0044 5F4F sbci R21,255
0046 L12:
0046 .dbline 31
0046 4617 cp R20,R22
0048 5707 cpc R21,R23
004A D0F3 brlo L9
004C .dbline 35
004C ; #define vref 502
004C ; void adctovol(unsigned int adc)
004C ; {
004C ; unsigned int temp;
004C A895 wdr
004E .dbline -2
004E L8:
004E 0E940000 xcall pop_gset2
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbsym r i 20 i
0054 .dbsym r n 22 i
0054 .dbend
0054 .dbfunc e LED_Wait_ISP _LED_Wait_ISP fV
.even
0054 _LED_Wait_ISP::
0054 .dbline -1
0054 .dbline 40
0054 ; unsigned char i;
0054 ; unsigned char *char_p;
0054 ; temp=(unsigned int)(((unsigned long)((unsigned long)adc*vref))/1024);
0054 ; for(i=0;i<3;i++)
0054 ; {
0054 .dbline 41
0054 ; d[i]=temp%10;
0054 DD98 cbi 0x1b,5
0056 .dbline 41
0056 08EC ldi R16,200
0058 10E0 ldi R17,0
005A ECDF xcall _delay_nms
005C .dbline 41
005C DD9A sbi 0x1b,5
005E .dbline 41
005E 08EC ldi R16,200
0060 10E0 ldi R17,0
0062 E8DF xcall _delay_nms
0064 .dbline 42
0064 ; temp=temp/10;
0064 DC98 cbi 0x1b,4
0066 .dbline 42
0066 08EC ldi R16,200
0068 10E0 ldi R17,0
006A E4DF xcall _delay_nms
006C .dbline 42
006C DC9A sbi 0x1b,4
006E .dbline 42
006E 08EC ldi R16,200
0070 10E0 ldi R17,0
0072 E0DF xcall _delay_nms
0074 .dbline 43
0074 ; }
0074 DD98 cbi 0x1b,5
0076 .dbline 43
0076 08EC ldi R16,200
0078 10E0 ldi R17,0
007A DCDF xcall _delay_nms
007C .dbline 43
007C DD9A sbi 0x1b,5
007E .dbline 43
007E 08EC ldi R16,200
0080 10E0 ldi R17,0
0082 D8DF xcall _delay_nms
0084 .dbline 44
0084 ; }
0084 DC98 cbi 0x1b,4
0086 .dbline 44
0086 08EC ldi R16,200
0088 10E0 ldi R17,0
008A D4DF xcall _delay_nms
008C .dbline 44
008C DC9A sbi 0x1b,4
008E .dbline 44
008E 08EC ldi R16,200
0090 10E0 ldi R17,0
0092 D0DF xcall _delay_nms
0094 .dbline 45
0094 ;
0094 DD98 cbi 0x1b,5
0096 .dbline 45
0096 08EC ldi R16,200
0098 10E0 ldi R17,0
009A CCDF xcall _delay_nms
009C .dbline 45
009C DD9A sbi 0x1b,5
009E .dbline 45
009E 08EC ldi R16,200
00A0 10E0 ldi R17,0
00A2 C8DF xcall _delay_nms
00A4 .dbline 46
00A4 ; /* AD轉換程序 */
00A4 DC98 cbi 0x1b,4
00A6 .dbline 46
00A6 08EC ldi R16,200
00A8 10E0 ldi R17,0
00AA C4DF xcall _delay_nms
00AC .dbline 46
00AC DD9A sbi 0x1b,5
00AE .dbline 46
00AE 08EC ldi R16,200
00B0 10E0 ldi R17,0
00B2 C0DF xcall _delay_nms
00B4 .dbline -2
00B4 L13:
00B4 .dbline 0 ; func end
00B4 0895 ret
00B6 .dbend
00B6 .dbfunc e LED_Texting_ISP _LED_Texting_ISP fV
.even
00B6 _LED_Texting_ISP::
00B6 .dbline -1
00B6 .dbline 49
00B6 ; #pragma interrupt_handler adc_isr:15
00B6 ; void adc_isr(void)
00B6 ; {
00B6 .dbline 50
00B6 ; unsigned int temp=0;
00B6 DC98 cbi 0x1b,4
00B8 .dbline 51
00B8 ; while(temp<6)
00B8 DD98 cbi 0x1b,5
00BA .dbline 51
00BA 08EC ldi R16,200
00BC 10E0 ldi R17,0
00BE BADF xcall _delay_nms
00C0 .dbline 51
00C0 DD9A sbi 0x1b,5
00C2 .dbline 51
00C2 08EC ldi R16,200
00C4 10E0 ldi R17,0
00C6 B6DF xcall _delay_nms
00C8 .dbline 52
00C8 ; temp++;
00C8 DD98 cbi 0x1b,5
00CA .dbline 52
00CA 08EC ldi R16,200
00CC 10E0 ldi R17,0
00CE B2DF xcall _delay_nms
00D0 .dbline 52
00D0 DD9A sbi 0x1b,5
00D2 .dbline 52
00D2 08EC ldi R16,200
00D4 10E0 ldi R17,0
00D6 AEDF xcall _delay_nms
00D8 .dbline 53
00D8 ; ad_con=ADC;
00D8 DD98 cbi 0x1b,5
00DA .dbline 53
00DA 08EC ldi R16,200
00DC 10E0 ldi R17,0
00DE AADF xcall _delay_nms
00E0 .dbline 53
00E0 DD9A sbi 0x1b,5
00E2 .dbline 53
00E2 08EC ldi R16,200
00E4 10E0 ldi R17,0
00E6 A6DF xcall _delay_nms
00E8 .dbline -2
00E8 L14:
00E8 .dbline 0 ; func end
00E8 0895 ret
00EA .dbend
00EA .dbfunc e USART_InitM1681 _USART_InitM1681 fV
00EA ; tmp -> R10,R11
00EA ; baud -> R10,R11
.even
00EA _USART_InitM1681::
00EA 0E940000 xcall push_gset3
00EE 5801 movw R10,R16
00F0 .dbline -1
00F0 .dbline 57
00F0 ; ADCSR|=(1<<ADSC);//啟動轉換
00F0 ; }
00F0 ; //將AD轉換結果轉換成電壓數值
00F0 ; void main(void)
00F0 .dbline 60
00F0 ; {
00F0 ; unsigned char i;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -