网站大量收购独家精品文档,联系QQ:2885784924

单片机汇编语言 周期性信号频率和占空比.doc

单片机汇编语言 周期性信号频率和占空比.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机汇编语言 周期性信号频率和占空比

周期性信号的频率和占空比测试 接法:INT0接周期性信号 测量信号的周期 INT0的初始化应该为: void int0_init() { EA=0; //关掉所有中断允许 IT0=1; //选用下降沿触发INT0中断 EA=1; //开所有中断 EX0=1; //开INT0中断 } INT0的中断服务程序应该为: Unsigned intCycleTime = 0; //周期的计数值 void int0_svr() interrupt 0 { if(!flag1) //第一次下降沿出现时启动Timer1计数; { timer1_init(); flag1=1; } Else //第二次下降沿出现时停止Timer1计数,计算周期,并关掉INT0中断 { EX0=0; CycleTime =TH1*256+TL1; // 获得一个周期的计数值,乘上机器周期就可以了 } } //Timer1计算信号的周期,由于只计算一次,所以选用MODE1. void timer1_init() { EA=0; //GATE=0;C/T=0;M1=0;M2=1; TMOD=TMPD|0x10; //从0开始计数 TH1=0; TL1=0; EA=1; ET1=1; } 考虑一个问题:如果信号的周期特别长,超过了65536个机器周期,那该怎么处理? 解决方案:当Time1超过65536,会触发Timer1中断,在中断里面计数,假设为Y_Y 那么最终的计数应该是: ( Y_Y*65536+ CycleTime) Unsigned intY_Y_=0; void timer1_svr() interrupt 3 { timer1_init(); Y_Y++; } 测量周期信号的高电平时间 利用Timer0对高电平进行计数,由于只计算一次,所以选用MODE1. Void timer0_init() { EA =0 ; //GATE=1;C/T =0;;M1=0;M2=1; TMOD = TMOD|0x09; TH0=0; TL0=0; EA=1; ET0=1; } 在INT0的中断里面直接关掉Timer0,并将计数结果(TH0、TL0)提取出来计算 考虑一个问题:如果信号的周期特别长,超过了65536个机器周期,处理方法与上面一样 34、并行接口扩展 可以采用74LS595,是串入并出的,可接任意个595,只占用3个脚,即ser(数据),sclk(移位时钟),srclk(输出)。所有的74LS595的sclk连在一起,srclk连在一起,第一个595的ser接单片机一个IO引脚,每一个595的QH‘接下一个595的ser。 sclk置低,置ser,再将sclk置高,就移了一位二进制数据进595了,重复这么移,直到所有的数据移入,再将srclk先置低再置高,就将原先移入的数据写到595输出寄存器,在各个595的输出引脚上反映出来。也就是将单片机三个引脚扩展成了很多个并行口。 3*3键盘矩阵 MOV? AL,82H OUT? 43H,AL BEGIN:MOV? AL,0 ?????????????? OUT? 40H,AL WAIT :??? IN??? AL,41H ?????????????? AND? AL,0FH ? CMP? AL,0FH ? JZ??? WAIT ?????????????? MOV? CX,7FFH ?????? L0: LOOP? L0 ????? ST: MOV?? BL,3 ?????????????? MOV? BH,4 ?????????????? MOV? AL,0FEH ?????????????? MOV? CL,0FH ?????????????? MOV? CH,0FFH L1: OUT? 40H,AL ???????? ROL?? AL? ????????? MOV? AH,AL ????????? IN???? AL,41H ????????? AND?? AL,CL ????????? CMP?? AL,CL?????????????? ????????? JNZ??? L2 ????????? ADD? CH,BH ????????? MOV? AL,AH ????????? DEC?? BL ????????? JNZ?? L1 ????????? JMP?? BEGIN L2:? INC?? CH ?????????? RCR?? AL ?????????? JC???? L2 ?????????? MOV? AL,CH ????????? JMP?? KEYTABLE 42 并口扩展

文档评论(0)

htfyzc + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档