⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 30-14-3.c

📁 C51程序应用例子,自己的学习历程,希望可以帮到大家
💻 C
字号:
#define uchar unsigned char //定义一下方便使用
#define uint  unsigned int
#define ulong unsigned long
#include <reg52.h>     //包括一个52标准内核的头文件

sbit P10=P1^0; //要控制的LED灯
sbit K1=P3^0;   //按键K1
sbit K2=P3^1;   //按键K2
static uchar Tosc;//一个周期的时间
static uchar Duty;//占空比

void main(void)
{
TMOD=0x11; //T0和T1均选择工作方式1,16位定时器
TH0=0x3C;
TL0=0xB0; //定时时间为0.1s/周期
TH1=0x3C;
TL1=0xB0; //定时时间为0.1s/周期
ET0=1;     //使能T0溢出中断
ET1=1;
EA=1;    //使能CPU中断
TR0=0;   //T0禁止运行
TR1=1;  //唤醒T1,T1开始计数
while(1)     //无限循环
{
;
}
}

timer0(void) interrupt 1   //T0中断服务函数,占空比
{
if(Duty==0 && Tosc==0)Tosc=1; //消除都等于0时的Duty无限增长死循环
Duty++;
if(Duty==Tosc)
{
Duty=0;
P10=~P10;   //矩形波中的高低电平反转
TR1=1;   //开始T1计数
TR0=0;   //禁止T0计数,等待T1将其唤醒
}
}

timer1(void) interrupt 3 //T1中断服务函数,频率
{
if(Tosc==10)Tosc=0; //定时时间为1s
Tosc++;
TR0=1;   //开始T0计数
TR1=0; //禁止T1计数,等待T0将其唤醒
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -