第6章 单片机内部资源的编程-精品·公开课件.ppt

第6章 单片机内部资源的编程-精品·公开课件.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 单片机内部资源的编程 教学要求 理解中断的概念及中断系统功能; 掌握外部中断的应用、外部中断的扩展以及编写外部中断服务程序的方法; 熟悉定时器/计数器的结构与工作方式; 掌握定时器/计数器的应用及编写定时器/计数器中断服务程序的方法; 掌握相关的特殊功能寄存器在外部中断、定时器/计数器中断中的应用。 1.单片机应用系统使用中断技术的优点 (1) 能实现单片机与多个外围设备并行工作,提高了单片机的利用率及数据的输入/输出效率。 (2) 能对单片机运行过程中某个事件的出现或突然发生的故障做到及时发现并进行自动处理,即实现实时处理。 (3) 能使我们通过键盘发出请求,随时对运行中的计算机进行干预,即可以实现人机联系。 (4) 能实现多道程序的切换运行。 (5) 能在多机系统中实现各处理机之间的信息交换和任务切换。 参考程序: #include reg51.h Sbit LED=P0^0; void main() { LED=1; EA=1; EX0=1;//IE=0X81; TCON=0X01; //IT0=1; While(1); } 课堂练习 参考《单片机C语言程序设计实训100例》59页例3.24,编程实现以下功能:每按一下计数键,数码管显示数字加1, 当按下清零键时,数码管显示清零。 #include reg51.h #define uchar unsigned char #define uint unsigned int uchar code dsy_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//最后一位为黑屏 uchar display_buffer[3]={0,0,0}; uint count=0; sbit clear_key=P3^6; void show() { display_buffer[2]=count/100; display_buffer[1]=count%100/10; display_buffer[0]=count%10; if(display_buffer[2]==0) { display_buffer[2]=0x0a; if(display_buffer[1]==0) display_buffer[1]=0x0a; }//注意if语句的嵌套 P0=dsy_code[display_buffer[0]]; P1=dsy_code[display_buffer[1]]; P2=dsy_code[display_buffer[2]]; } void main() {P0=0xff; P1=0xff; P2=0xff; //补充。。。。。。 while(1) {if(clear_key==0) count=0; show(); }} //INT0中断函数 void external_interrupt_0() interrupt 0 {//补充。。。。。。} 课外作业1 基于下图,编程实现下列功能:用K1键控制D0~D5发光,用K2键控制D0~D5熄灭。按一次K1键,D0~D5发光;按一次K2键,D0~D5熄灭;再按一次K1键,D0~D5又发光,如此重复。 课外作业2 P1口做输出口,正常时控制八只灯(P1口输出低电平时灯被点亮)每隔0.5秒全亮全灭一次;按下开关1后八只灯从右向左依次点亮,按下开关2后八只灯从左到右依次点亮。要求两只灯先后按下时能体现出优先级别。 串行口编程相关知识 方式2与方式0、1的区别: 工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。 工作方式2就具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。 方式2在串口通讯时,常用作波特率发生器。 4)工作方式3 如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就因为自己的一些控制位已被定时/计数器0借用,只能工作在方式0、方式1或方式2下,等效电路参见下图: 2.怎样编制计数程序? 例题1: 计数到预定值即报警 例题2: 将T0口计数值显示出来 小结:

文档评论(0)

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

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

1亿VIP精品文档

相关文档