uart_pc.lis

来自「16个单片机c语言实验程序」· LIS 代码 · 共 512 行 · 第 1/2 页

LIS
512
字号
 0175 445331333032CAB1D6D3B5E7C2B70A0D  .byte 'D,'S,49,51,48,50,202,177,214,211,181,231,194,183,10,13
 0185 00                .byte 0
                        .area data(ram, con, rel)
 0186                   .dbfile D:\16实验程序\串口通信\与计算机通信\uart_pc.c
 0186                   .dbsym e cn_12 _cn_12 A[17:17]c
 0186           _cn_13::
 0186                   .blkb 39
                        .area idata
 0186 CBF9D3D0494FBFDAC8ABB2BFD2FDB3F6  .byte 203,249,211,208,'I,'O,191,218,200,171,178,191,210,253,179,246
 0196 A3ACB7BDB1E3C0A9D5B9CAB5D1E9BCB0  .byte 163,172,183,189,177,227,192,169,213,185,202,181,209,233,188,176
 01A6 B2E2CAD40A0D00    .byte 178,226,202,212,10,13,0
                        .area data(ram, con, rel)
 01AD                   .dbfile D:\16实验程序\串口通信\与计算机通信\uart_pc.c
 01AD                   .dbsym e cn_13 _cn_13 A[39:39]c
                        .area text(rom, con, rel)
 0044                   .dbfile D:\16实验程序\串口通信\与计算机通信\uart_pc.c
 0044                   .dbfunc e ms _ms fI
 0044           ;             aa -> R16,R17
                        .even
 0044           _ms::
 0044                   .dbline -1
 0044                   .dbline 29
 0044           ; //串口通信程序
 0044           ; //向pc串口发送数据
 0044           ; //pc端使用 超级终端 建立连接
 0044           ; //9600  8位数据 1位停止
 0044           ; 
 0044           ; #include <iom16v.h>
 0044           ; #include <macros.h>
 0044           ; #include "uart0.h"
 0044           ; #define uint unsigned int
 0044           ; 
 0044           ; 
 0044           ; uchar cn_00[]={"北京东控开发板\n\r"};
 0044           ; uchar cn_01[]={"ATmega16主芯片:16K Flash 1K SRAM 512Byte EEPROM\n\r"};
 0044           ; uchar cn_02[]={"I2C总线器件24C04,EEPROM数据存储器,4kBit EEPROM\n\r"};
 0044           ; uchar cn_03[]={"单总线DS18B20温度传感器\n\r"};
 0044           ; uchar cn_04[]={"RS232接口Max232A,主从接口(可与计算机或其他开发板通信)\n\r"};
 0044           ; uchar cn_05[]={"20个输入按键、1个复位按键\n\r"};
 0044           ; uchar cn_06[]={"8位动态扫描LED数码管、8位LED发光二极管\n\r"};
 0044           ; uchar cn_07[]={"1个无源蜂鸣器\n\r"};
 0044           ; uchar cn_08[]={"1路A/D输入可调电位器\n\r"};
 0044           ; uchar cn_09[]={"LCD1602和LCD12864液晶接口\n\r"};
 0044           ; uchar cn_10[]={"JTAG仿真接口\n\r"};
 0044           ; uchar cn_11[]={"AVR ISP下载接口\n\r"};
 0044           ; uchar cn_12[]={"DS1302时钟电路\n\r"};
 0044           ; uchar cn_13[]={"所有IO口全部引出,方便扩展实验及测试\n\r"};
 0044           ; 
 0044           ; 
 0044           ; ms(uint aa)
 0044           ; {
 0044                   .dbline 30
 0044           ; for(;aa>0;aa--);
 0044 02C0              xjmp L12
 0046           L9:
 0046                   .dbline 30
 0046           L10:
 0046                   .dbline 30
 0046 0150              subi R16,1
 0048 1040              sbci R17,0
 004A           L12:
 004A                   .dbline 30
 004A 0030              cpi R16,0
 004C 0107              cpc R16,R17
 004E D9F7              brne L9
 0050           X1:
 0050                   .dbline -2
 0050           L8:
 0050                   .dbline 0 ; func end
 0050 0895              ret
 0052                   .dbsym r aa 16 i
 0052                   .dbend
 0052                   .dbfunc e write_cn _write_cn fV
 0052           ;              i -> R10
 0052           ;         cn_nub -> R12
 0052           ;             cn -> R14,R15
                        .even
 0052           _write_cn::
 0052 0E940000          xcall push_xgset00FC
 0056 C22E              mov R12,R18
 0058 7801              movw R14,R16
 005A                   .dbline -1
 005A                   .dbline 34
 005A           ; }
 005A           ; 
 005A           ; void write_cn(uchar *cn,uchar cn_nub)
 005A           ; {
 005A                   .dbline 36
 005A           ; uchar i;
 005A           ; for(i=0;i<(cn_nub);i++)
 005A AA24              clr R10
 005C 0BC0              xjmp L17
 005E           L14:
 005E                   .dbline 37
 005E           ;               {
 005E                   .dbline 38
 005E           ;                       uart_tx(cn[i]);       //发送数据i
 005E EA2D              mov R30,R10
 0060 FF27              clr R31
 0062 EE0D              add R30,R14
 0064 FF1D              adc R31,R15
 0066 0081              ldd R16,z+0
 0068 E9DF              xcall _uart_tx
 006A                   .dbline 39
 006A           ;                       PORTA=i; 
 006A ABBA              out 0x1b,R10
 006C                   .dbline 40
 006C           ;                       ms(60000);
 006C 00E6              ldi R16,60000
 006E 1AEE              ldi R17,234
 0070 E9DF              xcall _ms
 0072                   .dbline 41
 0072           ;               }
 0072           L15:
 0072                   .dbline 36
 0072 A394              inc R10
 0074           L17:
 0074                   .dbline 36
 0074 AC14              cp R10,R12
 0076 98F3              brlo L14
 0078           X2:
 0078                   .dbline -2
 0078           L13:
 0078                   .dbline 0 ; func end
 0078 0C940000          xjmp pop_xgset00FC
 007C                   .dbsym r i 10 c
 007C                   .dbsym r cn_nub 12 c
 007C                   .dbsym r cn 14 pc
 007C                   .dbend
 007C                   .dbfunc e main _main fI
 007C           ;        rx_temp -> <dead>
 007C           ;              i -> R10
                        .even
 007C           _main::
 007C                   .dbline -1
 007C                   .dbline 47
 007C           ; }
 007C           ; 
 007C           ; //与计算机通信的程序
 007C           ; //计算机端使用超级终端,建立一个连接,9600,8位,1个停止位
 007C           ; main()
 007C           ; {
 007C                   .dbline 48
 007C           ; uchar i=0,rx_temp;
 007C AA24              clr R10
 007E                   .dbline 49
 007E           ; init_devices(); //串行口初始化   
 007E D5DF              xcall _init_devices
 0080                   .dbline 51
 0080           ; 
 0080           ; DDRA=0xff;
 0080 8FEF              ldi R24,255
 0082 8ABB              out 0x1a,R24
 0084                   .dbline 52
 0084           ; PORTA=0x00;
 0084 2224              clr R2
 0086 2BBA              out 0x1b,R2
 0088                   .dbline 54
 0088           ; 
 0088           ; ms(3000);
 0088 08EB              ldi R16,3000
 008A 1BE0              ldi R17,11
 008C DBDF              xcall _ms
 008E                   .dbline 55
 008E           ; write_cn(cn_00,16);
 008E 20E1              ldi R18,16
 0090 00E0              ldi R16,<_cn_00
 0092 10E0              ldi R17,>_cn_00
 0094 DEDF              xcall _write_cn
 0096                   .dbline 56
 0096           ; write_cn(cn_01,50);
 0096 22E3              ldi R18,50
 0098 00E0              ldi R16,<_cn_01
 009A 10E0              ldi R17,>_cn_01
 009C DADF              xcall _write_cn
 009E                   .dbline 57
 009E           ; write_cn(cn_02,50);
 009E 22E3              ldi R18,50
 00A0 00E0              ldi R16,<_cn_02
 00A2 10E0              ldi R17,>_cn_02
 00A4 D6DF              xcall _write_cn
 00A6                   .dbline 58
 00A6           ; write_cn(cn_03,25);
 00A6 29E1              ldi R18,25
 00A8 00E0              ldi R16,<_cn_03
 00AA 10E0              ldi R17,>_cn_03
 00AC D2DF              xcall _write_cn
 00AE                   .dbline 59
 00AE           ; write_cn(cn_04,59);
 00AE 2BE3              ldi R18,59
 00B0 00E0              ldi R16,<_cn_04
 00B2 10E0              ldi R17,>_cn_04
 00B4 CEDF              xcall _write_cn
 00B6                   .dbline 60
 00B6           ; write_cn(cn_05,27);
 00B6 2BE1              ldi R18,27
 00B8 00E0              ldi R16,<_cn_05
 00BA 10E0              ldi R17,>_cn_05
 00BC CADF              xcall _write_cn
 00BE                   .dbline 61
 00BE           ; write_cn(cn_06,40);
 00BE 28E2              ldi R18,40
 00C0 00E0              ldi R16,<_cn_06
 00C2 10E0              ldi R17,>_cn_06
 00C4 C6DF              xcall _write_cn
 00C6                   .dbline 62
 00C6           ; write_cn(cn_07,15);
 00C6 2FE0              ldi R18,15
 00C8 00E0              ldi R16,<_cn_07
 00CA 10E0              ldi R17,>_cn_07
 00CC C2DF              xcall _write_cn
 00CE                   .dbline 63
 00CE           ; write_cn(cn_08,23);
 00CE 27E1              ldi R18,23
 00D0 00E0              ldi R16,<_cn_08
 00D2 10E0              ldi R17,>_cn_08
 00D4 BEDF              xcall _write_cn
 00D6                   .dbline 64
 00D6           ; write_cn(cn_09,27);
 00D6 2BE1              ldi R18,27
 00D8 00E0              ldi R16,<_cn_09
 00DA 10E0              ldi R17,>_cn_09
 00DC BADF              xcall _write_cn
 00DE                   .dbline 65
 00DE           ; write_cn(cn_10,14);
 00DE 2EE0              ldi R18,14
 00E0 00E0              ldi R16,<_cn_10
 00E2 10E0              ldi R17,>_cn_10
 00E4 B6DF              xcall _write_cn
 00E6                   .dbline 66
 00E6           ; write_cn(cn_11,17);
 00E6 21E1              ldi R18,17
 00E8 00E0              ldi R16,<_cn_11
 00EA 10E0              ldi R17,>_cn_11
 00EC B2DF              xcall _write_cn
 00EE                   .dbline 67
 00EE           ; write_cn(cn_12,16);
 00EE 20E1              ldi R18,16
 00F0 00E0              ldi R16,<_cn_12
 00F2 10E0              ldi R17,>_cn_12
 00F4 AEDF              xcall _write_cn
 00F6                   .dbline 68
 00F6           ; write_cn(cn_13,38);
 00F6 26E2              ldi R18,38
 00F8 00E0              ldi R16,<_cn_13
 00FA 10E0              ldi R17,>_cn_13
 00FC AADF              xcall _write_cn
 00FE                   .dbline -2
 00FE           L18:
 00FE                   .dbline 0 ; func end
 00FE 0895              ret
 0100                   .dbsym l rx_temp 1 c
 0100                   .dbsym r i 10 c
 0100                   .dbend
 0100           ; }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?