




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称: 单片机实验 题 目: 实验三 定时实验 学生姓名: 专 业: 电子信息科学与技术 班 级: 学 号: 指导教师: 张涛 实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。二、实验原理(一)、单片机定时器/计数器的结构1定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器T0、定时器T1、定时器方
2、式寄存器TMOD和定时器控制寄存器TCON组成。2定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON完成。 1)定时/计数器方式寄存器TMODTMOD为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0GATEM1M0GATEM1M0(89H) 定时器1 定时器0TMOD的低4位为T0的方式字段,高4 位为T1的方式字段,它们的含义完全相同。 (1)M1和M0:方式选择位。定义如下:M1 M0工 作 方 式功 能 说 明 0 0方 式 013位计数器 0 1方 式 116位计数器 1 0
3、方 式 2自动再装入8位计数器 1 1方 式 3 (2):功能选择位。时,设置为定时器工作方式;时,设置为计数器工作方式。(3)GATE:门控位。当GATE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,即允许外中断、启动定时器。TMOD不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。复位时,TMOD所有位均置0。 2)定时器/计数器控制寄存器TCON TCON的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。定时器控制字TCON的格式如下:
4、TCON(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88HTF1TR1TF0TR0IE1IT1IE0IT0 各位含义如下:(1) TCON.7 TF1:定时器1溢出标志位。当定时器1计数满产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。(2)TCON.6 TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。(3)TCON.5 TF0:
5、定时器0溢出标志位。其功能及操作情况同TF1。(4)TCON.4 TR0:定时器0运行控制位。其功能及操作情况同TR1。(5)TCON.3 IE1:外部中断1()请求标志位。(6)TCON.2 IT1:外部中断1触发方式选择位。(7)TCON.1 IE0:外部中断0()请求标志位。(8)TCON.0 IT0:外部中断0触发方式选择位。TCON中的低4位用于控制外部中断,与定时器/计数器无关。TCON的字节地址为88H,可以位寻址,清溢出标志位或启动定时器都可以用位操作指令。3、定时器/计数器的初始化由于定时器/计数器的功能是由软件编程确定的,所以,一般在使用定时器/计数器前都要对其进行初始化。
6、初始化步骤如下:(1)确定工作方式对TMOD赋值。(2)预置定时或计数的初值直接将初值写入TH0、TL0或TH1、TL1。定时器/计数器的初值因工作方式的不同而不同。设最大计数值为M,则各种工作方式下的M值如下:方式0:方式1:方式2:因定时器/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下:X = M -计数值4、启动定时器/计数器工作将TR0或TR1置“1”。GATE = 0时,直接由软件置位启动;GATE = 1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。三、实验内容1、见图一。假设单片机晶振频率设定为12MHz。完成以下要求,且通过
7、虚拟示波器观看波形。A、使用定时器1 以方式1 产生周期为500us 的等宽方波连续脉冲,并由P1.0 输出。用中断方式来完成。#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit P10=P10;void main() /定时器T1以工作方式1产生周期为500us的等宽连续脉冲 TMOD=0x10; /设置定时器T1为方式1计数 P10=0; /给P10置0 EA=1; /总中断开 ET1=1; /允许定时器T1中断 TR1=1; /启动定时器T1 TH1=(65536-250)/256
8、; /给T1装入初值 TL1=(65536-250)%256; /给T1装入初值 while(1); /无限循环等待void int1() interrupt 3P10=!P10;TH1=(65536-250)/256;TL1=(65536-250)%256;B、完成A功能,用查询方式来完成#include<reg51.h>sbit P10=P10;void main() /用查询方式产生周期为500us的等宽连续脉冲 TMOD=0x10; /设置定时器T1为方式1计数 P10=0; /给P10置0 EA=1;/总中断开 ET1=1;/允许定时器T1中断 TR1=1;/启动定时器T
9、1 TH1=(65536-250)/256; /给T1装入初值 TL1=(65536-250)%256; /给T1装入初值 while(1) while(TF1=0); /计数溢出标志位 TF1=0; /将该计数溢出标志位清“0” P10=!P10; TH1=(65536-250)/256; TL1=(65536-250)%256; C、使用定时器0 以方式2 产生周期为200us 的等宽方波连续脉冲,并由P1.1 输出。用中断方式来完成。#include<reg51.h>sbit P11=P11;void main()/定时器T0以工作方式2产生周期为200us的等宽连续脉冲 T
10、MOD=0x02;/设置定时器T0为方式2 P11=0; TH0=TL0=256-100; /装入初值 ET0=1; /允许T0定时中断 EA=1; /总中断开 TR0=1; /开启定时器T0 while(1); /无限循环void int0() interrupt 1 P11=!P11; TH0=TL0=256-100;D、编程使T0 工作于定时工作方式1,产生500us 等宽方波从P2.7 输出。T1 工作于计数工作方式2,其计数外部脉冲由T0 产生,即P2.7 引脚与P3.5(T1 引脚)相连,T1 每计数100 个,P1.2 取反输出一次。#include<reg51.h>
11、sbit P27=P27;sbit P12=P12;void main() TMOD=0X61; /设置定时器T0为方式1定时,T1为计数 P27=0; TH0=(65536-250)/256; /给定时器T0装入初值 TL0=(65536-250)%256; TH1=TL1=100; /给定时器T1装入初值 EA=1; /总中断开 ET0=1; /允许T0中断 ET1=1; /允许T1中断 TR0=1; /开启定时器T0 TR1=1; /开启定时器T1 while(1); /无限循环等待void int0() interrupt 1 P27=!P27; TH0=(65536-250)/256
12、; TL0=(65536-250)%256;void int1() interrupt 3 P12=!P12;图一2、见图二。假设单片机晶振频率设定为12MHz。完成以下功能。(按键元件名称 BUTTON)A、 通过外部按键(INT1 引脚连接)以中断方式控制LED 的上移。(利用连接 R3的按键实现LED点亮的上移)#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit LED1=P33;uint k;void delay(uint k)uint i,j;for(i=0;i<k;i+
13、)for(j=0;j<125;j+);void int1_int() interrupt 2P1=0x7f;delay(500);P1=0xbf;delay(500);P1=0xdf;delay(500);P1=0xef;delay(500);P1=0xf7;delay(500);P1=0xfb;delay(500);P1=0xfd;delay(500);P1=0xfe;delay(500);void main()uchar i,a,b;while(1)P1=0xfe;delay(500);P1=0xfd;delay(500);P1=0xfb;delay(500);P1=0xf7;del
14、ay(500);P1=0xef;delay(500);P1=0xdf;delay(500);P1=0xbf;delay(500);P1=0x7f;delay(500);if(P1=0xff)P1=0xfe;delay(500);if(LED1=0)EA=1;EX1=1;IT1=0; B、 通过外部按键(T0 引脚连接)以中断方式控制LED 的下移。(利用连接R2的按键实现LED点亮的下移)#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit LED1=P34;uint k;uchar nu
15、m;void delay(uint k)uint i,j;for(i=0;i<k;i+)for(j=0;j<125;j+);void int1_int() interrupt 1TH0=1;TL0=1;num+;if(num=200)P1=0x7f;delay(500);P1=0xbf;delay(500);P1=0xdf;delay(500);P1=0xef;delay(500);P1=0xf7;delay(500);P1=0xfb;delay(500);P1=0xfd;delay(500);P1=0xfe;delay(500);void mian()while(1)P1=0xf
16、e;delay(500);P1=0xfd;delay(500);P1=0xfb;delay(500);P1=0xf7;delay(500);P1=0xef;delay(500);P1=0xdf;delay(500);P1=0xbf;delay(500);P1=0x7f;delay(500);if(P1=0xff)P1=0xfe;delay(500);if(LED1=0)TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;EA=1;ET0=1;TR0=1; C、 通过INT0 引脚外界4 输入与门扩展外部中断,编程实现扩展出的四个开关以中断方式,分
17、别实现LED 的上移、下移、亮和灭。#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit Key = P32;uchar counter,j;/保存按键情况/12M晶振 1MS 基准延时函数void delay1ms(uchar i)uchar j;while(i-) for(j=0;j<120;j+);void main(void)EA = 1;/开启总中断EX0 = 1;/允许外部中断0中断IT0 = 1;/选择外部中断0为跳变沿
18、触发方式P2 = 0xff;/设置P2口状态为 1111 1111while(1);void Timer1()interrupt 0/外部中断 0 中断执行函数counter = P2&0xff;while(!Key);switch(counter)case 0xfd:/LED下移P1 = 0xfe;while(Key) delay1ms(3000);P1 = _crol_(P1,1);break;case 0xfe:/LED上移P1 = 0xfe;while(Key)delay1ms(3000);P1 = _cror_(P1,1);break; case 0xfb:/LED 灯全亮。P1 = 0x00; break;case 0xf7:/LED 灯全灭。P1 = 0xff; break;default:break;图二四、思考题(本题选做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025餐馆的门面租赁合同示范文本
- 2025四川省农村土地承包合同
- 2025企业聘请软件开发合同模板
- 2025年质子交换膜燃料电池(REMFC)发电装置项目合作计划书
- 2025中级社会工作者职业资格笔试模拟测试完美版带解析
- 律师审核离婚协议书3篇
- 安全网交易须知3篇
- 工程建设贷款的合同范本版3篇
- 建筑施工合同保证金有哪些规定3篇
- 公证处委托书的有效性3篇
- 干部选拔任用工作全部系列表格
- 胃癌合并冠心病的护理查房
- 北师大版五年级数学下册公开课《包装的学问》课件
- 风电行业产品质量先期策划手册
- 社区日间照料中心运营方案
- 二年级下册期末教学质量分析P的课件
- 初中数学北师大七年级下册(2023年新编)综合与实践综合与实践-设计自己的运算程序 王颖
- 北师大版英语八年级下册 Unit 4 Lesson 11 Online Time 课件(30张PPT)
- 可燃气体报警系统安装记录
- 伸臂式焊接变位机设计总体设计和旋转减速器设计毕业设计
- 血细胞仪白细胞五分类法原理和散点图特征
评论
0/150
提交评论