基于Proteus的51单片机包含仿真实例五十六、定时器/计数器T0的外部计数实例
发布时间
阅读量:
阅读量
该实例采用定时器T0和计数器T0的外部模式来统计按键数量,并将结果显示于P1端口用于8位LED状态显示;该程序设计在每次按键触发时增加计数器数值
2、在keil c51中新建工程ex44,编写如下程序代码,编译并生成ex44.hex文件
#include <reg51.h> //包含头文件
定义全局变量counter为无符号char类型。
用于记录按键次数的全局变量。
函数main没有参数并执行循环。
将counter初始化为零值。
使输出端P1的所有LED熄灭。
配置定时器T0以计数模式运行。
定时器T0的高八位赋值为255-1(即256-2)。
定时器T0的低八位赋值也为255-1(即256-2)。
允许发生计数中断事件。
触发总中断事件。
启用计数值计算功能。
在无限循环中不断执行以下操作:
将当前按键次数赋值给端口P1输出。
此计数器T0采用中断服务模式,在每个时钟周期内触发一次事件处理。该函数通过中断源INTERRUPT Bit 1进行触发,并使用引脚0进行配置以实现稳定可靠的工作状态。块状代码结构清晰地展示了计数器的工作流程:每当按下按键时会递增一次计数值。
3、在proteus中新建仿真文件ex44.dsn,电路原理图如下所示:
5、导入ex44.hex文件至at89c51系统中,并启动仿真环境进行测试。手动触发按键并持续监控程序运行状态。通过下图可见,在
全部评论 (0)
还没有任何评论哟~
