pt2262.lis
来自「单片机PT2262发射程序 串口调试助手测试成功」· LIS 代码 · 共 168 行
LIS
168 行
.module PT2262.C
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\PT2262_atmega8\PT2262.C
0000 .dbfunc e initial_PORT _initial_PORT fV
.even
0000 _initial_PORT::
0000 .dbline -1
0000 .dbline 21
0000 ; /********************************
0000 ; NAME:USART.C
0000 ; DATA: 2007/5/6
0000 ; AUTHOR: DIP STUDIO
0000 ; MCU: ATMEGA8
0000 ; 8.0000MHz
0000 ; ********************************/
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; /*引脚连接
0000 ; PD3---->D0
0000 ; PD4---->D1
0000 ; PD5---->D2
0000 ; PD6---->D3
0000 ; PD7---->TE
0000 ; */
0000 ; //------------------------------------------------------------------
0000 ; // 初始化函数
0000 ; //------------------------------------------------------------------
0000 ; void initial_PORT(void)
0000 ; {
0000 .dbline 22
0000 ; PORTD=0XFF;
0000 8FEF ldi R24,255
0002 82BB out 0x12,R24
0004 .dbline 23
0004 ; DDRD=0XFF; //PD口为输出模式
0004 81BB out 0x11,R24
0006 .dbline -2
0006 L1:
0006 .dbline 0 ; func end
0006 0895 ret
0008 .dbend
0008 .dbfunc e delay _delay fV
0008 ; i -> R20,R21
0008 ; time -> R16,R17
.even
0008 _delay::
0008 00D0 rcall push_gset1
000A .dbline -1
000A .dbline 29
000A ; }
000A ; //--------------------------------------------------------------
000A ; // 延时函数
000A ; //--------------------------------------------------------------
000A ; void delay(int time)
000A ; {
000A 09C0 rjmp L4
000C L3:
000C .dbline 32
000C ; int i;
000C ; while(--time)
000C ; {
000C .dbline 33
000C ; for(i=0;i<=1000;i++)
000C 4427 clr R20
000E 5527 clr R21
0010 L6:
0010 .dbline 34
0010 .dbline 34
0010 .dbline 34
0010 L7:
0010 .dbline 33
0010 4F5F subi R20,255 ; offset = 1
0012 5F4F sbci R21,255
0014 .dbline 33
0014 88EE ldi R24,1000
0016 93E0 ldi R25,3
0018 8417 cp R24,R20
001A 9507 cpc R25,R21
001C CCF7 brge L6
001E .dbline 35
001E L4:
001E .dbline 31
001E C801 movw R24,R16
0020 0197 sbiw R24,1
0022 8C01 movw R16,R24
0024 0030 cpi R16,0
0026 0107 cpc R16,R17
0028 89F7 brne L3
002A X0:
002A .dbline -2
002A L2:
002A 00D0 rcall pop_gset1
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r i 20 I
002E .dbsym r time 16 I
002E .dbend
002E .dbfunc e Radio_send _Radio_send fV
002E ; datas -> R16
.even
002E _Radio_send::
002E .dbline -1
002E .dbline 41
002E ; {;}
002E ; }
002E ; }
002E ; //--------------------------------------------------------------
002E ; // 发射函数
002E ; //--------------------------------------------------------------
002E ; void Radio_send(unsigned char datas)//发送的有效数据是一个4位二进制数,
002E ; { //datas的低4位为有效数据
002E .dbline 42
002E ; PORTD=(datas<<3)&0XF8; //把数据移到待发射位置,并关闭发射使能
002E 802F mov R24,R16
0030 880F lsl R24
0032 880F lsl R24
0034 880F lsl R24
0036 887F andi R24,248
0038 82BB out 0x12,R24
003A .dbline 43
003A ; PORTD&=0X7F; //发射数据
003A 82B3 in R24,0x12
003C 8F77 andi R24,127
003E 82BB out 0x12,R24
0040 .dbline 44
0040 ; PORTD|=0X80; //关闭发射
0040 979A sbi 0x12,7
0042 .dbline -2
0042 L10:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbsym r datas 16 c
0044 .dbend
0044 .dbfunc e main _main fV
.even
0044 _main::
0044 .dbline -1
0044 .dbline 50
0044 ; }
0044 ; //--------------------------------------------------------------
0044 ; // 主函数
0044 ; //--------------------------------------------------------------
0044 ; void main(void)
0044 ; {
0044 .dbline 51
0044 ; initial_PORT();
0044 DDDF rcall _initial_PORT
0046 05C0 rjmp L13
0048 L12:
0048 .dbline 54
0048 .dbline 55
0048 08E0 ldi R16,8
004A F1DF rcall _Radio_send
004C .dbline 56
004C 00EB ldi R16,1200
004E 14E0 ldi R17,4
0050 DBDF rcall _delay
0052 .dbline 57
0052 L13:
0052 .dbline 53
0052 FACF rjmp L12
0054 X1:
0054 .dbline -2
0054 L11:
0054 .dbline 0 ; func end
0054 0895 ret
0056 .dbend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?