标题:
试利用80C51的定时/计数器T0,在P1.0引脚上产生周期为1秒,正脉冲宽度为2us的脉冲...
[打印本页]
作者:
咔嚓单片机
时间:
2016-3-6 09:48
标题:
试利用80C51的定时/计数器T0,在P1.0引脚上产生周期为1秒,正脉冲宽度为2us的脉冲...
试利用80C51的定时/计数器T0,在P1.0引脚上产生周期为1秒,正脉冲宽度为2us的脉冲串,假设时钟频率为12MHZ。
(1)写出编程思路或画出流程图
(2)编写程序
作者:
无量寿经
时间:
2016-3-6 10:23
以下内容来源于
《51单片机轻松入门-基于STC15W4K系列》
功能:P0.0口LED亮1秒灭1秒方式闪烁(T0中断方式)
// 晶振频率22.1184MHz
#include "STC15W4K.H" // 包含 "STC15W4K.H"寄存器定义头文件
sbit LED=P0^0;
unsigned char counter;
void main()
{
TMOD=0x01; // 定时器0_16位计数
TH0=0x70; // 经计算定时20ms初值是0x7000
TL0=0x00;
TR0=1; // 定时器开始运行
ET0=1; // 开定时器0中断开关
EA=1; // 开总中断开关
while(1);
}
void Timer0() interrupt 1
{
static Count=0; // 静态变量计数器,静态变量只在首次运行时赋值1次*/
Count++; // 每次中断计数器加1
if(Count>=50) // 如果计数器超过50
{
LED=!LED; // 取返P0.0
Count=0; // 计数器清零
}
TH0=0x70; // 重装定时初值
TL0=0x00;
}
作者:
无量寿经
时间:
2016-3-6 10:26
以下内容来源于
《51单片机轻松入门-基于STC15W4K系列》
功能:P0.0口LED亮1秒灭1秒方式闪烁(查询方式)
// 内部RC时钟频率22.1184MHz
#include "STC15W4K.H"
sbit LED=P0^0;
void main()
{
unsigned char counter=0; // 软件计数器
TMOD=0x01; // 定时器0_16位计数
TH0=0x70; // 经计算定时20ms初值是0x7000
TL0=0x00;
TR0=1; // 定时器开始运行
while(1)
{
if(TF0==1)
{
TF0=0; // 没使用中断的情况下必定会用软件查询清零
TH0=0x70;
TL0=0x00;
counter++;
}
if(50==counter) //20ms×50=1000ms即1S(中断时重装定时常数占用时间忽略不计)
{
counter=0;
LED=~LED;
}
}
}
作者:
咔嚓单片机
时间:
2016-3-6 10:39
无量寿经 发表于 2016-3-6 10:26
以下内容来源于《51单片机轻松入门-基于STC15W4K系列》
功能:P0.0口LED亮1秒灭1秒方式闪烁(查询方式)
我的天,怎么复杂吗,怎么修改
作者:
无量寿经
时间:
2016-3-6 12:32
两个例程,你随便选一个改下IO口定义。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1