单片机实验开发板试程序详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验开发板试程序详解

单片机实验开发板测试程序详解 ? ????测试程序对于初学者来说可能比较复杂,但是也是由网站上几个小程序组合而成的,初学者可以通过后面教程的学习来掌握这段程序。 ????这个测试程序的功能是:接通电源后P0口的八个发光二极管依次从下往上点亮,然后蜂鸣器鸣叫一声,两个继电器轮流动作一次,数码管的个位显示8,再换成十位显示8,然后不断循环,如果这时按下红外遥控器的按键时,蜂鸣器立即发出“滴滴滴”的提示音,同时将这个按键的键值通过串口在电脑屏幕上显示出来(需要运行串口调试软件)通过这个程序可以判断单片机实验开发板的各个部分的硬件和软件都是完好的,具体的源程序如下: ORG 0000H AJMP MAIN;转入主程序 ORG 0003H;外部中断P3.2脚INT0入口地址 AJMP INT;转入外部中断服务子程序(红外遥控解码程序) ;以下为主程序进行CPU中断方式设置 MAIN:LCALL YS3;等待硬件上电稳定 SETB EA;打开CPU总中断请求 SETB IT0;设定INT0的触发方式为脉冲负边沿触发 SETB EX0;打开INT0中断请求 MOV SCON,#50H;设置成串口1方式 MOV TMOD,#20H;波特率发生器T1工作在模式2上 MOV PCON,#80H;波特率翻倍为2400x2=4800BPS MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值) MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值) SETB TR1;启动定时器T1 ;以上完成串口通讯初始化设置 START:MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1,;P1口的LED循环由下往上点亮一次,延时约250毫秒 LCALL DELAY MOV P2,;蜂鸣器鸣响一声 LCALL DELAY MOV P2,;继电器J1吸合一次 LCALL DELAY MOV P2,;继电器J2吸合一次 LCALL DELAY MOV P0,#0FFH MOV P2,;数码管个位显示8 LCALL DELAY MOV P0,#0FFH MOV P2,;数码管十位显示8 LCALL DELAY AJMP START;反复循环 ;以下为进入P3.2脚外部中断子程序,也就是解码程序 INT: CLR EA;暂时关闭CPU的所有中断请求 MOV R6,#10 SB: ACALL YS1;调用882微秒延时子程序 JB P3.2,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序 DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序 ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。 JNB P3.2, $;等待高电平避开9毫秒低电平引导脉冲 ACALL YS2;延时4.74毫秒避开4.5毫秒的结果码 MOV R7,#26;忽略前26位系统识别码 JJJJA:JNB P3.2,$;等待地址码第一位的高电平信号 LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.2;将P3.2引脚此时的电平状态0或1存入C中 JNC UUUA;如果为0就跳转到UUUA LCALL YS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束 UUUA: DJNZ R7,JJJJA MOV R1,#1AH ;设定1AH为起始RAM区 MOV R2,#2;接收从1AH到1BH的2个内存,用于存放操作码和操作反码 PP: MOV R3,#8;每组数据为8位 JJJJ: JNB P3.2,$;等待地址码第一位的高电平信号 LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.2;将P3.2引脚此时的电平状态0或1存入C中 JNC UUU;如果为0就跳转到UUU LCALL YS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束 UUU: MOV A,@R1;将R1中地址的给A RRC A;将C中的值0或1移入A中的最低位 MOV @R1,A;将A中的

文档评论(0)

bguarfan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档