单片机原理及应用第13章 51单片机的C51程序设计.pptVIP

单片机原理及应用第13章 51单片机的C51程序设计.ppt

  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文档。上传文档
查看更多
例13–6 设51单片机系统振荡频率为12MHz,在P1.0脚上输出周期为2.5s,占空比为20%的脉冲信号。 分析:使定时器T0工作在定时方式,产生10ms定时,则2.5s的定时需要中断250次,占空比为20%,高电平的时间应维持50次中断。 #include reg51.h #define uchar unsigned char sbit P10 = P1^0; uchar time; uchar period = 250; /*定时器的中断次数*/ uchar high = 50; /*高电平维持的定时器中断次数*/ * void timer0_ISR( void ) interrupt 1 using 1 { TH0 = ( 65536 - 1000 )/256; TL0 = ( 65536 - 1000 )%256; if ( ++time = = high ) P10 = 0; /*高电平时间到,P1.0变低*/ else if ( time = = period ) /*周期时间到,P1.0变高*/ { time = 0; /*中断计数清零*/ P10 = 1; } } void main( void ) { P10 = 1; TMOD = 0x01; TH0 = ( 65536 - 1000 )/256; TL0 = ( 65536 - 1000 )%256; ET0 = 1; TR0 = 1; EA = 1; while (1); } * (2)51单片机的外部中断应用编程 例13–7 电路如图6–10所示,外部报警信号由“1”→“0”时,控制警示发光二极管亮,单片机复位后警示发光二极管灭。 该例题与第6章例6–1相同,请参阅该例题的分析说明和图6–10的电路图。 sbit P10 = P1^0; void leds(void) interrupt 0 { /*外部中断0 中断服务程序*/ EA = 0; P10 = 0; EA = 1; } void main(void) { P10 = 1; IT0 = 1; /*设置外部中断0为边沿触发方式*/ EX0 = 1; /*允许外部中断0中断*/ EA = 1; /*允许全局中断*/ while(1); /*主循环,等待中断*/ } * 例13–8 外部中断源的扩展实现多路输入监控的电路如图6–13所示,通过外部中断0实现对CH1、CH2、CH3三条输入通道的监控。三条通道分别由三台设备提供信号。若设备工作正常,相应通道为高电平;若其中一台设备工作出错,相应的CHx通道被拉为低电平。当任何一台设备无法正常工作时,需点亮相应的发光二极管提示监控人员。(1#设备对应CH1通道,故障报警灯为D1;2#设备对应CH2通道,故障报警灯为D2;3#设备对应CH3通道,故障报警灯为D3)。 该例题与第6章例6–2相同,请参阅该例题的分析说明和第6章图6–12的电路图。 * void leds(void) interrupt 0 { unsigned char temp = 0; temp = P1; /*读P1口*/ temp = temp 0x07; /*保留P1口数据低三位*/ temp = (temp 5)|0x1f; /*将P1口数据低三位左移至高三位, */ /*并将低五位置1*/ P1 = temp; /*将P1口数据的第三位送到P1,从而控制连接在P1*/ /*高三位的LED,实现三个故障报警灯指示

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档