📄 main.s
字号:
.module Main.c
.area data(ram, con, rel)
_ExtendRomRW::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
.dbsym e ExtendRomRW _ExtendRomRW c
.area lit(rom, con, rel)
L2:
.byte 0
.byte 0,0,0,0
.area text(rom, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
.dbfunc e main _main fV
; strTemp -> y+0
; i -> R22
; intTemp -> R10,R11
; pStr -> R20,R21
.even
_main::
sbiw R28,5
.dbline -1
.dbline 19
; #include <iom8v.h>
; #include <macros.h>
; extern void timer0_init(void);
; extern void pwm1_init(void);
; extern void uart_init(void);
; extern void adc_init(void);
; extern void int_init(void);
; extern void TWI_init(void);
;
; extern void puts(char *s);
; extern void putchar(unsigned char c);
;
; extern unsigned char i2c_read(unsigned char RomAddress);
; extern void i2c_write(unsigned char Wdata,unsigned char RomAddress);
;
; unsigned char ExtendRomAddr,ExtendRomVal;//定义片外EEPROM
; unsigned char ExtendRomRW=0b00000000;
; void main(void)
; {
.dbline 21
; unsigned int intTemp;
; unsigned char strTemp[5]={0},i;
ldi R24,<L2
ldi R25,>L2
movw R30,R28
ldi R16,5
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
rcall asgncblk
.dbline 22
; unsigned char *pStr=strTemp;
movw R20,R28
.dbline 23
; OSCCAL=0x8e;//内部振荡器校正字,需要使用Ponygrog测试
ldi R24,142
out 0x31,R24
.dbline 25
; //TCXO评估板上的TQFP上为0x8e,而DIP28的为0xa5
; uart_init();//初始化USRART
rcall _uart_init
.dbline 26
; puts("欢迎进入TCXO评估板调试程序");
ldi R16,<L3
ldi R17,>L3
rcall _puts
.dbline 27
; timer0_init();//初始化定时器
rcall _timer0_init
.dbline 28
; pwm1_init();//初始化PWM输出
rcall _pwm1_init
.dbline 29
; adc_init();//初始化ADC
rcall _adc_init
.dbline 30
; int_init();//int0,int1中断使能
rcall _int_init
.dbline 31
; TWI_init();
rcall _TWI_init
.dbline 32
; SEI();//开放全局中断
sei
.dbline 33
; OCR1A=655;//0.8v
ldi R24,655
ldi R25,2
out 0x2b,R25
out 0x2a,R24
.dbline 34
; OCR1B=2459;//3v
ldi R24,2459
ldi R25,9
out 0x29,R25
out 0x28,R24
.dbline 36
;
; i2c_write(0x12,0x11);//写入外部EEPROM数据
ldi R18,17
ldi R16,18
rcall _i2c_write
.dbline 37
; puts("数据已经写入");
ldi R16,<L4
ldi R17,>L4
rcall _puts
rjmp L6
L5:
.dbline 55
;
; /******************从机的数据发送尚未完成*************************************
; intTemp=(int)i2c_read((unsigned char)intTemp);//读取外部EEPROM数据
;
; pStr+=3;//回到指针尾部,因为数据先计算出个位数(需将数据转换为BCD码输出)
; for(i=4;i!=0;i--)
; {
; *pStr=intTemp%10+48;
; intTemp/=10;
; pStr--;
; }
; pStr=strTemp;
; puts(pStr);
; puts("数据读完");
; *****************************************************************************/
;
; while(1)
; {
.dbline 56
; if(ExtendRomRW&0b00000010)
lds R2,_ExtendRomRW
sbrs R2,1
rjmp L8
.dbline 57
; {
.dbline 58
; intTemp=(int)i2c_read(ExtendRomAddr);//读取外部EEPROM数据
lds R16,_ExtendRomAddr
rcall _i2c_read
mov R10,R16
clr R11
.dbline 60
;
; pStr+=3;//回到指针尾部,因为数据先计算出个位数(需将数据转换为BCD码输出)
subi R20,253 ; offset = 3
sbci R21,255
.dbline 61
; for(i=4;i!=0;i--)
ldi R22,4
rjmp L13
L10:
.dbline 62
.dbline 63
ldi R18,10
ldi R19,0
movw R16,R10
rcall mod16u
movw R24,R16
adiw R24,48
movw R30,R20
std z+0,R24
.dbline 64
ldi R18,10
ldi R19,0
movw R16,R10
rcall div16u
movw R10,R16
.dbline 65
subi R20,1
sbci R21,0
.dbline 66
L11:
.dbline 61
dec R22
L13:
.dbline 61
tst R22
brne L10
.dbline 67
; {
; *pStr=intTemp%10+48;
; intTemp/=10;
; pStr--;
; }
; pStr=strTemp;
movw R20,R28
.dbline 68
; puts(pStr);
movw R16,R20
rcall _puts
.dbline 69
; ExtendRomRW&=0b11111101;
lds R24,_ExtendRomRW
andi R24,253
sts _ExtendRomRW,R24
.dbline 70
; }
rjmp L9
L8:
.dbline 71
; else if(ExtendRomRW&0b00000100)
lds R2,_ExtendRomRW
sbrs R2,2
rjmp L14
.dbline 72
; {
.dbline 73
; i2c_write(ExtendRomVal,ExtendRomAddr);//写入外部EEPROM数据
lds R18,_ExtendRomAddr
lds R16,_ExtendRomVal
rcall _i2c_write
.dbline 74
; ExtendRomRW&=0b11111011;
lds R24,_ExtendRomRW
andi R24,251
sts _ExtendRomRW,R24
.dbline 75
; }
L14:
L9:
.dbline 77
L6:
.dbline 54
rjmp L5
X0:
.dbline -2
L1:
adiw R28,5
.dbline 0 ; func end
ret
.dbsym l strTemp 0 A[5:5]c
.dbsym r i 22 c
.dbsym r intTemp 10 i
.dbsym r pStr 20 pc
.dbend
.area bss(ram, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
_ExtendRomVal::
.blkb 1
.dbsym e ExtendRomVal _ExtendRomVal c
_ExtendRomAddr::
.blkb 1
.dbsym e ExtendRomAddr _ExtendRomAddr c
.area data(ram, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
L4:
.blkb 13
.area idata
.byte 202,253,190,221,210,209,190,173,208,180,200,235,0
.area data(ram, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
L3:
.blkb 27
.area idata
.byte 187,182,211,173,189,248,200,235,'T,'C,'X,'O,198,192,185,192
.byte 176,229,181,247,202,212,179,204,208,242,0
.area data(ram, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\Main\Main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -