单片机应用系统设计实例_第1页
单片机应用系统设计实例_第2页
单片机应用系统设计实例_第3页
单片机应用系统设计实例_第4页
单片机应用系统设计实例_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、公选课公选课 单片机基础及应用单片机基础及应用 用用1个个LED发光二极管,设计一个循环闪烁的指示发光二极管,设计一个循环闪烁的指示 灯。灯。 n2、用、用8个个LED发光二极管,设计一个循环闪烁的流水发光二极管,设计一个循环闪烁的流水 灯。灯。 n3、通过设置中断,改变灯的循环方向,控制灯的亮灭。、通过设置中断,改变灯的循环方向,控制灯的亮灭。 n4、通过定时,精确控制、通过定时,精确控制P1.0闪烁闪烁500ms。 n5、以秒为单位,用、以秒为单位,用LED数码管显示当前计数值。数码管显示当前计数值。 用用1个个LED发光二极管,设计一发光二极管,设计一 个循环闪烁的指示灯。个循环闪烁的指

2、示灯。 1.1硬件设计硬件设计 1.2软件设计软件设计 n1 1)初始化)初始化 n5151头文件、宏定义头文件、宏定义 n2 2)主程序,即)主程序,即mainmain()程序()程序 n灯的亮灭控制灯的亮灭控制 n3 3)延时功能)延时功能 n延时子程序设计延时子程序设计 n #include n #define uint unsigned int n #define uchar unsigned char nvoid main(void) n nwhile(1) n n P1_0=0; n delay(5000); n P1_0=1; n delay(5000); n n nvoid d

3、elay(uint t) /延时延时0.1*t毫秒毫秒 n n uint i; n do n n for(i=0;i10;i+) n ; n while(t-); n void delay(uint t); /声明函数声明函数 n2、用、用8个个LED发光二极管,设计一发光二极管,设计一 个循环闪烁的流水灯。个循环闪烁的流水灯。 2.1硬件设计硬件设计 2.2软件设计软件设计 n1 1)初始化)初始化 n5151头文件、宏定义头文件、宏定义 n2 2)主程序,即)主程序,即mainmain()程序()程序 n灯的循环闪亮控制灯的循环闪亮控制 n3 3)延时功能)延时功能 n延时子程序设计延时子

4、程序设计 n如何进行灯的循环闪亮控制?如何进行灯的循环闪亮控制? n需要将该函数包含进来,同时对函数需要将该函数包含进来,同时对函数 原型进行声明。原型进行声明。 n#include n uchar _crol_(uchar a,uchar n); n /*函数原型,左循环*/ nuchar _cror_(uchar a,uchar n); n/*函数原型,右循环*/ #include uchar _crol_(uchar a,uchar n); /*函数原型函数原型*/ uchar _cror_(uchar a,uchar n); /*函数原型,右循环函数原型,右循环*/ void main

5、(void) uint a = 0 xfe; while(1) P1=a; delay(5000); a=_crol_(a,1); n3、通过设置中断,改变灯的循环方、通过设置中断,改变灯的循环方 向,控制灯的亮灭。向,控制灯的亮灭。 3.1硬件设计硬件设计 1)中断的概念)中断的概念 n中断技术是计算机中一项很重要的中断技术是计算机中一项很重要的 技术。技术。 n中断系统的功能是为了解决快速中断系统的功能是为了解决快速CPUCPU 和慢速外设间的矛盾,它由软件和和慢速外设间的矛盾,它由软件和 硬件组成。硬件组成。 n有了中断系统,能使计算机的功能有了中断系统,能使计算机的功能 更强、效率更高

6、、使用更灵活。更强、效率更高、使用更灵活。 n5151单片机系统有单片机系统有5 5个中断源。个中断源。 2)日常中断的例子)日常中断的例子 你正在专心看你正在专心看 书,突然电话铃响,书,突然电话铃响, 于是你记下正在看的于是你记下正在看的 书的页数,去接电话,书的页数,去接电话, 接完电话后再回来接接完电话后再回来接 着看书。着看书。 3)计算机中的中断概念)计算机中的中断概念 中断中断是指由于某种随机事件(甲方)是指由于某种随机事件(甲方) 的发生,计算机(乙方)暂停现行程的发生,计算机(乙方)暂停现行程 序的运行,转去执行另一程序,以处序的运行,转去执行另一程序,以处 理发生的事件,处

7、理完毕后又自动返理发生的事件,处理完毕后又自动返 回原来的程序继续运行。回原来的程序继续运行。 将能引起中断的事件称为将能引起中断的事件称为中断源中断源。 CPUCPU现行运行的程序称为现行运行的程序称为主主程序程序。 处理随机事件的程序称为处理随机事件的程序称为中断服务中断服务 子程序子程序。 4)相关的特殊功能寄存器)相关的特殊功能寄存器 TCONTCONTF1 TR1 TF0 TR0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE0/IE1IE0/IE1:外部中断申请标志位:外部中断申请标志位: =0=0:没有外部中断申请;:没有外部中断申请; =1=1:有外部中断

8、申请。:有外部中断申请。 IT0/IT1IT0/IT1:外部中断请求的触发方式选择位:外部中断请求的触发方式选择位: =0=0:在:在INT0/INT1INT0/INT1端申请中断的信号低电平有效端申请中断的信号低电平有效; ; =1 =1:在:在INT0/INT1INT0/INT1端申请中断的信号负跳变有效端申请中断的信号负跳变有效. . EA ET2 ES ET1 EX1 ET0 EX0IEIE EX0/EX1EX0/EX1位位: 分别是分别是INT0/INT1INT0/INT1的中断允许控制位的中断允许控制位: : =0 =0 时禁止中断;时禁止中断; =1 =1 时允许中断。时允许中断

9、。 EAEA:总的中断允许控制位(总开关):总的中断允许控制位(总开关): =0 =0 时禁止全部中断;时禁止全部中断;=1 =1 时允许中断。时允许中断。 3.2软件设计软件设计 n1 1)初始化)初始化 n5151头文件、宏定义头文件、宏定义 n2 2)主程序,即)主程序,即mainmain()程序()程序 n灯的循环闪亮控制灯的循环闪亮控制 n中断初始化中断初始化 n3 3)延时功能)延时功能 n4 4)中断服务程序设计)中断服务程序设计 3.2软件设计软件设计 n中断初始化中断初始化 n触发方式设置触发方式设置 n中断允许控制中断允许控制 n中断服务程序设计中断服务程序设计 n中断初始

10、化中断初始化 nIT0=1; nEA=1; nEX0=1; n void int0(void) interrupt 0 n n uchar a=0 xfe,i=16; nP1=0 x0; ndelay(5000); nP1=0 x0ff; ndelay(5000); nP1=0 x0; ndelay(5000); nP1=0 x0ff; ndelay(5000); ndo n n P1=a; n delay(5000); n a=_cror_(a,1); nwhile(i-); n n4、通过定时,精确控制闪烁、通过定时,精确控制闪烁 500ms。 n针对任务一进行操作。针对任务一进行操作。

11、n使用定时器使用定时器T0T0 n1 1)设置定时器工作方式)设置定时器工作方式 n2 2)计算初始值)计算初始值 n3 3)编写初始化程序)编写初始化程序 n4 4)编写中断服务程序)编写中断服务程序 1 1)设置定时器工作方式)设置定时器工作方式 GATEC/TM1M0GATEC/TM1M0 TMOD 00000001 2 2)计算初始值)计算初始值 n晶振12Mhz n1个机器周期: 6 1 Tp=121 12 10 s 3 50 10 50000 1 n定时50ms,需要计数: 定时器初始值:定时器初始值: 6553650000155360 30 x CB 定时定时500ms,需要中断

12、,需要中断10次。次。 3 3)编写初始化程序)编写初始化程序 nTMOD=0X01; nTH0=0X3C; nTL0=0XB0; nEA=1; nET0=1; nTR0=1; 4 4)编写中断服务程序)编写中断服务程序 nVoid timer0(void) interrupt 1 n n TH0=0 x3c; n TL0=0 xb0; n i+; nif(i=9) ni=0; nP1_0=P1_0; n n n5、以秒为单位,用、以秒为单位,用LED数码管显示数码管显示 当前计数值。当前计数值。 LED数码管显示电路原理数码管显示电路原理 LEDLED数码管的数码管的结构结构: (1 1)共

13、阳)共阳 (2 2)共阴)共阴 公共阳极公共阳极 h g f e d c b ah g f e d c b a a a b b c c d d g g e e f f h h 公共阴极公共阴极 h g f e d c b ah g f e d c b a a a b b c c d d g g e e f f h h h g f a h g f a 高电平点亮高电平点亮 低电平点亮低电平点亮 接高电平接高电平 接地接地 共阳共阳LEDLED数码管:数码管: 公共端公共端( (字位字位) ) 接高电平,接高电平, 笔划笔划( (字段字段) ) 置为低电平置为低电平 就被点亮了就被点亮了 比如要显

14、示比如要显示“0”0” 须令须令a b c d e fa b c d e f 为为“0 0” 电平,电平,g hg h为为“1 1”电平。电平。 共阳极共阳极 h g f e d c b ah g f e d c b a a a b b c c d d g g e e f f h h h g f e d c b ah g f e d c b a 累加器累加器 A 1 1 0 0 0 0 0 01 1 0 0 0 0 0 0 0C0H = “0”0C0H = “0” n管脚识别小技巧:管脚识别小技巧: n用万用表测一下就可以了。数码管分为共阴极用万用表测一下就可以了。数码管分为共阴极 和共阳极。

15、以共阴极为例:和共阳极。以共阴极为例: n先用万用表的正极(对于数字万用表为红色表先用万用表的正极(对于数字万用表为红色表 笔)放在某一个管脚,另外一个负极依次去测笔)放在某一个管脚,另外一个负极依次去测 量其他管脚。若没有一个管脚亮,说明正极接量其他管脚。若没有一个管脚亮,说明正极接 的是公共端(的是公共端(COM)。若亮,根据发光位置)。若亮,根据发光位置 就可以判断引脚了,正极接的是相应的段码端就可以判断引脚了,正极接的是相应的段码端 (a,b,c,dp),负极为对应数码管),负极为对应数码管 的公共端(的公共端(C1,C2)。)。 4位一体共阴极位一体共阴极LED数码管管脚分布如图所示

16、:数码管管脚分布如图所示: 5.1硬件设计硬件设计 n如果每个如果每个LED上要显示的数字不同,上要显示的数字不同, 那么它在那么它在同一时刻是不能同时显示同一时刻是不能同时显示 的。的。 n用这种数码管都是用这种数码管都是动态显示动态显示的。的。 (可以到网上去看下动态显示)(可以到网上去看下动态显示) n比如比如4个个LED上要显示上要显示1234(假(假 设是共阴极连接)设是共阴极连接) n4个个LED上显示上显示1234(假设共阴极连接)(假设共阴极连接) n过程如下:过程如下: n首先选种第一个首先选种第一个LED(即上面(即上面 C1=0,C2=1,C3=1,C4=1) n送送LE

17、D要显示的数据(要显示的数据(abcdefg=“0110000”), 如果要显示小数点如果要显示小数点dp=1 n再延时一段时间(注意不能过长,不然看到的连续再延时一段时间(注意不能过长,不然看到的连续 显示的现象了,下面一样)显示的现象了,下面一样) n再选择第二个再选择第二个LED(即上面(即上面 C1=1,C2=0,C3=1,C4=1) n送送LED要显示的数据(要显示的数据(abcdefg=1101101)如如 果要显示小数点果要显示小数点dp=1 n再延时一段时间再延时一段时间 n接下来是第三、第四个接下来是第三、第四个LED也一样。也一样。 5.2软件设计软件设计 n1 1)定时中断服务程序)定时中断服务程序 n定时定时50ms50ms,中断,中断2020次为次为1 1秒秒 n每中断每中断2020次,计数次,计数1 1次。次。 n2 2)显示程序)显示程序 n将显示数值分为:个位、十位、将显示数值分为:个位、十位、 百位、千位,分别查表显示。百位、千位,分别查表显示。 初始化:初始化: nuchar code a10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7 d,0 x07,0 x7f,0 x6f;/段码组合,共阴极 nuchar m=0; /计数循环变量 nuint n=0; /计数值 定时中断服务程序定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论