📄 shiyan.lis
字号:
.module shiyan.c
.area text(rom, con, rel)
0000 .dbfile C:\icc\examples.avr\chengxu\shiyan\shiyan.c
0000 .dbfunc e uart0_init _uart0_init fV
.even
0000 _uart0_init::
0000 .dbline -1
0000 .dbline 21
0000 ; //ICC-AVR application builder : 2007-5-25 21:35:24
0000 ; // Target : M8
0000 ; // Crystal: 7.3728Mhz
0000 ; // 用途:演示getchar(),getchar(),printf()等函数的使用。
0000 ; // 作者:XX
0000 ; // AVR与虚拟仪器 http://www.avrvi.com
0000 ; // 使用7.3728M外部晶振,注意:请短接跳线JP2的1和2,电源跳线连接3.3V或者5V
0000 ; // 串口使用JP4的连接方法:1和2短接,使用RS232,请注意查看跳线旁边的示意图
0000 ; // 开发板连接:无连线
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ;
0000 ; //UART0 initialize
0000 ; // desired baud rate: 9600
0000 ; // actual: baud rate:9600 (0.0%)
0000 ; // char size: 8 bit
0000 ; // parity: Disabled
0000 ; void uart0_init(void)
0000 ; {
0000 .dbline 22
0000 ; UCSRB = 0x00; //disable while setting baud rate
0000 2224 clr R2
0002 2AB8 out 0xa,R2
0004 .dbline 23
0004 ; UCSRA = 0x00;
0004 2BB8 out 0xb,R2
0006 .dbline 24
0006 ; UCSRC = BIT(URSEL) | 0x06;
0006 86E8 ldi R24,134
0008 80BD out 0x20,R24
000A .dbline 25
000A ; UBRRL = 0x5F; //set baud rate lo
000A 8FE5 ldi R24,95
000C 89B9 out 0x9,R24
000E .dbline 26
000E ; UBRRH = 0x00; //set baud rate hi
000E 20BC out 0x20,R2
0010 .dbline 27
0010 ; UCSRB = 0x18;
0010 88E1 ldi R24,24
0012 8AB9 out 0xa,R24
0014 .dbline -2
0014 L1:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc e main _main fV
0016 ; i -> R20
.even
0016 _main::
0016 .dbline -1
0016 .dbline 31
0016 ; }
0016 ;
0016 ; void main(void)
0016 ; {
0016 .dbline 33
0016 ; unsigned char i;
0016 ; uart0_init(); //初始化串口
0016 F4DF rcall _uart0_init
0018 .dbline 35
0018 ; //printf("[url]www.avrvi.com[/url]\r\n"); //输出字符串
0018 ; printf("www.avrvi.com\r\n"); //输出字符串
0018 00E0 ldi R16,<L3
001A 10E0 ldi R17,>L3
001C 00D0 rcall _printf
001E 0DC0 rjmp L5
0020 L4:
0020 .dbline 37
0020 ; while(1)
0020 ; {
0020 .dbline 38
0020 ; i=getchar(); //读入一个字符
0020 00D0 rcall _getchar
0022 402F mov R20,R16
0024 .dbline 39
0024 ; putchar((signed char)i); //输出字符
0024 00D0 rcall _putchar
0026 .dbline 40
0026 ; if(i=='a') printf("OK\r\n");//如果输入的是a,输出OK,加回车换行。
0026 4136 cpi R20,97
0028 19F4 brne L7
002A .dbline 40
002A 00E0 ldi R16,<L9
002C 10E0 ldi R17,>L9
002E 00D0 rcall _printf
0030 L7:
0030 .dbline 41
0030 ; if(i=='A') printf("GOOD\r\n");//如果输入的是A,输出GOOD,加回车换行。
0030 4134 cpi R20,65
0032 19F4 brne L10
0034 .dbline 41
0034 00E0 ldi R16,<L12
0036 10E0 ldi R17,>L12
0038 00D0 rcall _printf
003A L10:
003A .dbline 42
003A L5:
003A .dbline 36
003A F2CF rjmp L4
003C X0:
003C .dbline -2
003C L2:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbsym r i 20 c
003E .dbend
.area data(ram, con, rel)
0000 .dbfile C:\icc\examples.avr\chengxu\shiyan\shiyan.c
0000 L12:
0000 .blkb 7
.area idata
0000 474F4F440D0A00 .byte 'G,'O,'O,'D,13,10,0
.area data(ram, con, rel)
0007 .dbfile C:\icc\examples.avr\chengxu\shiyan\shiyan.c
0007 L9:
0007 .blkb 5
.area idata
0007 4F4B0D0A00 .byte 'O,'K,13,10,0
.area data(ram, con, rel)
000C .dbfile C:\icc\examples.avr\chengxu\shiyan\shiyan.c
000C L3:
000C .blkb 16
.area idata
000C 7777772E61767276692E636F6D0D0A00 .byte 'w,'w,'w,46,'a,'v,'r,'v,'i,46,'c,'o,'m,13,10,0
.area data(ram, con, rel)
001C .dbfile C:\icc\examples.avr\chengxu\shiyan\shiyan.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -