单片机应用系统设计实例

上传人:pia****nwu 文档编号:240718845 上传时间:2024-05-02 格式:PPT 页数:44 大小:189.50KB
返回 下载 相关 举报
单片机应用系统设计实例_第1页
第1页 / 共44页
单片机应用系统设计实例_第2页
第2页 / 共44页
单片机应用系统设计实例_第3页
第3页 / 共44页
点击查看更多>>
资源描述
公选课公选课 单片机基础及应用单片机基础及应用设计实例设计实例n n1 1 1 1、用用1个个LED发光二极管,设计一个循环闪烁的指示发光二极管,设计一个循环闪烁的指示灯。灯。n2、用、用8个个LED发光二极管,设计一个循环闪烁的流水发光二极管,设计一个循环闪烁的流水灯。灯。n3、通过设置中断,改变灯的循环方向,控制灯的亮灭。、通过设置中断,改变灯的循环方向,控制灯的亮灭。n4、通过定时,精确控制闪烁、通过定时,精确控制闪烁500ms。n5、以秒为单位,用、以秒为单位,用LED数码管显示当前计数值。数码管显示当前计数值。n n1 1、用用1个个LED发光二极管,设计一发光二极管,设计一个循环闪烁的指示灯。个循环闪烁的指示灯。如何设计硬件和软件?如何设计硬件和软件?如何设计硬件和软件?如何设计硬件和软件?硬件设计硬件设计注意:注意:注意:注意:在接下来的仿真中,省略时钟及复位电路。在接下来的仿真中,省略时钟及复位电路。在接下来的仿真中,省略时钟及复位电路。在接下来的仿真中,省略时钟及复位电路。软件设计软件设计n1 1)初始化)初始化n5151头文件、宏定义头文件、宏定义n2 2)主程序,即)主程序,即mainmain()程序()程序n灯的亮灭控制灯的亮灭控制n3 3)延时功能)延时功能n延时子程序设计延时子程序设计n#include n#define uint unsigned intn#define uchar unsigned charnvoid main(void)nnwhile(1)nn P1_0=0;n delay(5000);n P1_0=1;n delay(5000);nnnvoid delay(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发光二极管,设计一发光二极管,设计一个循环闪烁的流水灯。个循环闪烁的流水灯。硬件设计硬件设计软件设计软件设计n1 1)初始化)初始化n5151头文件、宏定义头文件、宏定义n2 2)主程序,即)主程序,即mainmain()程序()程序n灯的循环闪亮控制灯的循环闪亮控制n3 3)延时功能)延时功能n延时子程序设计延时子程序设计n如何进行灯的循环闪亮控制?如何进行灯的循环闪亮控制?n 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(void)uint a=0 xfe;while(1)P1=a;delay(5000);a=_crol_(a,1);n3、通过设置中断,改变灯的循环方、通过设置中断,改变灯的循环方向,控制灯的亮灭。向,控制灯的亮灭。硬件设计硬件设计1)中断的概念)中断的概念n中断技术是计算机中一项很重要的中断技术是计算机中一项很重要的技术。技术。n中断系统的功能是为了解决快速中断系统的功能是为了解决快速CPUCPU和慢速外设间的矛盾,它由软件和和慢速外设间的矛盾,它由软件和硬件组成。硬件组成。n有了中断系统,能使计算机的功能有了中断系统,能使计算机的功能更强、效率更高、使用更灵活。更强、效率更高、使用更灵活。n5151单片机系统有单片机系统有5 5个中断源。个中断源。2)日常中断的例子)日常中断的例子 你正在专心看你正在专心看书,突然电话铃响,书,突然电话铃响,于是你记下正在看的于是你记下正在看的书的页数,去接电话,书的页数,去接电话,接完电话后再回来接接完电话后再回来接着看书。着看书。3)计算机中的中断概念)计算机中的中断概念中断中断是指由于某种随机事件(甲方)是指由于某种随机事件(甲方)的发生,计算机(乙方)暂停现行程的发生,计算机(乙方)暂停现行程序的运行,转去执行另一程序,以处序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返理发生的事件,处理完毕后又自动返回原来的程序继续运行。回原来的程序继续运行。将能引起中断的事件称为将能引起中断的事件称为中断源中断源。CPUCPU现行运行的程序称为现行运行的程序称为主主程序程序。处理随机事件的程序称为处理随机事件的程序称为中断服务中断服务子程序子程序。4)相关的特殊功能寄存器)相关的特殊功能寄存器TCONTCONTF1 TR1 TF0 TR0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IE0/IE1IE0/IE1:外部中断申请标志位:外部中断申请标志位:=0 =0:没有外部中断申请;:没有外部中断申请;=1 =1:有外部中断申请。:有外部中断申请。IT0/IT1IT0/IT1:外部中断请求的触发方式选择位:外部中断请求的触发方式选择位:=0 =0:在:在INT0/INT1INT0/INT1端申请中断的信号低电平有效端申请中断的信号低电平有效;=1 =1:在:在INT0/INT1INT0/INT1端申请中断的信号负跳变有效端申请中断的信号负跳变有效.EA ET2 ES ET1 EX1 ET0 EX0IEIEEX0/EX1EX0/EX1位:位:分别是分别是INT0/INT1INT0/INT1的中断允许控制位的中断允许控制位:=0 =0 时禁止中断;时禁止中断;=1 =1 时允许中断。时允许中断。EAEA:总的中断允许控制位(总开关):总的中断允许控制位(总开关):=0 =0 时禁止全部中断;时禁止全部中断;=1=1 时允许中断。时允许中断。软件设计软件设计n1 1)初始化)初始化n5151头文件、宏定义头文件、宏定义n2 2)主程序,即)主程序,即mainmain()程序()程序n灯的循环闪亮控制灯的循环闪亮控制n中断初始化中断初始化n3 3)延时功能)延时功能n4 4)中断服务程序设计)中断服务程序设计软件设计软件设计n中断初始化中断初始化n触发方式设置触发方式设置n中断允许控制中断允许控制n中断服务程序设计中断服务程序设计n中断初始化中断初始化nIT0=1;nEA=1;nEX0=1;中断服务程序中断服务程序n n函数名()函数名()函数名()函数名()interrupt n using m interrupt n using m interrupt n using m interrupt n using m n n n nVoid int0(void)interrupt 0 Void int0(void)interrupt 0 Void int0(void)interrupt 0 Void int0(void)interrupt 0 n n/*/*/*/*外部中断外部中断外部中断外部中断0 0 0 0的服务函数定义,使用第二组工的服务函数定义,使用第二组工的服务函数定义,使用第二组工的服务函数定义,使用第二组工作寄存器组作寄存器组作寄存器组作寄存器组*/*/*/*/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);ndonn P1=a;n delay(5000);n a=_cror_(a,1);nwhile(i-);n n4、通过定时,精确控制闪烁、通过定时,精确控制闪烁500ms。n针对任务一进行操作。针对任务一进行操作。n使用定时器使用定时器T0T0n1 1)设置定时器工作方式)设置定时器工作方式n2 2)计算初始值)计算初始值n3 3)编写初始化程序)编写初始化程序n4 4)编写中断服务程序)编写中断服务程序1 1)设置定时器工作方式)设置定时器工作方式GATEC/TM1M0GATEC/T M1M0TMOD000000012 2)计算初始值)计算初始值n晶振12Mhzn1个机器周期:n定时50ms,需要计数:定时器初始值:定时器初始值:定时定时500ms,需要中断,需要中断10次。次。3 3)编写初始化程序)编写初始化程序nTMOD=0X01;nTH0=0X3C;nTL0=0XB0;nEA=1;nET0=1;nTR0=1;4 4)编写中断服务程序)编写中断服务程序nVoid timer0(void)interrupt 1nn TH0=0 x3c;n TL0=0 xb0;n i+;nif(i=9)ni=0;nP1_0=P1_0;nnn5、以秒为单位,用、以秒为单位,用LED数码管显示数码管显示当前计数值。当前计数值。LED数码管显示电路原理数码管显示电路原理LEDLED数码管的数码管的结构结构:(1 1)共阳)共阳(2 2)共阴)共阴 共阳数码管每个段笔画是用低电平共阳数码管每个段笔画是用低电平共阳数码管每个段笔画是用低电平共阳数码管每个段笔画是用低电平(“0”)(“0”)(“0”)(“0”)点亮点亮点亮点亮,共阴数码管段笔画是用高电平共阴数码管段笔画是用高电平共阴数码管段笔画是用高电平共阴数码管段笔画是用高电平(“1”)(“1”)(“1”)(“1”)点亮点亮点亮点亮 公共阳极公共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共阴极公共阴极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地n n要显示某个字形,就应使此字形的相应要显示某个字形,就应使此字形的相应断码的二极管点亮,实际就是送一个断码的二极管点亮,实际就是送一个用用不同电平组合代表的数据字不同电平组合代表的数据字(显示码)(显示码)来控制来控制LED的显示,此数据称为字符的的显示,此数据称为字符的段码或字形码。段码或字形码。n n共阴极和共阳极共阴极和共阳极LED显示器段码不同。显示器段码不同。共阳共阳LEDLED数码管:数码管:公共端公共端(字位字位)接高电平,接高电平,笔划笔划(字段字段)置为低电平置为低电平就被点亮了就被点亮了比如要显示比如要显示“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 aa ab bc cd dg ge ef fh hh g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0 0 0 0 0 00C0H=“0”0C0H=“0”n管脚识别小技巧:管脚识别小技巧:n用万用表测一下就可以了。数码管分为共阴极用万用表测一下就可以了。数码管分为共阴极和共阳极。以共阴极为例:和共阳极。以共阴极为例:n先用万用表的正极(对于数字万用表为红色表先用万用表的正极(对于数字万用表为红色表笔)放在某一个管脚,另外一个负极依次去测笔)放在某一个管脚,另外一个负极依次去测量其他管脚。若没有一个管脚亮,说明正极接量其他管脚。若没有一个管脚亮,说明正极接的是公共端(的是公共端(COM)。若亮,根据发光位置就)。若亮,根据发光位置就可以判断引脚了,正极接的是相应的段码端可以判断引脚了,正极接的是相应的段码端(a,b,c,dp),负极为对应数码管),负极为对应数码管的公共端(的公共端(C1,C2)。)。4位一体共阴极位一体共阴极LED数码管管脚分布如图所示:数码管管脚分布如图所示:硬件设计硬件设计n如果每个如果每个LED上要显示的数字不同,上要显示的数字不同,那么它在那么它在同一时刻是不能同时显示同一时刻是不能同时显示的。的。n用这种数码管都是用这种数码管都是动态显示动态显示的。的。(可以到网上去看下动态显示)(可以到网上去看下动态显示)n比如比如4个个LED上要显示上要显示1234(假设(假设是共阴极连接)是共阴极连接)n4个个LED上显示上显示1234(假设共阴极连接)(假设共阴极连接)n过程如下:过程如下:n首先选种第一个首先选种第一个LED(即上面(即上面C1=0,C2=1,C3=1,C4=1)n送送LED要显示的数据(要显示的数据(abcdefg=“0110000”),如果要显示小数点如果要显示小数点dp=1n再延时一段时间(注意不能过长,不然看到的连续再延时一段时间(注意不能过长,不然看到的连续显示的现象了,下面一样)显示的现象了,下面一样)n再选择第二个再选择第二个LED(即上面(即上面C1=1,C2=0,C3=1,C4=1)n送送LED要显示的数据(要显示的数据(abcdefg=1101101)如如果要显示小数点果要显示小数点dp=1n再延时一段时间再延时一段时间n接下来是第三、第四个接下来是第三、第四个LED也一样。也一样。软件设计软件设计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 x7d,0 x07,0 x7f,0 x6f;/段码组合,共阴极nuchar m=0;/计数循环变量nuint n=0;/计数值定时中断服务程序定时中断服务程序n void timer0(void)interrupt 1n n TH0=0 x3C;nTL0=0 xB0;nm+;nif(m=19)nm=0;n n+;n P1_0=P1_0;n n显示程序显示程序n void display(void)n nP2=0 xf7,P0=an%10;ndelay(20);nP2=0 xfb,P0=an%100/10;ndelay(20);nP2=0 xfd,P0=an/100%10;ndelay(20);nP2=0 xfe,P0=an/1000;ndelay(20);n
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!