微控制器系统设计与应用课程

上传人:F****n 文档编号:95500339 上传时间:2019-08-19 格式:PPT 页数:76 大小:2.74MB
返回 下载 相关 举报
微控制器系统设计与应用课程_第1页
第1页 / 共76页
微控制器系统设计与应用课程_第2页
第2页 / 共76页
微控制器系统设计与应用课程_第3页
第3页 / 共76页
微控制器系统设计与应用课程_第4页
第4页 / 共76页
微控制器系统设计与应用课程_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《微控制器系统设计与应用课程》由会员分享,可在线阅读,更多相关《微控制器系统设计与应用课程(76页珍藏版)》请在金锄头文库上搜索。

1、微控制器系统设计与应用,刘燎原,江苏建筑职业技术学院,回顾:,(一)动态显示 1.什么是动态显示 2.动态显示步骤 1个数码管步骤: (1)送段值 (2)送位选(公共端) (3)延时 (4)关闭 3.加驱动方法 三极管 锁存器,实验总结:,实验板数码管动态显示,假设要求第一个数码管先显示百位(例如2),则: 1.送段值:P0输出段值5BH,P2.6=1(数据进入), P2.6=0(数据锁存),段值送入数码管的段值端; 2.送位选:P0输出位选值FEH,P2.7=1 (数据进入), P2.7=0(数据锁存),位选值送入数码管的位选端; 3.延时 其他两个数码管类似这三个步骤。,回顾:,(二)中断

2、 1.中断源 5个 2.中断优先级 2个 3.外部中断 P3.2,P3.3 4.外部中断寄存器 IE:EA,EX0,ET0,EX1,ET1,ES TCON:IE0,IT0,IE1,IT1 IP:PX0,PT0,PX1,PT1,PS 中断程序如何编写?,Void main 中断初始化; 一边做平时的工作,一边等待中断来; Void 名字( ) interrupt 0/3 要求CPU做的事情; ,项目四 倒计时 -单片机定时计数器,上节课复习 举出生活中中断的例子。 中断过程包括哪几个步骤? 中断请求、中断响应、中断处理、中断返回 单片机内有哪个中断源。 外部中断:2 内部中断:3,定时器/计数器

3、 导入:单片机应用系统中定时计数的需求: 如用单片机控制的打铃器、空调的定时开关、啤酒自动生产线上对酒瓶的计数装置等。 以实现定时控制; 以实现对外界事件进行计数。 用到定时/计数 实现定时/实现方式: 1.软件定时;(延时程序)占用CPU 2.不可编程硬件定时(555); 3.可编程定时 (8253,单片机定时/计数器) AT89S51内部有两个定时/计数器 定时计数器到底是什么?,一、定时/计数器概述 1.核心 定时/计数器的核心部件是16位二进制加1计数器(TH0、TL0或TH1、TL1) 。 特性: (1)每来一个计数脉冲信号,T0或T1会在原来计数值(或初值)的基础上加1. (2)直

4、到计满,再来一脉冲,计数值清0,会发生溢出。 向CPU发出中断请求,告诉CPU这次计数结束。再开始下一轮计数。 这就像闹钟定时的时间一到,闹钟就会响一样。 2.计数和定时有什么不同 类比生活中计数,定时(定时1分钟) 所以定时也是一种计数,16位加1计数器,21H,1,3.单片机中的定时、计数器 两个定时/计数器分别叫T0,T1 计数脉冲从哪来? 当需要计数时,计数脉冲来自于外部脉冲源(P3.4,P3.5) 当需要定时时,计数脉冲来自于系统机器周期(时钟振荡器经12分频以后的脉冲信号)。 (1)计数器 对外部信号计数,外部计数脉冲从T0(P3.4)和T1(P3.5)输入,开关接在下面,来一个脉

5、冲(下降沿),将加1计数。,脉冲信号,(2).定时器 定时器也是一种计数器。 开关接在上面,计数脉冲信号是振荡器经过12分频后信号。 这是什么信号? 振荡器(晶振)的12分频信号。 如果晶振为12MHZ,则计数脉冲信号T=12*1/12M =1uS (机器周期) 即定时就是每过一个机器周期(1uS),计数器加1,直至计满溢出,定时结束。 定时器的定时时间与晶振频率和计数次数、初值等有关有关。 若计数器对此信号计数100次,则定时时间=100 1s100s。,脉冲信号,单片机如何定义定时或计数功能? 单片机定时或计数的初值怎么设置? 编程设定-单片机定时中断相关的寄存器 设置单片机处理定时中断的

6、各种情况 与定时计数有关的特殊功能寄存器 ,:定时器的高位,低位(存放计数值) ,:定时器的高位,低位(存放计数值) :定时控制寄存器 :定时方式寄存器 二、定时计数器的相关寄存器 (工作方式寄存器) 定时器方式寄存器TMOD的作用是设置T0、T1的工作方式。 TMOD的格式: 各位的功能说明: (1) M1、M0位:工作方式选择位,(1) M1、M0位:工作方式选择位 (2) :计数/定时功能选择位。 =0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。实际上是对机器周期进行计数。从计数值可以求得计数的时间,所以称为定时器模式 =1,设置为计数器方式,计数器的输入来自T0

7、(P3.4)或T1(P3.5)端的外部脉冲,对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许的最高计数频率为晶振频率的1/24。,(3) GATE:门控位。用于控制定时器的启动是否受外部中断源信号的影响。 GATE=0:定时的启动与外部中断无关,把TCON寄存器中的TR1(TR0)置1即可启动定时器1(定时器0)。常用。 GATE=1:由控制位TR1(TR0)和引脚INT0(INT1)共同控制启动,只有在没有外部中断请求信号的情况下即外部中断引脚 INT0(INT1)引脚=1时,把TR1(TR0)置1才能定时器启动。用于检测低电平时间。,例如:要设定T0工作在定时

8、方式2. TMOD=0X02; 不能位寻址,0,0,定时器/计数器控制寄存器TCON TF0、TF1分别是定时器/计数器T0、T1 的溢出标志位, 加法计数器计满溢出时硬件自动置1, 申请中断。 对该标志位有两种处理方法: 一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0; 另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。 TR1、TR0 分别是定时器 /计数器T1、 T0 的定时器1启停控制位。 GATE=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。 GATE=

9、1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。 所以初始化时,只涉及到TR0/1 例:启动TR0. TCON属于特殊功能寄存器,地址能被8整除,所以可位操作.这里用位操作方便。 TR0=1;,寄存器总结:3个特殊功能寄存器 IE TMOD TCON 导入:例如要求单片机检测计数200个脉冲信号? 定时器计数器用于定时或计数时,必须按照需要给计数器设置初值。定时器计数器在计数初值的基础上以加1的方式进行计数,在计数器从全1变为全0时,将自动产生溢出中断请求,表示此次定时、计数结束。 计数初值怎么设置? 定时、计数器有四种工作方式,实际使用中应用选择哪种?,三、定

10、时/计数器的计数容量及初值 1最大计数容量(次数) 最大计数容量与计数器的二进制位数有关,关系为2N 举例,若为2位计数器,00,01,10,11,最大计数值为2N= 4 2.计数初值 计数不一定是从0开始,这要根据需要来设定。这个预先设定的计数起点值称为计数初值。 FFFFH 最大计数容量 初值 0000H 计数值+初值=最大计数容量 举例,一个杯子的总容量为最大计数容量,已经装了少量的水为初值,还能装多少水位计数值,四定时/计数器的工作方式 MCS-51单片机的T/C有4种工作方式,分别由TMOD寄存器中的M1、M0两位的二进制编码所决定。 1.方式0 13位计数器 在方式0下,T0和T1

11、工作在13位的定时/计数器方式,由TH的高 8 位和TL的低 5 位组成。 当T1的低五位TL1计满时向它的高八位TH1进位,当T1的13位计数器加到全部为 1 以后,再加1就产生溢出,这时置TCON的TF1为 1 ,同时把计数器全部变 0 。然后从 0 开始继续计数。 计数值范围:01111111111111(8191) 最大计数容量213=8192 如计数值为N,则置入的初值X为: X+N=8192 例如:若定时/计数器T0的计数值为1000,则初值为7192, 把初值转换成二进制数为1110000011000B, 则TH0=11100000B,TL0=00011000B。,脉冲信号,2.

12、方式1 16位计数器 在方式1下,T0和T1工作在16位的定时/计数器方式,由TH的高 8 位和TL的低 8 位组成。 当T1的低8位TL1计满时向它的高八位TH1进位,当T1的16位计数器加到全部为 1 以后,再加1就产生溢出,这时置TCON的TF1为 1 ,同时把计数器全部变 0 。然后从 0 开始继续计数。 最大计数次数216=65536 如计数值为N,则置入的初值X为: X+N=65536 如定时/计数器T0的计数值为1000,则初值为65536-1000=64536, 把初值转换成二进制数为1111110000011000B, 则TH0=11111100B,TL0=00011000B

13、。,脉冲信号,3方式2 8位自动重装初值计数器 在方式2下,TL0用作8位计数器, TH0用作初值寄存器。 当T1的8位计数器加到全部为 1 以后,再加1就产生溢出,这时置TCON的TF1为 1 ;同时,TH1中的初值装入TL1TL1又从初值开始计数。 最大计数次数28=256 如计数值为N,则置入的初值X为: X+N=256 如定时/计数器T0的计数值为100,则初值为256-100=156, 把初值转换成二进制数为10011100B, 则TH0= TL0=10011100B。,脉冲信号,特别适合于产生比较精确的连续脉冲信号。,4方式3 2个独立的8位计数器 方式3只适用于定时器T0, TL

14、0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用。 比较:(方式0,1,2) 1.3种方式的最大区别是计数位数不同(13,16,8),所以最大计数值或定时时间也不同。 2.工作方式0和工作方式1的特点就是计数溢出后,计数器变为全0,因而循环定时或循环计数应用时就存在反复设置初值。 工作方式2具有自动重装载功能,即自动加载计数初值。,以方式1为例,16位,最大计数容量65536 如果采用12的晶振,对应的脉冲周期是微秒,计满65536个脉冲所对应的时间就是65.536ms。 计数,只要用预置数的方法先在计数容器内存入一个初值 ,如我们要计100次,那就存入65436初值

15、,只要再来100个脉冲,就刚好会溢出,引发中断。 那么,定时初值计算?,五.定时/计数初值计算 由 计数值+计数初值=最大计数容量,得到: (计数值+计数初值)机器周期=最大计数容量机器周期 计数次数机器周期+计数初值机器周期=最大计数容量机器周期 定时时间+计数初值机器周期=最大计数容量机器周期 即 定时时间=(最大计数容量-初值)机器周期 所以,定时初值=最大计数容量-定时时间/机器周期 =2N-定时时间/机器周期 不同工作方式的定时初值或计数初值的计算方法如下表所示:,举例:定时1秒,晶振12MHZ,方式1,初值为多少? 如何产生1秒定时信号? 晶振12MHZ,机器周期1us 4种工作方

16、式中,最大计数容量是方式1,65536 则65536us=65.536ms 所以定1次不够 那就定多次,累计在一起,构成1秒 那选择T0,工作在方式0,一次定时50ms,循环20次 初值多少? TH0=0x3c; TL0=0xb0;,所以,在用到定时中断之前,要先用指令来设置相关寄存器的初始值,来设定定时中断的条件-定时中断的初始化。 五、定时程序的编写 1、程序结构 几个程序? 回忆中断定义 两个程序:主程序、定时中断服务子程序 void main() void 名字() interrupt 中断号 注意:名字,自己随意取;中断号,0-4 定时中断,中断号是1或3 2、这两个程序分别做什么 结合一个例子看一下,例1:发光二极管每隔1秒闪烁1次。要求用中断方法设计实现1s的闪烁 解:程序的结构(中断方式,查询方式) 如何产生1秒定时信号? T0一次定时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号