1k.c

来自「电子设计大赛:波形合成与分解(包含所有电路图讲解、程序代码)(853594759」· C语言 代码 · 共 35 行

C
35
字号
#include<reg51.h>  //  包含51单片机寄存器定义的头文件
sbit D1=P3^7;  //将D1位定义为P2.0引脚
unsigned char Countor; //设置全局变量,储存定时器T0中断次数
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
   	EA=1;                  //开总中断
	ET0=1;                 //定时器T0中断允许         
	TMOD=0x01;             //使用定时器T0的模式2
	TH0=(65536-500)/256; //定时器T0的高8位赋初值
	TL0=(65536-500)%256; //定时器T0的高8位赋初值
	TR0=1;                 //启动定时器T0
	Countor=0;            //从0开始累计中断次数
	while(1)//无限循环等待中断
       ;
 }
/**************************************************************
函数功能:定时器T0的中断服务程序
**************************************************************/
void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数
                 //其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器 
 {
   Countor++;   //中断次数自加1
	if(Countor==2)  //若累计满20次,即计时满1s
	{
	   D1=~D1;     //按位取反操作,将P2.0引脚输出电平取反
		Countor=0;  //将Countor清0,重新从0开始计数
	}
  		TH0=(65536-500)/256; //定时器T0的高8位赋初值
	TL0=(65536-500)%256; //定时器T0的高8位赋初值
 }

⌨️ 快捷键说明

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