单片机学习型遥控器程序详解完整版

上传人:仙*** 文档编号:75536106 上传时间:2022-04-15 格式:DOC 页数:18 大小:63KB
收藏 版权申诉 举报 下载
单片机学习型遥控器程序详解完整版_第1页
第1页 / 共18页
单片机学习型遥控器程序详解完整版_第2页
第2页 / 共18页
单片机学习型遥控器程序详解完整版_第3页
第3页 / 共18页
资源描述:

《单片机学习型遥控器程序详解完整版》由会员分享,可在线阅读,更多相关《单片机学习型遥控器程序详解完整版(18页珍藏版)》请在装配图网上搜索。

1、单片机学习型遥控器程序详解(完整版)STC89C52学习型遥控器,可存八个红外遥控信息,只要再把按键用定时器中断2完成就可以用于商业生产。RXIN BIT P2.0TXZAI BIT P2.2TXOUT BIT P2.1KEY_SIGN BIT 20H ;为0按键错误,为1按键正确RXTX_SIGN BIT 21H ;为0是为发射状态,为1是为接收状态ISP_DATA DATA 0E2H ;ISP功能寄存器定义ISP_ADDRH DATA 0E3HISP_ADDRL DATA 0E4HISP_CMD DATA 0E5HISP_TRIG DATA 0E6HISP_CONTR DATA 0E7HI

2、SP_CMD_NO EQU 0 ;操作数ISP_CMD_READ EQU 1ISP_CMD_PROGRAM EQU 2ISP_CMD_ERASE EQU 3WAIT_TIME EQU 1 ;等待时间ZHIL EQU 30HZHIH EQU 31HGESHU EQU 32HJISHU EQU 33HKEY_WORD EQU 34HKEY_VALUE EQU 35HADDRH EQU 36HADDRL EQU 37HTX_GESHU EQU 38HORG 0000HLJMP STARTORG 000BHLJMP T0INORG 001BHLJMP T1INORG 0100HSTART: MOV S

3、P,#10HCLR RXTX_SIGNLJMP KEY_MAINKEY_MAIN:LCALL SCAN_KEY ;检测有没有单个按键按下MOV A,KEY_WORDCJNE A,#00H,NEXT1LJMP KEY_MAINNEXT1: JNB KEY_SIGN,KEY_MAINMOV KEY_VALUE,ALCALL RE_DELAY ;消抖时间20msLCALL SCAN_KEY ;是否依然是按下的MOV A,KEY_WORDCJNE A,#00H,NEXT2LJMP KEY_MAINNEXT2: JNB KEY_SIGN,KEY_MAINCJNE A,KEY_VALUE,KEY_MAIN

4、RELEASE: LCALL SCAN_KEY ;查看是否放开按键了MOV A,KEY_WORDCJNE A,#00H,RELEASEMOV DPTR,#TAB ;执行相应的程式CLR CMOV A,KEY_VALUEADD A,KEY_VALUEJMP A+DPTRTAB: AJMP KEY_0AJMP KEY_1AJMP KEY_2AJMP KEY_3AJMP KEY_4AJMP KEY_5AJMP KEY_6AJMP KEY_7AJMP KEY_8AJMP KEY_9AJMP KEY_10AJMP KEY_11AJMP KEY_12AJMP KEY_13AJMP KEY_14AJMP K

5、EY_15AJMP KEY_16KEY_0: LJMP KEY_MAIN ;无效的按健值KEY_1: JNB RXTX_SIGN,T1RX ;接收发送键设定键,P1灯亮为接收存储状态,灯灭是为发射状态T1TX: CLR RXTX_SIGNMOV P1,#0FFHLJMP KEY_MAINT1RX: SETB RXTX_SIGNMOV P1,#00HLJMP KEY_MAINKEY_2: MOV ADDRH,#20HMOV ADDRL,#00HJB RXTX_SIGN,KEY2_RXKEY2_TX:LJMP TX_STARTKEY2_RX:LJMP RX_STARTKEY_3: MOV ADDR

6、H,#22HMOV ADDRL,#00HJB RXTX_SIGN,KEY3_RXKEY3_TX:LJMP TX_STARTKEY3_RX:LJMP RX_STARTKEY_4: MOV ADDRH,#24HMOV ADDRL,#00HJB RXTX_SIGN,KEY4_RXKEY4_TX:LJMP TX_STARTKEY4_RX:LJMP RX_STARTKEY_5: MOV ADDRH,#26HMOV ADDRL,#00HJB RXTX_SIGN,KEY5_RXKEY5_TX:LJMP TX_STARTKEY5_RX:LJMP RX_STARTKEY_6: MOV ADDRH,#28HMOV

7、 ADDRL,#00HJB RXTX_SIGN,KEY6_RXKEY6_TX:LJMP TX_STARTKEY6_RX:LJMP RX_STARTKEY_7: MOV ADDRH,#2AHMOV ADDRL,#00HJB RXTX_SIGN,KEY7_RXKEY7_TX:LJMP TX_STARTKEY7_RX:LJMP RX_STARTKEY_8: MOV ADDRH,#2CHMOV ADDRL,#00HJB RXTX_SIGN,KEY8_RXKEY8_TX:LJMP TX_STARTKEY8_RX:LJMP RX_STARTKEY_9: MOV ADDRH,#2EHMOV ADDRL,#0

8、0HJB RXTX_SIGN,KEY9_RXKEY9_TX:LJMP TX_STARTKEY9_RX:LJMP RX_STARTKEY_10: MOV ADDRH,#2EHMOV ADDRL,#00HJB RXTX_SIGN,KEY10_RXKEY10_TX:LJMP TX_STARTKEY10_RX:LJMP RX_STARTKEY_11: MOV ADDRH,#2EHMOV ADDRL,#00HJB RXTX_SIGN,KEY11_RXKEY11_TX:LJMP TX_STARTKEY11_RX:LJMP RX_STARTKEY_12: MOV ADDRH,#2EHMOV ADDRL,#0

9、0HJB RXTX_SIGN,KEY12_RXKEY12_TX:LJMP TX_STARTKEY12_RX:LJMP RX_STARTKEY_13: MOV ADDRH,#2EHMOV ADDRL,#00HJB RXTX_SIGN,KEY13_RXKEY13_TX:LJMP TX_STARTKEY13_RX:LJMP RX_STARTKEY_14: MOV ADDRH,#2EHMOV ADDRL,#00HJB RXTX_SIGN,KEY14_RXKEY14_TX:LJMP TX_STARTKEY14_RX:LJMP RX_STARTKEY_15: MOV ADDRH,#2EHMOV ADDRL

10、,#00HJB RXTX_SIGN,KEY15_RXKEY15_TX:LJMP TX_STARTKEY15_RX:LJMP RX_STARTKEY_16: MOV ADDRH,#2EHMOV ADDRL,#00HJB RXTX_SIGN,KEY16_RXKEY16_TX:LJMP TX_STARTKEY16_RX:LJMP RX_STARTSCAN_KEY:CLR KEY_SIGNMOV KEY_WORD,#00HKEY1: MOV P3,#11111110B ;第一行JB P3.4,KEY2JB KEY_SIGN,KEYWRONG1MOV KEY_WORD,#1SETB KEY_SIGNKE

11、Y2: JB P3.5,KEY3JB KEY_SIGN,KEYWRONG1MOV KEY_WORD,#2SETB KEY_SIGNKEY3: JB P3.6,KEY4JB KEY_SIGN,KEYWRONG1MOV KEY_WORD,#3SETB KEY_SIGNKEY4: JB P3.7,KEY5JB KEY_SIGN,KEYWRONG1MOV KEY_WORD,#4SETB KEY_SIGNLJMP KEY5KEYWRONG1: LJMP KEYWRONGKEY5: MOV P3,#11111101B ;第二行JB P3.4,KEY6JB KEY_SIGN,KEYWRONG2MOV KEY

12、_WORD,#5SETB KEY_SIGNKEY6: JB P3.5,KEY7JB KEY_SIGN,KEYWRONG2MOV KEY_WORD,#6SETB KEY_SIGNKEY7: JB P3.6,KEY8JB KEY_SIGN,KEYWRONG2MOV KEY_WORD,#7SETB KEY_SIGNKEY8: JB P3.7,KEY9JB KEY_SIGN,KEYWRONG2MOV KEY_WORD,#8SETB KEY_SIGNLJMP KEY9KEYWRONG2:LJMP KEYWRONGKEY9: MOV P3,#11111011B ;第三行JB P3.4,KEY10JB KE

13、Y_SIGN,KEYWRONG3MOV KEY_WORD,#9SETB KEY_SIGNKEY10: JB P3.5,KEY11JB KEY_SIGN,KEYWRONG3MOV KEY_WORD,#10SETB KEY_SIGNKEY11: JB P3.6,KEY12JB KEY_SIGN,KEYWRONG3MOV KEY_WORD,#11SETB KEY_SIGNKEY12: JB P3.7,KEY13JB KEY_SIGN,KEYWRONG3MOV KEY_WORD,#12SETB KEY_SIGNLJMP KEY13KEYWRONG3:LJMP KEYWRONGKEY13: MOV P3

14、,#11110111B ;第四行JB P3.4,KEY14JB KEY_SIGN,KEYWRONG4MOV KEY_WORD,#13SETB KEY_SIGNKEY14: JB P3.5,KEY15JB KEY_SIGN,KEYWRONG4MOV KEY_WORD,#14SETB KEY_SIGNKEY15: JB P3.6,KEY16JB KEY_SIGN,KEYWRONG4MOV KEY_WORD,#15SETB KEY_SIGNKEY16: JB P3.7,SCAN_ENDJB KEY_SIGN,KEYWRONG4MOV KEY_WORD,#16SETB KEY_SIGNLJMP SCA

15、N_ENDKEYWRONG4: LJMP KEYWRONGKEYWRONG:CLR KEY_SIGNSCAN_END:RETRE_DELAY: MOV R7,#5DE2: MOV R6,#10DE1: MOV R5,#200DJNZ R5,$DJNZ R6,DE1DJNZ R7,DE2RETRX_START: CLR P2.4 ;接收红外信号,存入外部扩展寄存器0256CLR P2.6CLR P2.7CLR P2.2CLR TXOUTMOV R1,#00HMOV R0,#00HMOV TMOD,#00010001BMOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV

16、TL1,#00HCLR ET0CLR ET1CLR EACLR TR0CLR TR1LJMP RX_MAINRX_MAIN: MOV R0,#00HJB RXIN,$SETB TR0JUDGE1: JB TF0,RXENDJNB RXIN,JUDGE1CLR TR0SETB TR1MOV A,TL0MOV X R0,AINC R0MOV A,TH0MOV X R0,AINC R0MOV TL0,#00HMOV TH0,#00HINC R1JUDGE2: JB TF1,RXENDJB RXIN,JUDGE2CLR TR1SETB TR0MOV A,TL1MOV X R0,AINC R0MOV A

17、,TH1MOV X R0,AINC R0MOV TL1,#00HMOV TH1,#00HINC R1AJMP JUDGE1RXEND: CLR TR0CLR TR1CLR TF0CLR TF1MOV TL0,#00HMOV TH0,#00HMOV TL1,#00HMOV TH1,#00HMOV GESHU,R1MOV R1,GESHU ;取反转换重新存入外部扩展寄存器MOV R0,#00HLOOP_CPL: MOV X A,R0CPL AMOV X R0,AINC R0MOV X A,R0CPL AMOV X R0,AINC R0DJNZ R1,LOOP_CPLLJMP ISP_STOREIS

18、P_STORE: LCALL ISP_ERASEMOV ISP_DATA,GESHU ;将个数输入到ISP_EEPROM的第一位MOV ISP_ADDRH,ADDRHMOV ISP_ADDRL,ADDRLCLR EAMOV ISP_CONTR,#WAIT_TIMEORL ISP_CONTR,#10000000BMOV ISP_CMD,#ISP_CMD_PROGRAMMOV ISP_TRIG,#46HMOV ISP_TRIG,#0B9HNOPMOV R1,GESHUMOV R0,#00HLOOP_WRITE: LCALL BYTE_WRITE ;将扩展寄存器中的计时值依次放入ISP_EEPROM

19、第二位开始的存储器中INC R0LCALL BYTE_WRITEINC R0DJNZ R1,LOOP_WRITEMOV ISP_CMD,#00H ;ISP指令清零,防止误触发MOV ISP_TRIG,#00HMOV ISP_ADDRH,#00HMOV ISP_ADDRL,#00HMOV p1,geshuLJMP KEY_MAINBYTE_WRITE: MOV X A,R0MOV ISP_DATA,AMOV ISP_ADDRH,ADDRHINC R0MOV ISP_ADDRL,R0DEC R0CLR EAMOV ISP_CONTR,#WAIT_TIMEORL ISP_CONTR,#1000000

20、0BMOV ISP_CMD,#ISP_CMD_PROGRAMMOV ISP_TRIG,#46HMOV ISP_TRIG,#0B9HNOPRETISP_ERASE: MOV ISP_ADDRH,ADDRHMOV ISP_ADDRL,ADDRLCLR EAMOV ISP_CONTR,#WAIT_TIMEORL ISP_CONTR,#10000000BMOV ISP_CMD,#ISP_CMD_ERASEMOV ISP_TRIG,#46HMOV ISP_TRIG,#0B9HNOPRETTX_START: MOV ISP_ADDRH,ADDRH ;取出第一位的个数MOV ISP_ADDRL,ADDRLC

21、LR EAMOV ISP_CONTR,#WAIT_TIMEORL ISP_CONTR,#10000000BMOV ISP_CMD,#ISP_CMD_READMOV ISP_TRIG,#46HMOV ISP_TRIG,#0B9HNOPMOV ISP_CMD,#00H ;ISP指令清零,防止误触发MOV ISP_TRIG,#00HMOV ISP_ADDRH,#00HMOV ISP_ADDRL,#00HMOV A,ISP_DATA ;为0FF则是错误的,回去,不为0FF则继续CJNE A,#0FFH,ISP_READLJMP KEY_MAINISP_READ: MOV GESHU,ISP_DATAM

22、OV R1,GESHUMOV R0,#00HLOOP_READ: LCALL BYTE_READINC R0LCALL BYTE_READINC R0DJNZ R1,LOOP_READLJMP TX_EXROMBYTE_READ: INC R0MOV ISP_ADDRH,ADDRHMOV ISP_ADDRL,R0DEC R0CLR EAMOV ISP_CONTR,#WAIT_TIMEORL ISP_CONTR,#10000000BMOV ISP_CMD,#ISP_CMD_READMOV ISP_TRIG,#46HMOV ISP_TRIG,#0B9HNOPMOV A,ISP_DATAMOV X

23、R0,ARETTX_EXROM: MOV TMOD,#00010010BMOV TH0,#0F4HMOV TL0,#0F4HMOV R1,GESHUMOV R0,#00HMOV X A,R0MOV TL1,AINC R0MOV X A,R0MOV TH1,AINC R0DEC R1MOV X A,R0MOV ZHIL,AINC R0MOV X A,R0MOV ZHIH,AINC R0DEC R1SETB ET1SETB ET0SETB EASETB TR1SETB TR0CLR TXOUTMAIN2:CJNE R1,#00H,MAIN2CLR TXOUTMOV p1,#55hLJMP KEY_

24、MAINT0IN:CPL TXZAIRETIT1IN: MOV TL1,ZHILMOV TH1,ZHIHJB TR0,NEXTT1SETB TR0LJMP NEXTTNEXTT1:CLR TR0CLR TXZAINEXTT:CPL TXOUTMOV X A,R0MOV ZHIL,AINC R0MOV X A,R0MOV ZHIH,AINC R0DJNZ R1,OUTTICLR TR1CLR TR0CLR TXZAICLR TXOUTOUTTI:RETIDELAYXMS: MOV R7,#255DEL1: MOV R6,#4DEL2: MOV R5,#5DJNZ R5,$DJNZ R6,DEL2DJNZ R7,DEL1RETDELAYX2MS: MOV R7,#255DEL12: MOV R6,#50DEL22: MOV R5,#50DJNZ R5,$DJNZ R6,DEL22DJNZ R7,DEL12RETEND

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!