📄 rddayinji.s
字号:
.module RDdayinji.c
.area data(ram, con, rel)
_data1::
.blkb 2
.area idata
.byte 208,194
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 200,217
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 200,203
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.dbsym e data1 _data1 A[6:6]c
_initorder::
.blkb 2
.area idata
.byte 27,'C
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.blkb 2
.area idata
.byte 8,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.blkb 2
.area idata
.byte 27,56
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.blkb 2
.area idata
.byte 0,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.dbsym e initorder _initorder A[8:8]c
_printorder::
.blkb 2
.area idata
.byte 10,13
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.dbsym e printorder _printorder A[2:2]c
_newline::
.blkb 1
.area idata
.byte 10
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.dbsym e newline _newline A[1:1]c
_newpage::
.blkb 2
.area idata
.byte 12,27
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.blkb 2
.area idata
.byte 64,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.dbsym e newpage _newpage A[4:4]c
.area text(rom, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 44
; /***********************************************************/
; //Title:ATMAGE128串口通信程序-查询方式
; //ICC-AVR : 2009-2-22 13:37:40
; // Target : M128
; // Crystal: 8.0000Mhz
; //Author :borlittle
; //Function:usart0 test
; //备注 :本程序经调试好使
; /***********************************************************/
; #include <iom128v.h>
; #include <macros.h>
;
; #define uchar unsigned char //定义无符号字符为 uchar
; #define uint unsigned int //定义无符号整型
; #define Crystal 8000000 //晶振8MHZ
; #define Baud 9600 //波特率
; /***************打印命令**************************************/
; //0x1b,0x38->选择不同点阵汉字点阵,默认0,16*16点阵打印
; //0x0d ->回车,执行打印
; //0x0e ->横向字符放大2倍
; //0x1b,0x40->打印机初始化
; //0x0a ->换行
; //0x1b,0x43,0xn->设置页行数
; //0x0c ->换页
; /*****************************************************/
;
; uchar data1[]={0xd0,0xc2,0xc8,0xd9,0xc8,0xcb};//汉字内码://汉字内码“新荣达”
; uchar initorder[]={0x1b,0x43,0x08,0x00,0x1b,0x38,0x00,0x00}; //初始化命令,
; uchar printorder[]={0x0a,0x0d}; //打印命令
; uchar newline[]={0x0a};//换行设置
; uchar newpage[]={0x0c,0x1b,0x40,0x00};//换页设置
;
;
; //函数声明
; void port_init(void);
; void usart0_init(void);
; void init_devices(void);
; void usart0_char_send(uchar i);
; void usart0_str_send(char *s);
; uchar usart0_char_receive(void);
;
; /******************端口初始化*******************************/
; void port_init(void)
; {
.dbline 45
; PORTE = 0xFF; //设置RXD0和TXD0
ldi R24,255
out 0x3,R24
.dbline 46
; DDRE = 0x02;
ldi R24,2
out 0x2,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e usart0_init _usart0_init fV
.even
_usart0_init::
.dbline -1
.dbline 50
; }
; /*****************串口0初始化*********************************/
; void usart0_init(void)
; {
.dbline 51
; UCSR0B = 0x00; //禁止发送和接收
clr R2
out 0xa,R2
.dbline 52
; UCSR0A = 0x02; //倍速异步模式USX0=1
ldi R24,2
out 0xb,R24
.dbline 53
; UCSR0C = 0x06; //0000 0110,UCSZ01=1,UCSZ00=1;8位字符,1位停止位
ldi R24,6
sts 149,R24
.dbline 54
; UBRR0L=(Crystal/8/(Baud+1))%256; //若为正常异步模式USX0=0则位(Crystal/16/(Baud+1))%256
ldi R24,104
out 0x9,R24
.dbline 55
; UBRR0H=(Crystal/8/(Baud+1))/256; //参见ATMAGE128使用手册
sts 144,R2
.dbline 56
; UCSR0B = 0x08; //允许发送
ldi R24,8
out 0xa,R24
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 60
; }
; /******************初始器件**************************************/
; void init_devices(void)
; {
.dbline 61
; port_init();
xcall _port_init
.dbline 62
; usart0_init();
xcall _usart0_init
.dbline -2
L3:
.dbline 0 ; func end
ret
.dbend
.dbfunc e usart0_char_send _usart0_char_send fV
; i -> R16
.even
_usart0_char_send::
.dbline -1
.dbline 66
; }
; //****************发送一个字符******************************
; void usart0_char_send(uchar i)
; {
L5:
.dbline 67
L6:
.dbline 67
; while(!(UCSR0A&(1<<UDRE0)));
sbis 0xb,5
rjmp L5
.dbline 68
; UDR0=i;
out 0xc,R16
.dbline -2
L4:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e usart0_str_send _usart0_str_send fV
; s -> R20,R21
.even
_usart0_str_send::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 72
; }
; /******************发送一个字符串*************************/
; void usart0_str_send(char *s)
; {
xjmp L10
L9:
.dbline 74
.dbline 75
movw R30,R20
ldd R16,z+0
xcall _usart0_char_send
.dbline 76
subi R20,255 ; offset = 1
sbci R21,255
.dbline 77
L10:
.dbline 73
; while(*s)
movw R30,R20
ldd R2,z+0
tst R2
brne L9
.dbline -2
L8:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r s 20 pc
.dbend
.dbfunc e usart0_str_sendArray _usart0_str_sendArray fV
; i -> R20
; len -> R22
; q -> R10,R11
.even
_usart0_str_sendArray::
xcall push_gset3
mov R22,R18
movw R10,R16
.dbline -1
.dbline 81
; {
; usart0_char_send(*s);
; s++;
; }
; }
; /*********************发送一个数组**********************/
; void usart0_str_sendArray(uchar *q,uchar len)
; {
.dbline 83
; uchar i;
; for(i=0;i<len;i++) //控制字符个数
clr R20
xjmp L16
L13:
.dbline 84
.dbline 85
movw R30,R10
ldd R16,z+0
xcall _usart0_char_send
.dbline 86
movw R24,R10
adiw R24,1
movw R10,R24
.dbline 87
L14:
.dbline 83
inc R20
L16:
.dbline 83
cp R20,R22
brlo L13
.dbline -2
L12:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r len 22 c
.dbsym r q 10 pc
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 92
; {
; usart0_char_send(*q);
; q++;
; }
; }
;
; /***************主函数*****************************/
; void main(void)
; {
.dbline 93
; init_devices();
xcall _init_devices
.dbline 94
; usart0_str_sendArray(initorder,8);
ldi R18,8
ldi R16,<_initorder
ldi R17,>_initorder
xcall _usart0_str_sendArray
.dbline 95
; usart0_str_send("阀状态:正常");
ldi R16,<L18
ldi R17,>L18
xcall _usart0_str_send
.dbline 96
; usart0_str_sendArray(newline,1);
ldi R18,1
ldi R16,<_newline
ldi R17,>_newline
xcall _usart0_str_sendArray
.dbline 97
; usart0_str_send("测试阀编号:12");
ldi R16,<L19
ldi R17,>L19
xcall _usart0_str_send
.dbline 98
; usart0_str_sendArray(newline,1);
ldi R18,1
ldi R16,<_newline
ldi R17,>_newline
xcall _usart0_str_sendArray
.dbline 99
; usart0_str_send("测试阀号: 3");
ldi R16,<L20
ldi R17,>L20
xcall _usart0_str_send
.dbline 100
; usart0_str_sendArray(newline,1);
ldi R18,1
ldi R16,<_newline
ldi R17,>_newline
xcall _usart0_str_sendArray
.dbline 101
; usart0_str_send("测试者号:223");
ldi R16,<L21
ldi R17,>L21
xcall _usart0_str_send
.dbline 102
; usart0_str_sendArray(newline,1);
ldi R18,1
ldi R16,<_newline
ldi R17,>_newline
xcall _usart0_str_sendArray
.dbline 103
; usart0_str_send("测试时间:2009年2月24日15:46");
ldi R16,<L22
ldi R17,>L22
xcall _usart0_str_send
.dbline 104
; usart0_str_sendArray(newline,1);
ldi R18,1
ldi R16,<_newline
ldi R17,>_newline
xcall _usart0_str_sendArray
.dbline 105
; usart0_str_sendArray(newpage,3);
ldi R18,3
ldi R16,<_newpage
ldi R17,>_newpage
xcall _usart0_str_sendArray
L23:
.dbline 106
L24:
.dbline 106
xjmp L23
X0:
.dbline -2
L17:
.dbline 0 ; func end
ret
.dbend
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
L22:
.blkb 30
.area idata
.byte 178,226,202,212,202,177,188,228,163,186,50,48,48,57,196,234
.byte 50,212,194,50,52,200,213,49,53,163,186,52,54,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
L21:
.blkb 14
.area idata
.byte 178,226,202,212,213,223,186,197,163,186,50,50,51,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
L20:
.blkb 13
.area idata
.byte 178,226,202,212,183,167,186,197,163,186,32,51,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
L19:
.blkb 15
.area idata
.byte 178,226,202,212,183,167,177,224,186,197,163,186,49,50,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
L18:
.blkb 13
.area idata
.byte 183,167,215,180,204,172,163,186,213,253,179,163,0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\RDdayinji.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -