在测量控制中, 常常需要有实时时钟和计数, 以实现定时 (或延时) 控制以及对外界事件进行计数。80C51内部的两个定时器/计数器都具有这两种功能, 在设计和实现时用到了多个专用寄存器, 需要对这些寄存器进行设置, 在教学中学生不太容易理解, 本文使用Proteus和Keil设计实现一个秒表解释定时器/计数器工作原理、工作方式, 效果较好。
1 Proteus和Keil简介
Proteus是英国Labcenter electronics公司研发的EDA工具软件, 是多种型号单片机系统的设计与仿真平台, 能实现单片机与外设的电路系统、软件系统的设计与仿真, 在仿真过程中, 用户可以用鼠标单击开关、键盘、电位计、可调电阻等动态外设模型, 使单片机系统根据输入信号做出相应的响应, 并将响应处理结果实时地显示在LED、LCD等动态显示器件上, 实现了实时交互式仿真。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统, 是目前最流行开发MCS-51系列单片机的软件, 它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案, 通过一个集成开发环境 (uVision) 将这些部份组合在一起。
Keil与Proteus连接成功后, 可以在keil调试程序, 单步、全速、设置断点、观察变量的值等, 也可以在Proteus做硬件方面的模拟, 如按按键、改变可调电阻的阻值等, 这个时候keil都会有反应的。
2 定时器/计数器工作原理
80C51内部设有两个16位的可编程定时器/计数器, 即定时器0 (T0) 和定时器1 (T1) , 它们分别由两个8位专用寄存器组成, 即T0由TH0和TL0构成, T1由TH1构成, 每个寄存器可以单独访问, 用于存放定时或计数器初值。定时器方式寄存器TMOD用于选定定时器的工作方式, TCON用于控制定时器的启动与停止, 保存T0、T1的溢出和中断标志。当定时器工作在计数方式时, 外部事件通过引脚T0 (P3.4) 和T1 (P3.5) 输入。
3 计时秒表的设计实现
3.1 计数方式
3.1.1 计数方式1 (没有使用中断)
(1) Protues电路设计。
如图1所示。
(2) 源程序设计。
实验中, 定时器/计数器0 (T0) 作计数器用, 被计数的外部输入脉冲信号 (1kz) 从单片机的P3.4 (T0) 接入。单片机将对脉冲计数, 并将寄存器TH0和TH1的值分别送四位数码管实时显示。教学中, 可以通过改变计数的外部输入脉冲的频率改变计数快慢。
Keil C51高级语言
在Keil中可以看到C语言程序编译后生成的汇编代码。
3.1.2 计数方式2 (使用中断)
(1) Protues电路设计:图1。
(2) 源程序设计:汇编程序略。
实验中, 定时器/计数器0 (T0) 作计数器用, 被计数的外部输入脉冲信号 (1kz) 从单片机的P3.4 (T0) 接入。计数寄存器初值设为FFFF, 单片机对脉冲计数一次, 计数将发生溢出中断, 执行T0中断服务程序。
3.2 计时方式
3.2.1 rotues电路设计:将图1中的外部输入计数脉冲去掉
如图2所示。
3.2.2 源程序设计:汇编程序略
实验中, 定时器/计数器0 (T0) 作计时器用, 计数器的加1信号由振荡器的12分频信号产生, 如果晶振为12MHz, 则计数周期为1μs (如果晶振为6MHz, 则计数周期为2μs) 。程序中TMOD为计时方式1, M=216=65536, 如果要产生1ms的定时时间, 则需“加1”1000次 (计数值为1000) , 计时初值X=M-计数值=65536-1000=64536=0xFC18。教学中, 可以通过改变计时工作方式, 分别进行计时初值的设置, 让学生理解各种工作方式计时初值的计算方法。
4 结语与展望
秒表的设计实现能帮助学生较好地掌握计时器/计数器工作原理及实现方法, 理解汇编语言和C51语言设计方法;使用Proteus仿真, 整个过程与真实的软件、硬件调试过程相似, 有利于学生理解。使用图1, 还可以改用外部中断来实现秒表。另外, 可以将秒表设计扩展为六位秒表, 可复位秒表, 倒计时秒表, 可实时交互设置计时时间的秒表等。
摘要:本文使用Proteus, Keil C51通过秒表的设计实现帮助学生掌握计时器/计数器工作原理及实现方法, 以提高单片机课程的教学效果。
关键词:秒表,计时器/计数器,Proteus,Keil C51
参考文献
[1] 张靖武.单片机系统的PROTEUS设计与仿真[M].北京:电子工业出版社, 2008.
[2] 张齐.单片机系统设计与开发:基于Proteus单片机仿真和C语言编程[M].北京:机械工业出版社, 2008.
【定时器/计数器教学设计】相关文章:
实验3定时计数器实验06-06
计数器电路设计论文04-17
计数器电路设计论文提纲11-15
单片机课程设计-00-99手动计数器设计04-12
单片机课程设计_简易频率计数器04-23
基于单片机的多用途定时器的设计分析论文04-19
古人计数教学反思08-16
《古人计数》教学反思06-30
郭丽《古人计数》教学反思04-18
定时跑教学反思04-15