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

📄 shiyan.lis

📁 已经调试好的AVR单片机MEGA8的串口打印输出程序
💻 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 + -