⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rddayinji.s

📁 ATMAGE128串口荣达微型打印机驱动-查询方式
💻 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 + -