单片机相关的应用系统设计实例.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
公选课 ——《单片机基础及应用》 设计实例 1、用1个LED发光二极管,设计一个循环闪烁的指示灯。 2、用8个LED发光二极管,设计一个循环闪烁的流水灯。 3、通过设置中断,改变灯的循环方向,控制灯的亮灭。 4、通过定时,精确控制P1.0闪烁500ms。 5、以秒为单位,用LED数码管显示当前计数值。 1、用1个LED发光二极管,设计一个循环闪烁的指示灯。 1.1硬件设计 1.2软件设计 1)初始化 51头文件、宏定义 2)主程序,即main()程序 灯的亮灭控制 3)延时功能 延时子程序设计 #include at89X52.h #define uint unsigned int #define uchar unsigned char 2、用8个LED发光二极管,设计一个循环闪烁的流水灯。 2.1硬件设计 2.2软件设计 1)初始化 51头文件、宏定义 2)主程序,即main()程序 灯的循环闪亮控制 3)延时功能 延时子程序设计 如何进行灯的循环闪亮控制? intrins.h 内部函数库 (包含变量循环移位、位操作等函数) 需要将该函数包含进来,同时对函数原型进行声明。 #include INTRINS.H uchar _crol_(uchar a,uchar n); /*函数原型,左循环*/ uchar _cror_(uchar a,uchar n); /*函数原型,右循环*/ 3、通过设置中断,改变灯的循环方向,控制灯的亮灭。 3.1硬件设计 1)中断的概念 中断技术是计算机中一项很重要的技术。 中断系统的功能是为了解决快速CPU和慢速外设间的矛盾,它由软件和硬件组成。 有了中断系统,能使计算机的功能更强、效率更高、使用更灵活。 51单片机系统有5个中断源。 2)日常中断的例子 3)计算机中的中断概念 4)相关的特殊功能寄存器 3.2软件设计 1)初始化 51头文件、宏定义 2)主程序,即main()程序 灯的循环闪亮控制 中断初始化 3)延时功能 4)中断服务程序设计 3.2软件设计 中断初始化 触发方式设置 中断允许控制 中断服务程序设计 中断初始化 IT0=1; EA=1; EX0=1; 中断服务程序 函数名()interrupt n [using m ] { } Void int0(void) interrupt 0 /* 外部中断0的服务函数定义,使用第二组工作寄存器组*/ void int0(void) interrupt 0 { uchar a=0xfe,i=16; P1=0x0; delay(5000); P1=0x0ff; delay(5000); P1=0x0; delay(5000); P1=0x0ff; delay(5000); do { P1=a; delay(5000); a=_cror_(a,1); }while(i--); } 4、通过定时,精确控制闪烁500ms。 针对任务一进行操作。 使用定时器T0 1)设置定时器工作方式 2)计算初始值 3)编写初始化程序 4)编写中断服务程序 1)设置定时器工作方式 2)计算初始值 晶振12Mhz 1个机器周期: 3)编写初始化程序 TMOD=0X01; TH0=0X3C; TL0=0XB0; EA=1; ET0=1; TR0=1; 4)编写中断服务程序 Void timer0(void) interrupt 1 { TH0=0x3c; TL0=0xb0; i++; if(i==9) { i=0; P1_0=~P1_0; } } 5、以秒为单位,用LED数码管显示当前计数值。 LED数码管显示电路原理 要显示某个字形,就应使此字形的相应断码的二极管点亮,实际就是送一个用不同电平组合代表的数据字(显示码)来控制LED的显示,此数据称为字符的段码或字形码。 共阴极和共阳极LED显示器段码不同。 管脚识别小技巧: 用万用表测一下就可以了。数码管分为共阴极和共阳极。以共阴极为例: 先用万用表的正极(对于数字万用表为红色表笔)放在某一个管脚,另外一个负极依次去测量其他管脚。若没有一个管脚亮,说明正极接的是公共端(COM)。若亮,根据发光位置就可以判断引脚了,正极接的是相应的段码端(a,b,c,……,dp),负极为对应数码管的公共端(C1,C2)。 5.1硬件设计 如果每个LED上要显示的数字不同,那么它在同一时刻是不能同时显示的。 用这种数码管都是动态显示的。(可以到网上去看下动态显示) 比如4个LED上要显示1234(假设是共阴极连接) 4个LED上显示1234(假设共阴极连接) 过程如下: 首先选种第一

文档评论(0)

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

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

1亿VIP精品文档

相关文档