实验6 定时器T1的使用
- 格式:pdf
- 大小:198.63 KB
- 文档页数:5
【关键字】报告单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的1. 学习单片机内部定时/计数器的使用和编程方法;2. 进一步掌握中断处理程序的编程方法。
㈡实验器材1. 2. 3. 4. 5.G6W仿真器一台MCS—51实验板一台PC机一台电源一台信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。
㈣实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
2. 计数脉冲由信号发生器输入(从T0端接入)。
3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址;设置T1做定时器,T0做计数器,都于方式1工作;装入中断次数;装入计数值低8位;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $;等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场;装入计数值低8位;装入计数值高8位,50ms;允许T1中断;未到1s,继续计时;1s到重新开始;显示计数器T0的值;读计数器当前值;将计数值转为十进制;显示部分,将A中保存的十位赋给L0~L3 将B中保存的各位转移到A中;将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
串⼝通信实验报告⼤连理⼯⼤学实验报告成绩:串⼝通信实验⼀、实验⽬的和要求了解串⼝通信的原理与机制掌握基于8051的串⼝通信硬件电路设计⽅法掌握8051串⼝通信程序调试⽅法⼆、实验原理和内容实验原理:1.串⼝通信简介串⼝通信是指数据在⼀根数据线上按照⼆进制数的数位⼀位接⼀位的传输。
其特点是通信线路简单,只要⼀对传输线就可以实现通信(如电话线),可⼤⼤地降低成本,适⽤于远距离通信。
缺点是传送速度慢。
2. 51单⽚机串⾏⼝简介51单⽚机的串⾏⼝是⼀个可编程全双⼯的通信接⼝,具有UART(通⽤异步收发器)的全部功能,能同时进⾏数据的发送和接收,也可以作为同步移位寄存器使⽤。
51单⽚机的串⾏⼝主要由两个独⽴的串⾏数据缓冲寄存器SBUF组成,它可以通过特殊功能寄存器SBUF对串⾏接收或串⾏发送寄存器进⾏访问,两个寄存器共⽤⼀个地址99H,但在物理上是两个独⽴的寄存器,由指令操作决定访问哪⼀个寄存器。
执⾏写指令时访问串⾏发送寄存器;执⾏读指令时,访问串⾏接收寄存器。
3.串⾏⼝控制寄存器SCON串⾏⼝控制寄存器SCON⽤来设定串⾏⼝的⼯作⽅式、接收或发送控制位以及状态标志位等。
在本实验中设定SM0为0,SM1为1,采⽤串⾏⼝的⼯作⽅式1(8位异步收发,波特率可变,由定时器控制)。
允许串⾏接收位REN设置为1,其它控制、标志位设置为0。
(即令SCON=0X50)4.定时器/计数器模式控制寄存器TMOD定时器/计数器模式控制寄存器TMOD是⼀个逐位定义的8位寄存器,其中低四位(即D0 ~ D3)定义定时器/计数器T0,⾼四位(即D4 ~ D7)定义定时器/计数器T1。
在本实验中使⽤定时器1,设定M1=1,M2=0,,采⽤定时器T1的⼯作⽅式2(⾃动重载8位定时器/计数器),其它控制位设置为0。
并由晶振频率(11.0592MHZ)和波特率(9600)计算初始化定时器T1:TH1=TL1=0xfd。
最后通过对TR1置1启动定时器T1。
通过本次实验将会掌握定时器T1的一些简单用法。
本次实验学习到的新寄存器:T1STAT:定时器1的状态寄存器,D4~D0为通道4~通道0的中断标志,D5为溢出标志位,当计数到最终技术值是自动置1。
源代码:#include <ioCC2530.h>#define uint unsigned int#define uchar unsigned char#define LED1 P1_0 //定义LED1为P10口控制#define LED2 P1_1 //定义LED2为P11口控制#define LED3 P1_4 //定义LED3为P14口控制uint counter=0; //统计溢出次数uintLEDFlag; //标志是否要闪烁void InitialT1test(void); //初始化函数声明void InitialT1test(void){//初始化LED控制端口P1P1DIR = 0x13; //P10 P11 P14为输出P0DIR = 0x02;LED1 = 1;LED2 = 1;LED3 = 1;//初始化计数器1T1CTL = 0x05; //通道0,中断有效,8分频;自动重装模式(0x0000->0xffff)}void main(){InitialT1test(); //调用初始化函数while(1){if(IRCON==0x02) //查询溢出中断标志,是否有中断并且为定时器1发出的中断{IRCON = 0; //清溢出标志counter++;if(counter==30) //中断计数,约0.25s{counter =0;LED2 = LED1;LED3 = !LED2;LED1 = !LED1;LEDFlag = !LEDFlag;}}if(LEDFlag){LED2 = LED1;LED3 = !LED2;LED1 = !LED1; // 每1s LED灯闪烁一下LEDFlag = !LEDFlag; // 闪烁标志变量置0}}}实验总结:定时器1的工作原理:这次实验中定时器1工作在自由运行方式下,定时器1开始工作后从0x0000开始做加1计算,一直到0xffff。
5、要想测量INT0 引脚上的一个正脉冲宽度,那么特殊功能寄存器TMOD的内容可以为( A )。
A 、09HB 、87HC 、00HD 、80H单片机原理及应用技能比赛模拟试题(五)6、使用定时器T1时,有几种工作方式( C )A 、1 种B 、2 种C 、3 种D 、4 种一、填空题7、8031 单片机的定时器T1 用作定时方式时是( B )。
1、当定时器T0 工作在方式 3 时,要占用定时器T1 的TR1 和TF1 两个控制位。
A、由内部时钟频率定时,一个时钟周期加 1 B 、由内部时钟频率定时,一个机器周期加 12、在定时器T0 工作方式 3 下,TH0溢出时,TF1 标志将被硬件置 1 去请求中断。
C、由外部时钟频率定时,一个时钟周期加 1 D 、由外部时钟频率定时,一个机器周期加 13、在定时器T0 工作方式 3 下,欲使TH0停止工作,应执行一条CLR TR1 的指令。
8、8031 单片机的定时器T0 用作计数方式时是( C )。
4、使用定时器/ 计数器 1 设置串行通信的波特率时,应把定时器/ 计数器 1 设定作方式 2A、由内部时钟频率定时,一个时钟周期加 1 B 、由内部时钟频率定时,一个机器周期加 1,即自动重新加载方式。
C、由外部计数脉冲计数,下降沿加 1 D 、由外部计数脉冲计数,一个机器周期加 15、当计数器产生计数溢出时,把定时器/ 计数器的TF0(TF1)位置“1”。
对计数溢出的处理,在中断方式时,9、8031 单片机的定时器T1 用作计数方式时计数脉冲是( A )。
该位作为中断标志位使用;在查询方式时,该位作状态位使用。
A、外部计数脉冲由T1(P3.5 )输入 B 、外部计数脉冲由内部时钟频率提供6、在定时器工作方式 1 下,计数器的宽度为16 位,如果系统晶振频率为6MHz,则最大定时时间C 、外部计数脉冲由T0(P3.4 )输入D 、由外部计数脉冲计数为131.072ms ,若系统晶振频率为12MHz,则最大定时时间为65.536ms 。
实验五定时器T1的应用
【实验目的】
1、掌握CC2530的定时器查询方式使用方法;
2、掌握CC2530GPIO 的配制方法;
3、掌握IAR 编译环境的使用;
【实验设备】
【实验步骤】
第一步:打开...\IAR 基础实验\Timer1\Timer1.eww 工程
第二步:选择Debug 或Release 工程配置,配置正确的配置选项和文件,请参照基础实验一,通过点击Project 下拉菜单的Rebuild All项来编译应用工程,如下图
第三步:按CTRL+D 键或从Project 下拉菜单中单击“Download and Debug”菜单项,下载
应用程序
第四步:按F5 键或者从Debug 下拉菜单中单击“go”菜单项,运行应用程序。
第五步:查看实验结果,CC2530EN网关板上四个LED 指示灯的变化情况
【实验总结】
通过本次实验,不仅掌握了CC2530的定时器查询方式使用方法,还掌握了CC2530GPIO 的配制方法以及编译环境的使用;总的来说,这次实验让我收获很大,学到了很多实际应用的东西,希望下一次实验能有更大的进步。
单片机原理及应用技能比赛模拟试题(五)一、填空题1、当定时器T0工作在方式3时,要占用定时器T1的 TR1 和 TF1 两个控制位。
2、在定时器T0工作方式3下,TH0溢出时, TF1 标志将被硬件置1去请求中断。
3、在定时器T0工作方式3下,欲使TH0停止工作,应执行一条 CLR TR1 的指令。
4、使用定时器/计数器1设置串行通信的波特率时,应把定时器/计数器1设定作方式 2,即自动重新加载方式。
5、当计数器产生计数溢出时,把定时器/计数器的TF0(TF1)位置“1”。
对计数溢出的处理,在中断方式时,该位作为中断标志位使用;在查询方式时,该位作状态位使用。
6、在定时器工作方式1下,计数器的宽度为16位,如果系统晶振频率为6MHz,则最大定时时间为 131.072ms ,若系统晶振频率为12MHz,则最大定时时间为 65.536ms 。
7、8051单片机内部设有两个16位定时器/计数器,即 T0 和 T1 。
8、T0由两个8位特殊功能寄存器 TH0 和TL0 组成,T1由 TH1 和 TL1 组成。
9、定时时间与定时器的工作方式、计数初值及振荡周期有关。
10、MCS-51的定时器/计数器作计数器时计数脉冲由外部信号通过引脚 P3.4 和 P3.5 提供。
11、MCS-51的定时器/计数器T0的门控信号GATE设置为1时,只有 INT0 引脚为高电平且由软件使 TR0 置1时,才能启动定时器/计数器T0工作。
12、当T0为方式 3 ,T1为方式 2 的时候,8051单片机的定时器可提供3个8位定时器/ 计数器。
1、MCS-51有5个中断源,2个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择。
2、外中断请求标志位是 IE0 和 IE1 。
3、 RETI 指令以及任何访问 IE 和 IP 寄存器的指令执行过后,CPU不能马上响应中断。
4、8051单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把 PC的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送 PC ,使程序执行转向程序存储器中的中断地址区。
一、AT89C51实验目的:
1.有两个定时/计数器,本试验中,将T1作为定时器用,定时50ms,T0作为计数器用,被计数的外部输入脉冲信号从单片机的P3.4接入,最大计数值为0ffffh。
单片机将在每50ms内对脉冲计数并送数码管实时显示,并利用T1定时从P3.7口输出周期为200ms占空比50%的方波。
2.用PROTEUS设计、仿真基于AT89C51单片机的脉冲计数与定时。
3.学会使用VSM虚拟示波器和计数/定时器
二、PROTEUS电路设计
本设计的电路原理图如图所示,这个设计都在ISIS平台中进行。
1.从PROTEUS库中选取元器件
①at89c51.bus:单片机
②7SEG-BCD-GRN:七段带译码BCD绿色数码管,
③button:按键
2.虚拟测试仪器
①vsm虚拟计数/定时器
单击工具栏,再在对象选择器中选中COUNTER TIMER(计数/计时器),打开其属性编辑况,单击运行模式下的下拉菜单如图,可以选择计数、频率、计时模式。
当前设置为计数模式。
②vsm虚拟示波器
单击工具栏,再在对象选择器中选中OSCILLOSCOPE,将P3.7与C信道连接。
三、原程序设计、生成目标代码文件
1.流程图
主程序流程
2.程序代码设计
四、proteus仿真
五、思考题
修改程序实现1S内对脉冲计数并送四位数码管实时显示,最大计数值为0ffffh,将COUNTER TIMER 属性设为频率,利用工具栏中的激励源DCLOCK作为脉冲输入源与p3.4口相连。
实验三定时器和中断实验一、实验目的1、学习51单片机内部定时器的使用方法。
2、掌握中断处理程序的方法。
3、掌握数码管与单片机的连接方法和简单显示编程方法。
4、学习和理解数码管动态扫描的工作原理。
二、实验内容1、使用定时器T0,定时1秒,控制P1口发光管循环点亮。
2、使用定时器T0,定时1秒,控制1个数码管循环显示数字0~9,每秒钟数字加一。
3、使用软件定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。
4、使用定时器T0,定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。
三、实验电路图四、实验说明1、数码管的基本概念(1)段码数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。
本次实验使用的是共阴数码管,公共端是1、6,公共端置0,则某段选线置1相应的段就亮。
公共端1控制左面的数码管;公共端6控制右面的数码管。
正面看数码管的引脚、段选线和数据线的对应关系为:图1 数码管封装图图2 数据线与数码管管脚连接关系段码是指在数码管显示某一数字或字符时,在数码管各段所对应的引脚上所加的高低电平按顺序排列所组成的一个数字,它与数码管的类型(共阴、共阳)(2)位码位码也叫位选,用于选中某一位数码管。
在实验图中要使第一个数码管显示数据,应在公共端1上加低电平,即使P2.7口为0,而公共端6上加高电平,即使P2.6口为1。
位码与段码一样和硬件连接有关。
(3)拉电流与灌电流单片机的I/O 口与其他电路连接时,I/O 电流的流向有两种情况:一种是当该I/O 口为高电平时,电流从单片机往外流,称作拉电流;另一种是该I/O 口为低电平时,电流往单片机内流,称为灌电流。
一般I/O 的灌电流负载能力远大于拉电流负载能力,对于一般的51 单片机而言,拉电流最大4mA,灌电流为20mA。
一般在数码管显示电路中采用灌电流方式(用共阳数码管),可以得到更高的亮度。
本实验电路中采用拉电流方式(用共阴数码管)。
定时器 t1 的初始化和初值的计算方法本文介绍了定时器 t1 的初始化和初值的计算方法,包括硬件和软件两方面的考虑,以帮助读者更好地理解和使用定时器 t1。
定时器 t1 是一种广泛应用于嵌入式系统中的计时器,它可以用于实现各种定时任务。
定时器 t1 的初始化和初值的计算方法是定时器使用的关键步骤。
在实际应用中,需要考虑硬件和软件两方面的因素来确定定时器 t1 的初始化和初值。
首先,从硬件角度考虑,定时器 t1 通常由一个计数器和一个时钟源组成。
计数器的计数速度与时钟源的频率相关。
因此,在初始化定时器 t1 时,需要根据时钟源的频率计算出计数器的计数速度,从而确定定时器 t1 的初值。
此外,还需要考虑定时器 t1 的工作模式,如单脉冲模式或连续计数模式,以确定计数器的计数方式。
其次,从软件角度考虑,定时器 t1 的初始化和初值计算方法与硬件类似。
需要根据时钟源的频率和定时器 t1 的工作模式计算出计数器的计数速度,从而确定定时器 t1 的初值。
此外,在软件层面上,还需要考虑定时器 t1 的触发方式,如中断触发或轮询触发,以及定时器 t1 的计数器溢出后的处理方式。
综上所述,定时器 t1 的初始化和初值的计算方法需要综合考虑硬件和软件两方面的因素。
在实际应用中,需要根据具体的时钟源频率、定时器 t1 的工作模式和触发方式等因素来确定定时器 t1 的初始化和初值。
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。