




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上附录一 程序代码红外遥控编码程序#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define uintlong unsigned longsbit p3_0=P30;sbit p2_1=P21;sbit p1_0=P10;sbit p1_1=P11;sbit p1_2=P12;sbit p1_3=P13;bit out;uint keyvalue=0x00,flag_key=0,value1,value2,keycount=0,i,j,flag_set=0,flag
2、_press=0;uchar code keycode4=0x7f,0xbf,0xdf,0xef;uchar codeportvalue12=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x00,0x0b;uchar code wy8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/*红外发送部分*/uchar user1=0x00,user2=0x00; uint count=0,endcount=0;uint irdata=0;void deltime(void);void key_scan(void
3、);void sendirdata(void);main(void) EA = 1; TMOD = 0x11; ET0 = 1; p3_0=1; P1=0xff; TH0 = 0xFF; TL0 = 0xE4; TR0 = 0; while(1) key_scan(); if(flag_press=1) flag_press=0; TR0=1; sendirdata(); /*按键扫描*/void key_scan(void) for(i=0;i<=3;i+) P1=keycodei; if(p1_3=0) keycount=i*3+0;flag_key=1; break; if(p1_
4、2=0) keycount=i*3+1;flag_key=1;break; if(p1_1=0) keycount=i*3+2;flag_key=1;break; if(flag_key=1) flag_key=0; value1=P1; deltime(); value2=P1; if(value1=value2)keyvalue=portvaluekeycount;flag_set=1;flag_press=1; while(flag_set) value2=P1; if(value1!=value2) flag_set=0; /*延时*/void deltime(void) uint k
5、; for(k=0;k<=20;k+) /*定时中断*/void time0int(void) interrupt 1 TH0=0xFF; TL0=0xE4; count+;/*发送数据*/void sendirdata() uchar s=0,datapd=0; endcount=320; p3_0=0; count=0; dowhile(count<endcount); endcount=180; count=0; p3_0=1; dowhile(count<endcount); for(s=0;s<=11;s+) endcount=20; count=0;p3_0
6、=0; dowhile(count<endcount);endcount=20; count=0;p3_0=1; dowhile(count<endcount);irdata=keyvalue; for(s=0;s<=7;s+) datapd=irdata & wys; if (datapd=0) endcount=20;count=0;else endcount=60;count=0; p3_0=0; dowhile(count<endcount);endcount=20;count=0; p3_0=1; dowhile(count<endcount);
7、 irdata=keyvalue; for(s=0;s<=7;s+) datapd=irdata & wys; if (datapd=0) endcount=60;count=0; else endcount=20;count=0;p3_0=0; dowhile(count<endcount); endcount=20;count=0; p3_0=1; dowhile(count<endcount); TR0=0;红外遥控解码及驱动程序COUNT EQU 30H FLAG_USER1 EQU 45H FLAG_USER2 EQU 46H SAVEDATA EQU 47
8、H CS1 EQU P3.0CS2 EQU P3.1RS EQU P3.3RW EQU P3.4E EQU P3.5PAGES EQU 56HCOLUMN EQU 57HNUM EQU 58HORG 0000HLJMP MAINORG 0003HLJMP EXTER0INTORG 000BHLJMP TIMER0INTORG 1000HMAIN:MOV P1,#0C5H SETB P3.6 SETB P3.7 MOV TMOD,#01H ;中断初始化 MOV TH0,#0FFH MOV TL0,#9CH SETB EA SETB IT0 SETB ET0 SETB EX0 MOV R0,52H
9、 ;数据接收初始化 MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 51H,#00H MOV COUNT,#00H MOV R1,#08H MOV R2,#02H CLR PSW.5 ;数据接收标志 CLR PSW.1 ;数据处理标志 MOV FLAG_USER1,#00H LCALL CLEAR MOV DPTR,#TAB0 ;显示初始化 MOV PAGES,#1 MOV COLUMN,#0 LCALL LCD_DISP MOV DPTR,#TAB2 MOV PAGES,#1 MOV COLUMN,#16 LCALL LCD_D
10、ISP MOV DPTR,#TAB1 MOV PAGES,#1 MOV COLUMN,#32 LCALL LCD_DISP MOV DPTR,#TAB3 MOV PAGES,#1 MOV COLUMN,#48 LCALL LCD_DISP MOV DPTR,#TAB4 MOV PAGES,#1 MOV COLUMN,#64 LCALL LCD_DISP MOV DPTR,#TAB5 MOV PAGES,#1 MOV COLUMN,#80 ;显示红外遥控模式 LCALL LCD_DISP MOV DPTR,#TAB6 MOV PAGES,#3 MOV COLUMN,#0 LCALL LCD_DI
11、SP MOV DPTR,#TAB7 MOV PAGES,#3 MOV COLUMN,#16 LCALL LCD_DISP MOV DPTR,#TAB8 MOV PAGES,#3 MOV COLUMN,#32 LCALL LCD_DISP MOV DPTR,#TAB10 MOV PAGES,#3 MOV COLUMN,#64 LCALL LCD_DISP MOV DPTR,#TAB9 MOV PAGES,#3 MOV COLUMN,#48 LCALL LCD_DISP ;显示状态:初始LOOP: ;是否进行数据处理 JNB PSW.1,$ LCALL DATACHULI CLR PSW.1 MO
12、V A,SAVEDATA LCALL DATASHOWENDLOOP: LJMP LOOPEXTER0INT: ;外部中断 SETB TR0 MOV 30H,#00H RETITIMER0INT: ;定时中断,数据的验证和接收. MOV TH0,#0FFH MOV TL0,#9CH INC 30H SETB P3.2 MOV C,P3.2 JB PSW.5,DATARECEIVEPD JNC ENDTIMER0INT MOV A,30H CLR C SUBB A,#90 JC ENDTIMER0INT SETB PSW.5 CLR TR0 MOV R1,#08H MOV 51H,#00H MO
13、V R0,#52H MOV R2,#04H ;共接受两组数据 LJMP ENDTIMER0INT DATARECEIVEPD: ;数据接收判断 JNC ENDTIMER0INT CLR TR0 MOV A,30H CLR TR0 SUBB A,#10 JC ORECEIVE SETB C MOV A,51H RRC A MOV 51H,A LJMP WENDPDORECEIVE: CLR C MOV A,51H RRC A MOV 51H,AWENDPD: DJNZ R1,ENDTIMER0INT ;重复两次接收,确保存储. MOV R1,#08H MOV R0,51H MOV R0,51H
14、INC R0 MOV 51H,#00H DJNZ R2,ENDTIMER0INT CLR PSW.5 SETB PSW.1 SETB P0.0ENDTIMER0INT: ;定时中断结束 RETIDATACHULI: ;数据处理 MOV A,52H CLR C SUBB A,FLAG_USER1 JNZ ENDDATACHULI MOV A,54H ANL A,55H JNZ ENDDATACHULI MOV A,54H MOV SAVEDATA,A MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00HENDDATACHULI: ;处理完成,返回
15、主程序 RETDATASHOW: ;判断接收信号,进行相应处理 CJNE A,#00H,CON1 LJMP AOTO ;状态判断CON1:CJNE A,#02H,CON2 MOV P1,#0FAH MOV DPTR,#TAB11 MOV PAGES,#3 LJMP ENDDATASHOW ;后转并显示 CON2:CJNE A,#04H,CON3 MOV P1,#0E5H MOV DPTR,#TAB12 MOV PAGES,#3 LJMP ENDDATASHOW ;左转并显示CON3:CJNE A,#05H,CON4 MOV P1,#0C5H MOV DPTR,#TAB13 MOV PAGES,
16、#3 LJMP ENDDATASHOW ;停转并显示CON4:CJNE A,#06H,CON5 MOV P1,#0D5H MOV DPTR,#TAB14 MOV PAGES,#3 LJMP ENDDATASHOW ;右转并显示CON5:CJNE A,#08H,CON6 MOV P1,#0F5H MOV DPTR,#TAB15 MOV PAGES,#3 LJMP ENDDATASHOW ;前转并显示CON6:JMP ENDDATASHOW1ENDDATASHOW: MOV COLUMN,#48 LCALL LCD_DISP MOV DPTR,#TAB16 MOV PAGES,#3 MOV COL
17、UMN,#64 LCALL LcD_DISPENDDATASHOW1: RETAOTO:MOV P1,#0C0H ;寻迹壁障程序 MOV DPTR,#TAB17 MOV PAGES,#1 MOV COLUMN,#0 LCALL LCD_DISP MOV DPTR,#TAB18 MOV PAGES,#1 MOV COLUMN,#16 LCALL LCD_DISP MOV DPTR,#TAB19 MOV PAGES,#1 MOV COLUMN,#32 LCALL LCD_DISP MOV DPTR,#TAB20 MOV PAGES,#1 MOV COLUMN,#48 LCALL LCD_DISP
18、;显示寻迹避障 MOV DPTR,#TAB10 MOV PAGES,#3 MOV COLUMN,#64 LCALL LCD_DISP MOV DPTR,#TAB9 MOV PAGES,#3 MOV COLUMN,#48 LCALL LCD_DISP ;显示初始 LCALL DLY ;模式工作前等待3秒AOTO1: ;自动寻迹避障程序 MOV DPTR,#TAB15 MOV PAGES,#3 MOV COLUMN,#48 LCALL LCD_DISP MOV DPTR,#TAB16 MOV PAGES,#3 MOV COLUMN,#64 LCALL LCD_DISP ;显示前转 MOV P1,#
19、0F5H JNB PSW.5,AOTO2 ;检测红外信号 LCALL CLEAR MOV P1,#0C5H LCALL DLY1 LJMP MAIN AOTO2: JNB P1.6,ZZ ;状态判断 JNB P1.7,YZ JNB P3.6,HT JNB P3.7,HT SJMP AOTO1 ZZ:MOV P1,#0E5H ;右寻迹灯亮 MOV DPTR,#TAB12 MOV PAGES,#3 MOV COLUMN,#48 LCALL LCD_DISP LCALL DLY SJMP DD YZ:MOV P1, #0D5H ;左寻迹灯亮 MOV DPTR,#TAB14 MOV PAGES,#3
20、MOV COLUMN,#48 LCALL LCD_DISP LCALL DLY LJMP DD HT:MOV P1,#0FAH ;发现障碍物 MOV DPTR,#TAB11 MOV PAGES,#3 MOV COLUMN,#48 LCALL LCD_DISP LCALL DLY SJMP ZZ DD:LJMP AOTO1DLY:MOV R7,#0BDH ;3秒延时DL1:MOV R6,#0E6HDL0:MOV R5,#21H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 RETDLY1:MOV R7,#0A7H ;1秒延时DL3:MOV R6,#0ABHDL2:MOV R
21、5,#10H DJNZ R5,$ DJNZ R6,DL2 DJNZ R7,DL3 NOP RETCLEAR: MOV R4,#00H ;清屏程序CLEAR1:MOV A ,R4 ORL A,#0B8H MOV B,A LCALL WCL0 LCALL WCR0 MOV B,#40H LCALL WCL0 LCALL WCR0 MOV R3,#40HCLEAR2:MOV B,#00H LCALL WCL1 LCALL WCR1 DJNZ R3,CLEAR2 INC R4 CJNE R4, #08H, CLEAR1 RETLCD_DISP: ;汉字显示程序 MOV R1,#02H MOV R0,#
22、00H MOV NUM,#10H DISP: MOV R4,NUMDISPWORD:MOV A,COLUMN CLR C SUBB A,#63 JNC YXP MOV A,COLUMN ORL A,#40H MOV B,A LCALL WCL0 MOV A,PAGES ORL A,#0B8H MOV B,A LCALL WCL0 DISPDATA1:INC COLUMN MOV A,R0 MOVC A,A+DPTR MOV B,A LCALL WCL1 LJMP NEXTDISP YXP:MOV A,COLUMN CLR C SUBB A,#64 ORL A,#40H MOV B,A LCAL
23、L WCR0 MOV A,PAGES ORL A,#0B8H MOV B,A LCALL WCR0DISPDATA2:INC COLUMN MOV A,R0 MOVC A,A+DPTR MOV B,A LCALL WCR1NEXTDISP:INC R0 DJNZ R4,DISPWORD MOV A,COLUMN CLR C SUBB A,#10H MOV COLUMN, A INC PAGES DJNZ R1,DISP RETWCL0: CLR CS1 SETB CS2 CLR RS SETB RWWCL00: MOV P2,#0FFH SETB E MOV A,P2 CLR E JB ACC
24、.7,WCL00 CLR RW MOV P2, B SETB E NOP CLR E RETWCL1: CLR CS1 SETB CS2 CLR RS SETB RWWCL11: MOV P2,#0FFH SETB E MOV A,P2 CLR E JB ACC.7,WCL11 CLR RW SETB RS MOV P2, B SETB E CLR E RETWCR0: SETB CS1 CLR CS2 CLR RS SETB RWWCR00: MOV P2,#0FFH SETB E MOV A,P2 CLR E JB ACC.7,WCR00 CLR RW MOV P2, B SETB E C
25、LR E RETWCR1: SETB CS1 CLR CS2 CLR RS SETB RWWCR11: MOV P2,#0FFH SETB E MOV A,P2 CLR E JB ACC.7,WCR11 CLR RW SETB RS MOV P2, B SETB E CLR E RETTAB0:DB 20H,30H,0ACH,63H,20H,10H,04H,04H,04H,04H,0FCH,04H,06H,04H,00H,00H,22H,67H,22H,12H,12H,52H,40H,40H,40H,40H,7FH,40H,40H,60H,40H,00H ; 红TAB1:DB 40H,42H,
26、44H,0CCH,00H,42H,36H,2AH,22H,0FEH,21H,29H,25H,80H,00H,00H,00H,40H,20H,1FH,21H,41H,5DH,49H,49H,4FH,49H,49H,5DH,61H,21H,00H ; 外TAB2:DB 00H,80H,0E0H,18H,17H,10H,90H,70H,00H,0FFH,20H,40H,80H,00H,00H,00H,01H,40H,20H,11H,0AH,04H,03H,00H,00H,0FFH,00H,00H,00H,01H,03H,00H ; 遥TAB3:DB 10H,10H,10H,0FFH,90H,50H,
27、0CH,44H,24H,15H,06H,14H,24H,54H,0CH,00H,02H,42H,81H,7FH,00H,40H,42H,42H,42H,42H,7EH,42H,43H,62H,40H,00H ; 控TAB4:DB 10H,10H,0D0H,0FFH,94H,14H,0E4H,0BFH,0A4H,0A4H,0A4H,0BFH,0F4H,26H,04H,00H,04H,03H,00H,0FFH,08H,89H,8BH,4AH,2AH,1EH,2AH,2AH,4BH,0C8H,48H,00H ; 模TAB5:DB 10H,10H,90H,90H,90H,90H,90H,10H,0FF
28、H,10H,12H,14H,10H,18H,10H,00H,00H,20H,60H,20H,1FH,10H,10H,08H,01H,06H,18H,20H,40H,80H,70H,00H ; 式TAB6:DB 00H,08H,30H,00H,0FFH,20H,20H,20H,20H,0FFH,20H,22H,24H,30H,20H,00H,08H,0CH,02H,01H,0FFH,40H,20H,1CH,03H,00H,03H,0CH,30H,60H,20H,00H; 状TAB7:DB 04H,04H,84H,84H,44H,24H,54H,8FH,14H,24H,44H,44H,84H,86
29、H,84H,00H,01H,21H,1 CH,00H,3CH,40H,42H,4CH,40H,40H,70H,04H,08H,31H,00H,00H; 态TAB8:DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,036H,036H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H ;:TAB9:DB 10H,10H,91H,0D6H,30H,98H,00H,08H,08H,0F8H,08H
30、,08H,08H,0FCH,08H,00H,02H,01H,00H,0FFH,01H,82H,40H,20H,18H,07H,40H,80H,40H,3FH,00H,00H ; 初TAB10:DB 10H,10H,0F0H,1FH,10H,0F0H,40H,60H,58H,47H,40H,40H,50H,60H,0C0H,00H,40H,22H,15H,08H,16H,61H,00H,0FEH,42H,42H,42H,42H,42H,0FFH,02H,00H;始TAB11:DB 00H,00H,0FCH,24H,24H,24H,24H,24H,24H,22H,22H,23H,0A2H,30H,
31、20H,00H,40H,30H,0FH,00H,00H,0FFH,41H,41H,41H,41H,41H,41H,0FFH,01H,00H,00H;后TAB12:DB 08H,08H,08H,08H,88H,78H,0FH,08H,08H,08H,08H,88H,0CH,08H,00H,00H,20H,50H,48H,46H,41H,41H,41H,41H,7FH,41H,41H,41H,41H,60H,40H,00H;左TAB13:DB 40H,20H,0F8H,07H,00H,04H,74H,54H,55H,56H,54H,54H,76H,04H,00H,00H,00H,00H,0FFH,04H,03H,01H,05H,45H,85H,7DH,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息化技术在农业生产中的合作协议
- 农民工在岗培训与劳务派遣合同
- 购买物业管理服务协议书
- 农业生产经营资金互助保障协议
- 智慧寓言伊索寓言故事解读
- 高考语文复习:专题六、七
- 体育培训中心学员意外事故的免责及保障协议
- 高考文言文断句100题专项练习(附答案及翻译最方便)
- 小马过河自我成长的故事解读
- 农业旅游开发手册
- 银行网点装修工程施工组织设计方案
- 《服装零售管理实习》课程教学大纲
- 2024(统编版)语文七年级上册《西游记》真题+综合题练习(学生版+解析版)
- 2024年陕西省初中学业水平考试·数学
- 统编版九年级道德与法治上册期中考试卷带答案
- 火电厂汽机车间安全培训
- 2025初级会计理论考试100题及解析
- 中华人民共和国统计法
- 某部劳务派遣服务 投标方案(技术标 )
- 运用PDCA降低住院患者跌倒、坠床发生率课件
- 剪刀式登高车安全技术交底
评论
0/150
提交评论