版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、公选课 单片机基础及应用,设计实例,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 #define uin
2、t unsigned int #define uchar unsigned char,void main(void) while(1) P1_0=0; delay(5000); P1_0=1; delay(5000); ,void delay(uint t) /延时0.1*t毫秒 uint i; do for(i=0;i10;i+) ; while(t-); ,void delay(uint t); /声明函数,2、用8个LED发光二极管,设计一个循环闪烁的流水灯。,2.1硬件设计,2.2软件设计,1)初始化 51头文件、宏定义 2)主程序,即main()程序 灯的循环闪亮控制 3)延时功能
3、延时子程序设计,如何进行灯的循环闪亮控制? intrins.h 内部函数库 (包含变量循环移位、位操作等函数) 需要将该函数包含进来,同时对函数原型进行声明。,#include uchar _crol_(uchar a,uchar n); /*函数原型,左循环*/ uchar _cror_(uchar a,uchar n); /*函数原型,右循环*/,#include uchar _crol_(uchar a,uchar n); /*函数原型*/ uchar _cror_(uchar a,uchar n); /*函数原型,右循环*/,void main(void) uint a = 0 xfe
4、; while(1) P1=a; delay(5000); a=_crol_(a,1); ,3、通过设置中断,改变灯的循环方向,控制灯的亮灭。,3.1硬件设计,1)中断的概念,中断技术是计算机中一项很重要的技术。 中断系统的功能是为了解决快速CPU和慢速外设间的矛盾,它由软件和硬件组成。 有了中断系统,能使计算机的功能更强、效率更高、使用更灵活。 51单片机系统有5个中断源。,2)日常中断的例子,你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。,3)计算机中的中断概念,中断是指由于某种随机事件(甲方)的发生,计算机(乙方)暂停现行程序的运行,转去执
5、行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。 将能引起中断的事件称为中断源。 CPU现行运行的程序称为主程序。 处理随机事件的程序称为中断服务子程序。,4)相关的特殊功能寄存器,TCON,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。,IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效.,EA ET2 ES ET1 EX1 ET0 EX0,IE,3.2软件设计,
6、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=0 xfe,i=16; P1=0 x0; delay(5000); P1=0 x0ff; d
7、elay(5000); P1=0 x0; delay(5000); P1=0 x0ff; delay(5000); do P1=a; delay(5000); a=_cror_(a,1); while(i-); ,4、通过定时,精确控制闪烁500ms。 针对任务一进行操作。,使用定时器T0 1)设置定时器工作方式 2)计算初始值 3)编写初始化程序 4)编写中断服务程序,1)设置定时器工作方式,TMOD,2)计算初始值,晶振12Mhz 1个机器周期:,定时50ms,需要计数:,定时器初始值:,定时500ms,需要中断10次。,3)编写初始化程序,TMOD=0X01; TH0=0X3C; TL0
8、=0XB0; EA=1; ET0=1; TR0=1;,4)编写中断服务程序,Void timer0(void) interrupt 1 TH0=0 x3c; TL0=0 xb0; i+; if(i=9) i=0; P1_0=P1_0; ,5、以秒为单位,用LED数码管显示当前计数值。,LED数码管显示电路原理,LED数码管的结构: (1)共阳 (2)共阴, 共阳数码管每个段笔画是用低电平(“0”)点亮, 共阴数码管段笔画是用高电平(“1”)点亮,公共阳极,h g f e d c b a,a,b,c,d,g,e,f,h,公共阴极,h g f e d c b a,a,b,c,d,g,e,f,h,h
9、 g f a,h g f a,高电平点亮,低电平点亮,接高电平,接地,要显示某个字形,就应使此字形的相应断码的二极管点亮,实际就是送一个用不同电平组合代表的数据字(显示码)来控制LED的显示,此数据称为字符的段码或字形码。 共阴极和共阳极LED显示器段码不同。,共阳LED数码管: 公共端(字位) 接高电平, 笔划(字段) 置为低电平 就被点亮了,比如要显示“0” 须令a b c d e f 为“0” 电平,g h为“1”电平。,管脚识别小技巧: 用万用表测一下就可以了。数码管分为共阴极和共阳极。以共阴极为例: 先用万用表的正极(对于数字万用表为红色表笔)放在某一个管脚,另外一个负极依次去测量其
10、他管脚。若没有一个管脚亮,说明正极接的是公共端(COM)。若亮,根据发光位置就可以判断引脚了,正极接的是相应的段码端(a,b,c,dp),负极为对应数码管的公共端(C1,C2)。,4位一体共阴极LED数码管管脚分布如图所示:,5.1硬件设计,如果每个LED上要显示的数字不同,那么它在同一时刻是不能同时显示的。 用这种数码管都是动态显示的。(可以到网上去看下动态显示) 比如4个LED上要显示1234(假设是共阴极连接),4个LED上显示1234(假设共阴极连接) 过程如下: 首先选种第一个LED(即上面C1=0,C2=1,C3=1,C4=1) 送LED要显示的数据(abcdefg=“011000
11、0”),如果要显示小数点dp=1 再延时一段时间(注意不能过长,不然看到的连续显示的现象了,下面一样) 再选择第二个LED(即上面C1=1,C2=0,C3=1,C4=1) 送LED要显示的数据(abcdefg=1101101)如果要显示小数点dp=1 再延时一段时间 接下来是第三、第四个LED也一样。,5.2软件设计,1)定时中断服务程序 定时50ms,中断20次为1秒 每中断20次,计数1次。 2)显示程序 将显示数值分为:个位、十位、百位、千位,分别查表显示。,初始化:,uchar code a10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/段码组合,共阴极 uchar m=0; /计数循环变量 uint n=0; /计数值,定时中断服务程序,void timer0(void) interrupt 1 TH0=0 x3C; TL0=0 xB0; m+; if(m=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省烟草专卖局(公司)2026年毕业生招聘备考题库(第一批)完整参考答案详解
- 2026年西安长安大学工程设计研究院有限公司招聘备考题库及完整答案详解一套
- 东莞市中堂镇公开招聘编外聘用人员20人备考题库及答案详解一套
- 2026年重庆广播电视集团(总台)第1眼TV招聘8人备考题库-重庆广播电视集团(总台)及一套答案详解
- 2026年竹山血浆站招聘备考题库及一套答案详解
- 2026年携手同行合力生光北京广播电视台校园招聘24人备考题库及答案详解一套
- 2026年随县唐县镇招聘城市管理协管员备考题库及答案详解参考
- 中央团校(中国青年政治学院)2026年度高校毕业生公开招聘9人备考题库完整答案详解
- 优益优教育集团2026届招聘备考题库及1套完整答案详解
- 宜宾市社会福利院2025年公开招聘编外聘用人员备考题库及一套答案详解
- 人力资源人才盘点表型模板
- 老年医学发展与挑战
- 江苏徐州泉华置业有限公司招聘笔试题库2025
- “大唐杯”全国大学生新一代信息通信技术竞赛题库及答案
- 2025云智算光互连发展报告
- 活动方案策划软件
- 砌体工程监理实施细则及操作规范
- 2025年瑞众保险全国校园招聘150人考试练习题库(含答案)
- 通信设备用电安全培训课件
- 方太企业培训课件
- 水上平台施工安全培训课件
评论
0/150
提交评论