实现定时器定时 1 秒钟,LED 亮灭显示
实现定时器定时 1 秒钟,LED 亮灭显示
要求
每隔一秒钟,实现LED灯的显隐转换
实验代码
/************************************************************************************** * 定时器1中断实验 * 实现现象:实现定时器定时 1 秒钟,LED 亮灭显示 注意事项: ***************************************************************************************/ #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit led = P2^0; /******************************************************************************* * 函 数 名 : Timer1Init * 函数功能 : 定时器1初始化 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void Timer1Init() { TMOD|=0X10;//选择为定时器1模式,工作方式1,仅用TR1打开启动。 TH1=0XFC; //给定时器赋初值,定时1ms TL1=0X18; ET1=1;//打开定时器1中断允许 EA=1;//打开总中断 TR1=1;//打开定时器 } /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { Timer1Init(); //定时器1初始化 while(1); } /******************************************************************************* * 函 数 名 : void Timer1() interrupt 3 * 函数功能 : 定时器0中断函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void Timer1() interrupt 3 { static u16 i; TH1=0XFC; //给定时器赋初值,定时1ms TL1=0X18; i++; if(i==1000) { led = ~led; i=0; } }
效果图
【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】粘你一身大鼻嘎 : http://www.cnblogs.com/wjw1014
【CSDN地址】粘你一身大鼻嘎 : https://wjw1014.blog.csdn.net/
【Gitee地址】粘你一身大鼻嘎 :https://gitee.com/wjw1014
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】粘你一身大鼻嘎 : http://www.cnblogs.com/wjw1014
【CSDN地址】粘你一身大鼻嘎 : https://wjw1014.blog.csdn.net/
【Gitee地址】粘你一身大鼻嘎 :https://gitee.com/wjw1014