利用单片机内部定时器T0以中断方式计时,实现每一秒钟使P2.0的输出状态发生一次反转,形成方波输出。

在uVision4 集成开发环境中使用汇编语言或C语言编写程序,编译并排查错误后,使用HC6800-ES实验板以连续方式运行程序,观察P2.0端口的LED。
感激不尽!!

第1个回答  2015-11-25
#include<reg52.h> //包含52系列头文件
#define th0 0x3c
#define tl0 0xb0 //50ms at 12MHz Fosc
#define T1sAt50msCount 20 //1s计数值
sbit WaveOut1=P2^0; //定义 方波1输出 端口
void Timer0() interrupt 1 //定时器T0 中断 函数

{
static uchar t50ms=0;
TL0=tl0;
TH0=th0;
if(++t50ms>=T1sAt50msCount)
{
t50ms-=T1sAt50msCount;
WaveOut1=~WaveOut1; //方波1输出 端口 电平翻转
}
}
void TimerInit() //定时器初始化 函数
{
TMOD=0x01; //T0 16位定时器
EA=1; //允许系统中断
ET0=1; //允许T0中断
TH0=th0;
TL0=tl0; //50ms 初值
TR0=1; //T0开始计时
}
void main() //主函数
{
TimerInit(); //调用 定时器初始化 函数
while(1); //循环系统
}
直接打字的,未编译本回答被提问者和网友采纳
第2个回答  2019-12-23
我宁愿欺骗不会高到我宁愿欺骗不会高到

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网