定时器计数器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图1-2 将T1计数的结果送P0口显示

(3)控制LED 灯左循环亮

用A T89C51单片机控制一组LED 灯左循环亮,采用50ms 延时子程序调用达到1S 延时,使用P0口输出控制发光二极管灯。电路图如图1-2所示,晶振采用12MHZ 。要求如下:

①用发光二极管灯左循环亮为输出值; ②利用单片机的定时器完成此项目; ③每1S 左循环一次。

图1-3 控制LED 灯左循环亮

三、实验程序

1. 用定时器T0查询方式控制P3口8位LED 闪烁

(1)分析:

用定时器0、方式1, 则TMOD =××××0001B

由于T 机器=12T 时钟=12 1/fosc=1us ,而方式1的最大定时时间为65.536ms ,所以可选择:50ms 。定时器初始值为:

TH0=(65536-50000)/256;//定时器T0的高8位赋初值

TL0=(65536-50000)%256;//定时器T0的低8位赋初值 (2)程序设计

先建立文件夹“SY 1-1”,然后建立“SY2-1”工程项目,最后建立源程序文件“SY 1-1.c”,输入如下源程序: #include // 包含51单片机寄存器定义的头文件 void main(void) {

TMOD=0x01; //使用定时器T0的方式1

TH0=(65536-50000)/256; /*定时器T0的高8位赋初值*/ TL0= (65536-50000)%256; /*定时器T0的低8位赋初值*/ TR0=1; //启动定时器T0

组长 学号 专业

班级

实验项目

实验1 定时器/计数器

课程名称 单片机原理

课程代码 试验时间

实验地点

成绩

教师签字:

一、实验目的

(1)了解80C51定时器/计数器的结构;

(2)掌握定时器/计数器方式寄存器TMOD 设置; (3)掌握定时器/计数器控制寄存器TCON 设置; (4)掌握定时器/计数器的初始化步骤; (5)掌握定时或计数初值的计算;

(6)掌握80C51定时器/计数器编程方法。 二、实验内容

(1)用定时器T0查询方式控制P3口8位LED 闪烁

使用T0工作于方式1,采用查询方式控制P3口8位LED 的闪烁周期为100ms ,即亮50ms ,熄灭50ms ,电路图如图1-1所示,设单片机晶振频率为12MHz 。

图1-1 用定时器T0查询方式控制P3口8位LED 闪烁

(2)将T1计数的结果送P0口显示

用AT89C51单片机控制LED 灯左循环亮,采用50ms 延时子程序调用达到1S 延时,使用P0口输出控制发光二极管灯。电路图如图1-2所示,设单片机晶振频率为12MHz 。

相关文档
最新文档