15. 定时计数器 T0 作定时应用技术(一) 1. 实验任务 用 AT89S51 单片机的定时/计数器 T0 产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加 1,秒计数到 60 时,自动从 0 开始
硬件电路如下图所示 2. 电路原理图 图 4
1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的 P0
0/AD0-P0
7/AD7 端口用 8 芯排线连接到“四路静态数码显示模块”区域中的任一个 a-h 端口上;要求:P0
0/AD0 对应着 a,P0
1/AD1 对应着 b,……,P0
7/AD7 对应着 h
(2. 把“单片机系统”区域中的 P2
0/A8-P2
7/A15 端口用 8 芯排线连接到“四路静态数码显示模块”区域中的任一个 a-h 端口上;要求:P2
0/A8 对应着 a,P2
1/A9 对应着 b,……,P2
7/A15 对应着 h
4. 程序设计内容 AT89S51 单片机的内部 16 位定时/计数器是一个可编程定时/计数器,它既可以工作在 13 位定时方式,也可以工作在 16 位定时方式和 8 位定时方式
只要通过设置特殊功能寄存器 TMOD,即可完成
定时/计数器何时工作也是通过软件来设定 TCON 特殊功能寄存器来完成的
现在我们选择 16 位定时工作方式,对于 T0 来说,最大定时也只有65536us,即 65
536ms,无法达到我们所需要的 1 秒的定时,因此,我们必须通过软件来处理这个问题,假设我们取 T0 的最大定时为 50ms,即要定时 1 秒需要经过 20 次的 50ms 的定时
对于这 20 次我们就可以采用软件的方法来统计了
因此,我们设定 TMOD=00000001B,即 TMOD=01H 下面我们要给 T0 定时/计数器的 TH0,TL0 装入预置初值,通过下面的公式可以计算出 TH0=(