已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.(1786)一种简单串行鼠标控制的单片机实现完整的程序清单如下:. 完整的程序清单如下: ORG 0000H AJMP MAIN ORG 0023H AJMP RTSD ORG 0030HMAIN: MOV SP,#60H MOV R1,#00H ;X方向指针 MOV R2,#00H ;X方向移动记数 MOV R3,#00H ;Y方向指针 MOV R4,#00H ;Y方向移动记数 MOV R7,#00H ;循环延时指针 MOV TMOD,#20H ;置T1工作方式2 MOV TL1,#0E8H ;置1200波特率相应的时间常数 MOV TH1,#0E8H MOV SCON,#40H MOV PCON,#00H SETB EA ;CPU开中断 SETB ES SETB TR1 MOV A,#0CDH MOV SBUF,A MOV R0,#32H ;数据发送指针(R0) SETB 18H ;18H为左右键上次发送时的状态 SETB 19H ;19H为左右键上次发送时的状态 CLR 11H ;鼠标动标志初始化 SETB 10H;读鼠标左右上下移动初始状态MOVT: JB P1.2,MT1 ;读取左右移动初始化状态 JB P1.3,MT2 ;并设定标志位 MOV 20H,#01H AJMP JUDGMT1: JB P1.3,MT3 MOV 20H,#02H AJMP JUDGMT3: MOV 20H,#04H AJMP JUDGMT2: MOV 20H,#08HJUDG: JB P1.4,CON1 ;读取上下移动初始化状态 JB P1.5,CON2 ;并设定标志位 MOV 21H,#01H AJMP LOOPCON1: JB P1.5,CON3 MOV 21H,#02H AJMP LOOPCON3: MOV 21H,#04H AJMP LOOPCON2: MOV 21H,#08H;初始化结束后进入正常扫描状态;左右移动扫描LOOP: JB 00H,AOP JB 01H,BOP JB 02H,COP JB 03H,DOOPAOP: JB P1.2,AOP1 JB P1.3,AOP2 MOV 20H,#01H AJMP KOOPAOP1: JB P1.3,ERRA MOV 20H,#02H INC R1 CJNE R1,#04H,AP1 MOV R1,#00H INC R2AP1: AJMP KOOPAOP2: MOV 20H,#08H ;否则为负(0) DEC R1 CJNE R1,#0FCH,AP2 MOV R1,#00H DEC R2AP2: AJMP KOOPERRA: MOV R1,#00H MOV 20H,#04H ;扫描错误处理 AJMP KOOPBOP: JNB P1.2,BOP1 JB P1.3,BOP2 MOV 20H,#02H AJMP KOOPBOP1: JB P1.3,ERRB MOV 20H,#01H DEC R1 CJNE R1,#0FCH,BP1 MOV R1,#00H DEC R2BP1: AJMP KOOPBOP2: MOV 20H,#04H INC R1 CJNE R1,#04H,BP2 MOV R1,#00H INC R2BP2: AJMP KOOPERRB: MOV R1,#00H MOV 20H,#08H AJMP KOOPDOOP: AJMP DOPCOP: JNB P1.2,COP1 JNB P1.3,COP2 MOV 20H,#04H AJMP KOOPCOP1: JNB P1.3,ERRC MOV 20H,#08H INC R1 CJNE R1,#04H,CP1 MOV R1,#00H INC R2CP1: AJMP KOOPCOP2: MOV 20H,#02H DEC R1 CJNE R1,#0FCH,CP2 MOV R1,#00H DEC R2CP2: AJMP KOOPERRC: MOV R1,#00H MOV 20H,#01H AJMP KOOPDOP: JB P1.2,DOP1 JNB P1.3,DOP2 MOV 20H,#08H AJMP KOOPDOP1: JNB P1.3,ERRD MOV 20H,#04H DEC R1 CJNE R1,#0FCH,DP1 MOV R1,#00H DEC R2DP1: AJMP KOOPDOP2: MOV 20H,#01H INC R1 CJNE R1,#04H,DP2 MOV R1,#00H INC R2DP2: AJMP KOOPERRD: MOV R1,#00H MOV 20H,#02H;上下移动扫描KOOP: JB 08H,AAOP JB 09H,BBOP JB 0AH,CCOP JB 0BH,DDOPAAOP: JB P1.4,AAOP1 JB P1.5,AAOP2 MOV 21H,#01H AJMP KENDAAOP1: JB P1.5,EERA MOV 21H,#02H INC R3 CJNE R3,#04H,AAP1 MOV R3,#00H INC R4AAP1: AJMP KENDAAOP2: MOV 21H,#08H DEC R3 CJNE R3,#0FCH,AAP2 MOV R3,#00H DEC R4AAP2: AJMP KENDEERA: MOV R3,#00H MOV 21H,#04H ;扫描错误处理 AJMP KENDBBOP: JNB P1.4,BBOP1 JB P1.5,BBOP2 MOV 21H,#02H AJMP KENDBBOP1: JB P1.5,EERB MOV 21H,#01H DEC R3 CJNE R3,#0FCH,BBP1 MOV R3,#00H DEC R4BBP1: AJMP KENDBBOP2: MOV 21H,#04H INC R3 CJNE R3,#04H,BBP2 MOV R3,#00H INC R4BBP2: AJMP KOOPEERB: MOV R3,#00H MOV 21H,#08H AJMP KENDDDOP: AJMP DDPPCCOP: JNB P1.4,CCOP1 JNB P1.5,CCOP2 MOV 21H,#04H AJMP KENDCCOP1: JNB P1.5,EERC MOV 21H,#08H INC R3 CJNE R3,#04H,CCP1 MOV R3,#00H DEC R4CCP1: AJMP KENDCCOP2: MOV 21H,#02H DEC R3 CJNE R3,#0FCH,CCP2 MOV R3,#00H DEC R4CCP2: AJMP KENDEERC: MOV R3,#00H MOV 21H,#01H AJMP KENDDDPP: JB P1.4,DDOP1 JNB P1.5,DDOP2 MOV 21H,#08H AJMP KENDDDOP1: JNB P1.5,EERD MOV 21H,#04H DEC R3 CJNE R3,#0FCH,DDP1 MOV R3,#00H DEC R4DDP1: AJMP KENDDDOP2: MOV 21H,#01H INC R3 CJNE R3,#04H,DDP2 MOV R3,#00H INC R4DDP2: AJMP KENDEERD: MOV R3,#00H MOV 21H,#02H;正常扫描一次结束KEND: JNB 10H,NXD ACALL JNCE ;调判断有无键按下及鼠标移动子程序 JNB 11H,NSEND INC R7 CJNE R7,#64H,NSEND MOV R7,#00H ACALL PANDNXD: JNB 1FH,NSEND ;三字节数据发送完标志 SETB 10H ACALL SHSD ;调数据处理与发送程序NSEND: AJMP LOOP;串口中断程序RTSD: CLR TI INC R0 CJNE R0,#33H,GOON SETB 1FH AJMP QUITGOON: MOV A,R0 MOV SBUF,A CLR 1FHQUIT: RETI;判断有无键按下,释放及移动子程序JNCE: JNB 18H,FYT JNB P1.6,SEND AJMP XIA1FYT: JB P1.6,SEND AJMP XIA1XIA1: JNB 17H,FF1 JNB P1.7,SEND AJMP XIA2FF1: JB P1.7,SEND AJMP XIA2XIA2: CJNE R2,#00H,SEND CJNE R4,#00H,SEND AJMP NENDSEND: SETB 11HNEND: RET;数据处理与发送子程序SHSD: MOV A,R2 ANL A,#3FH ORL A,#80H ;字节的最高位置1,(第一个停止位) MOV 31H,A MOV A,R4 ANL A,#3FH ORL A,#80H ;字节的最高位置1,(第一个停止位) MOV 32H,A MOV A,#0C0H JNB P1.6,CHAN1 CLR ACC.5 SETB 18H AJMP CHAN2CHAN1: CLR 18H SETB ACC.5CHAN2: JNB P1.7,CHAN3 CLR ACC.4 SETB 19H AJMP CHAN4CHAN3: CLR 19H SETB ACC.4CHAN4: MOV R5,A MOV A,R2 RL A RL A ANL A,#03H MOV R2,A MOV A,R4 SWAP A ANL A,#0CH ORL A,R2 ORL A,R5 MOV SBUF,A MOV R0,#30H MOV R2,#00H MOV R4,#00H RET;延时后确认有无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精装房屋装修合同范本
- 装修公司结算合同范本
- 网络渠道代理合同范本
- 老板开除劳工合同范本
- 肉牛养殖合同合作协议
- 西安车位租赁合同范本
- 药物器械采购合同范本
- 药材买卖订购合同范本
- 签了自由职业协议合同
- 葡萄买卖合同协议模板
- 人体解剖学基础消化系统课件
- 2022-2023学年河南省南阳市高三上学期秋季期中考试物理试题及答案
- 静脉输血并发症预防处理
- 2022年06月上海外国语大学行政管理人员公开招聘笔试题库含答案解析
- 成人高等教育本科生学士学位英语水平考试大纲(非英语专业第二版)
- 直辖市城投集团固定资产管理制度
- 医疗机构消毒技术规范(2023年版)
- GH/T 1117-2015桂花茶
- 精品课程《人文地理学》完整版
- 公司废弃物清单
- 《幼儿园中班个别化学习活动中科学区域活动材料的投放与思考》讲座课件
评论
0/150
提交评论