单片机原理与应用 第2版 教学课件 作者 王迎旭 第7章 单片机C语言程序设计与应用.ppt

单片机原理与应用 第2版 教学课件 作者 王迎旭 第7章 单片机C语言程序设计与应用.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.4.1 并行输入输出口 例7-5: 8只发光二极管在圆周上均匀分布,控制原理图如图7-1所示,编写控制程序实现单一发光点的顺转和逆转,点亮间隔为50ms,重复循环。 第7章 单片机C语言程序设计与应用 7.4 C51语言程序设计应用举例 图7-1 接线图 C51程序如下: #include reg51.h #include intrins.h #define uint unsigned int void delay(uint time) { while(--time); } void main() { unsigned int i; unsigned char a=0xfe ; * while(1) { for(i=0;i8;i++) { P1=a; a=_crol_(a,1); /*循环左移*/ delay(50000); /*延时*/ } a=0x7f; for(i=0;i8;i++) { P1=a; a=_cror_(a,1); /*循环右移*/ delay(50000); } } } 第7章 单片机C语言程序设计与应用 7.4 C51语言程序设计应用举例 * 7.4.1 并行输入输出口 例7-6 : 如图7-2所示,用MCS-51单片机的P1口驱动一个LED显示 器,在显示器上依次显示字符0-F.常用的LED显示器由8个发光二 极管组成,也称8段LED显示器, LED数码显示器共有两种连接 方法:共阳极和共阴极。为了显示数字或符号,需要为LED显示 器提供显示字形代码。 图7-2 单片机驱动共阴极LED显示器电路 第7章 单片机C语言程序设计与应用 7.4 C51语言程序设计应用举例 * C51语言实现程序: #includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int uchar code tab[16]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};/ void delay(uint i); void main() { uchar i; 第7章 单片机C语言程序设计与应用 7.4 C51语言程序设计应用举例 while(1) { for(i=0;i16;i++) { P1=tab[i]; delay(500); } } } void delay(uint time) { uint s; uchar t = 200; for(s=0;stime;s++) { while(--t); } } * 7.4.2 中断服务程序设计 C51支持在C语言源程序中直接编写8051单片机的中断服务程 序(ISR),从而可以减轻采用汇编语言编写中断服务程序的繁琐 程度。为了在C语言源程序中直接编写中断服务程序的需要, C51编译器对函数的定义进行了扩展,增加了一个扩展关键字 interrupt,它是函数定义时的一个选项,加上这个选项即可将一 个函数定义成中断服务函数。定义中断服务函数的一般形式 为: void 中断函数名( ) interrupt n [using m] 关键字interrupt后面的n是中断号, [ ]表示括号内的内容是可选 项。中断号、中断源和中断向量关系见表7-10。 第7章 单片机C语言程序设计与应用 7.4 C51语言程序设计应用举例 * 7.4.2 中断服务程序设计 使用中断函数时应遵循以下规则: 1.中断函数不能进行参数传递。 2.在任何情况下都不能直接调用中断函数 3在中断函数中如果调用了其它函数,则被调函数所使用的寄存 器必须与中断函数相同。 4.另外,在使用C51编写中断服务程序时,无需象汇编语言那 样,对A、B、DPH、DPL、PSW等寄存器进行保护。 第7章 单片机C语言程序设计与应用 7.4 C51语言程序设计应用举例 * 7.4.2 中断服务程序设计 例7-7: 利用定时器/计数器T0的方式2对外部信号计数。要求每计 满100个数,将P1.0引脚信

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档