📄 main.lis
字号:
.module Main.c
.area data(ram, con, rel)
0000 _ExtendRomRW::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
0001 .dbsym e ExtendRomRW _ExtendRomRW c
.area lit(rom, con, rel)
0000 L2:
0000 00 .byte 0
0001 00000000 .byte 0,0,0,0
.area text(rom, con, rel)
0000 .dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
0000 .dbfunc e main _main fV
0000 ; strTemp -> y+0
0000 ; i -> R22
0000 ; intTemp -> R10,R11
0000 ; pStr -> R20,R21
.even
0000 _main::
0000 2597 sbiw R28,5
0002 .dbline -1
0002 .dbline 19
0002 ; #include <iom8v.h>
0002 ; #include <macros.h>
0002 ; extern void timer0_init(void);
0002 ; extern void pwm1_init(void);
0002 ; extern void uart_init(void);
0002 ; extern void adc_init(void);
0002 ; extern void int_init(void);
0002 ; extern void TWI_init(void);
0002 ;
0002 ; extern void puts(char *s);
0002 ; extern void putchar(unsigned char c);
0002 ;
0002 ; extern unsigned char i2c_read(unsigned char RomAddress);
0002 ; extern void i2c_write(unsigned char Wdata,unsigned char RomAddress);
0002 ;
0002 ; unsigned char ExtendRomAddr,ExtendRomVal;//定义片外EEPROM
0002 ; unsigned char ExtendRomRW=0b00000000;
0002 ; void main(void)
0002 ; {
0002 .dbline 21
0002 ; unsigned int intTemp;
0002 ; unsigned char strTemp[5]={0},i;
0002 80E0 ldi R24,<L2
0004 90E0 ldi R25,>L2
0006 FE01 movw R30,R28
0008 05E0 ldi R16,5
000A 10E0 ldi R17,0
000C FA93 st -y,R31
000E EA93 st -y,R30
0010 9A93 st -y,R25
0012 8A93 st -y,R24
0014 00D0 rcall asgncblk
0016 .dbline 22
0016 ; unsigned char *pStr=strTemp;
0016 AE01 movw R20,R28
0018 .dbline 23
0018 ; OSCCAL=0x8e;//内部振荡器校正字,需要使用Ponygrog测试
0018 8EE8 ldi R24,142
001A 81BF out 0x31,R24
001C .dbline 25
001C ; //TCXO评估板上的TQFP上为0x8e,而DIP28的为0xa5
001C ; uart_init();//初始化USRART
001C 00D0 rcall _uart_init
001E .dbline 26
001E ; puts("欢迎进入TCXO评估板调试程序");
001E 00E0 ldi R16,<L3
0020 10E0 ldi R17,>L3
0022 00D0 rcall _puts
0024 .dbline 27
0024 ; timer0_init();//初始化定时器
0024 00D0 rcall _timer0_init
0026 .dbline 28
0026 ; pwm1_init();//初始化PWM输出
0026 00D0 rcall _pwm1_init
0028 .dbline 29
0028 ; adc_init();//初始化ADC
0028 00D0 rcall _adc_init
002A .dbline 30
002A ; int_init();//int0,int1中断使能
002A 00D0 rcall _int_init
002C .dbline 31
002C ; TWI_init();
002C 00D0 rcall _TWI_init
002E .dbline 32
002E ; SEI();//开放全局中断
002E 7894 sei
0030 .dbline 33
0030 ; OCR1A=655;//0.8v
0030 8FE8 ldi R24,655
0032 92E0 ldi R25,2
0034 9BBD out 0x2b,R25
0036 8ABD out 0x2a,R24
0038 .dbline 34
0038 ; OCR1B=2459;//3v
0038 8BE9 ldi R24,2459
003A 99E0 ldi R25,9
003C 99BD out 0x29,R25
003E 88BD out 0x28,R24
0040 .dbline 36
0040 ;
0040 ; i2c_write(0x12,0x11);//写入外部EEPROM数据
0040 21E1 ldi R18,17
0042 02E1 ldi R16,18
0044 00D0 rcall _i2c_write
0046 .dbline 37
0046 ; puts("数据已经写入");
0046 00E0 ldi R16,<L4
0048 10E0 ldi R17,>L4
004A 00D0 rcall _puts
004C 36C0 rjmp L6
004E L5:
004E .dbline 55
004E ;
004E ; /******************从机的数据发送尚未完成*************************************
004E ; intTemp=(int)i2c_read((unsigned char)intTemp);//读取外部EEPROM数据
004E ;
004E ; pStr+=3;//回到指针尾部,因为数据先计算出个位数(需将数据转换为BCD码输出)
004E ; for(i=4;i!=0;i--)
004E ; {
004E ; *pStr=intTemp%10+48;
004E ; intTemp/=10;
004E ; pStr--;
004E ; }
004E ; pStr=strTemp;
004E ; puts(pStr);
004E ; puts("数据读完");
004E ; *****************************************************************************/
004E ;
004E ; while(1)
004E ; {
004E .dbline 56
004E ; if(ExtendRomRW&0b00000010)
004E 20900000 lds R2,_ExtendRomRW
0052 21FE sbrs R2,1
0054 24C0 rjmp L8
0056 .dbline 57
0056 ; {
0056 .dbline 58
0056 ; intTemp=(int)i2c_read(ExtendRomAddr);//读取外部EEPROM数据
0056 00910100 lds R16,_ExtendRomAddr
005A 00D0 rcall _i2c_read
005C A02E mov R10,R16
005E BB24 clr R11
0060 .dbline 60
0060 ;
0060 ; pStr+=3;//回到指针尾部,因为数据先计算出个位数(需将数据转换为BCD码输出)
0060 4D5F subi R20,253 ; offset = 3
0062 5F4F sbci R21,255
0064 .dbline 61
0064 ; for(i=4;i!=0;i--)
0064 64E0 ldi R22,4
0066 10C0 rjmp L13
0068 L10:
0068 .dbline 62
0068 .dbline 63
0068 2AE0 ldi R18,10
006A 30E0 ldi R19,0
006C 8501 movw R16,R10
006E 00D0 rcall mod16u
0070 C801 movw R24,R16
0072 C096 adiw R24,48
0074 FA01 movw R30,R20
0076 8083 std z+0,R24
0078 .dbline 64
0078 2AE0 ldi R18,10
007A 30E0 ldi R19,0
007C 8501 movw R16,R10
007E 00D0 rcall div16u
0080 5801 movw R10,R16
0082 .dbline 65
0082 4150 subi R20,1
0084 5040 sbci R21,0
0086 .dbline 66
0086 L11:
0086 .dbline 61
0086 6A95 dec R22
0088 L13:
0088 .dbline 61
0088 6623 tst R22
008A 71F7 brne L10
008C .dbline 67
008C ; {
008C ; *pStr=intTemp%10+48;
008C ; intTemp/=10;
008C ; pStr--;
008C ; }
008C ; pStr=strTemp;
008C AE01 movw R20,R28
008E .dbline 68
008E ; puts(pStr);
008E 8A01 movw R16,R20
0090 00D0 rcall _puts
0092 .dbline 69
0092 ; ExtendRomRW&=0b11111101;
0092 80910000 lds R24,_ExtendRomRW
0096 8D7F andi R24,253
0098 80930000 sts _ExtendRomRW,R24
009C .dbline 70
009C ; }
009C 0EC0 rjmp L9
009E L8:
009E .dbline 71
009E ; else if(ExtendRomRW&0b00000100)
009E 20900000 lds R2,_ExtendRomRW
00A2 22FE sbrs R2,2
00A4 0AC0 rjmp L14
00A6 .dbline 72
00A6 ; {
00A6 .dbline 73
00A6 ; i2c_write(ExtendRomVal,ExtendRomAddr);//写入外部EEPROM数据
00A6 20910100 lds R18,_ExtendRomAddr
00AA 00910000 lds R16,_ExtendRomVal
00AE 00D0 rcall _i2c_write
00B0 .dbline 74
00B0 ; ExtendRomRW&=0b11111011;
00B0 80910000 lds R24,_ExtendRomRW
00B4 8B7F andi R24,251
00B6 80930000 sts _ExtendRomRW,R24
00BA .dbline 75
00BA ; }
00BA L14:
00BA L9:
00BA .dbline 77
00BA L6:
00BA .dbline 54
00BA C9CF rjmp L5
00BC X0:
00BC .dbline -2
00BC L1:
00BC 2596 adiw R28,5
00BE .dbline 0 ; func end
00BE 0895 ret
00C0 .dbsym l strTemp 0 A[5:5]c
00C0 .dbsym r i 22 c
00C0 .dbsym r intTemp 10 i
00C0 .dbsym r pStr 20 pc
00C0 .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
0000 _ExtendRomVal::
0000 .blkb 1
0001 .dbsym e ExtendRomVal _ExtendRomVal c
0001 _ExtendRomAddr::
0001 .blkb 1
0002 .dbsym e ExtendRomAddr _ExtendRomAddr c
.area data(ram, con, rel)
0001 .dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
0001 L4:
0001 .blkb 13
.area idata
0001 CAFDBEDDD2D1BEADD0B4C8EB00 .byte 202,253,190,221,210,209,190,173,208,180,200,235,0
.area data(ram, con, rel)
000E .dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
000E L3:
000E .blkb 27
.area idata
000E BBB6D3ADBDF8C8EB5443584FC6C0B9C0 .byte 187,182,211,173,189,248,200,235,'T,'C,'X,'O,198,192,185,192
001E B0E5B5F7CAD4B3CCD0F200 .byte 176,229,181,247,202,212,179,204,208,242,0
.area data(ram, con, rel)
0029 .dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -