51单片机 timer0定时器控制led 每隔0.5秒点亮 并在2秒内熄灭 如此不断重复。求c语言程序 谢谢

如题所述

第1个回答  2016-07-26
这个和晶振有关的,假设是12M吧
你给我邮箱,我发你一个工具吧,可以生成代码的

#include <reg51.h>
sbit LED=P1^1;

void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0D8;
TL0 = 0x0F0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
unsigned int time;
void main(void)
{
time=0;
LED=0;//1关 0开;
InitTimer0();
while(1);
}

void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0D8;
TL0 = 0x0F0;
time++;
if(time==200)//第二秒
{
LED=1;
}
if(time==500)//第五秒
{
LED=0;
time=0;
}
}本回答被提问者和网友采纳

用c语言编写,单片机LED灯并用定时器延时,每隔0.5秒使LED依次点亮
include "reg51.h" sfr AUXR = 0x8e; \/\/如果是用的AT89C51,把这句删了sbit led=P1^0; \/\/定义LED为P10,可以改为其他IOunsigned char jishi; void Timer0Init(void)\/\/50毫秒@12.000MHz{ AUXR &= 0x7F;\/\/定时器时钟12T模式 TMOD &= 0xF0;\/\/设置定时器模式 TL0 ...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include <reg52.h>...

请教c51单片机,c语言编程,关于控制LED灯闪烁频率?
同时开放了定时器中断,并将定时器中断优先级设置为1(即高优先级)。在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内...

怎么样用51单片机点亮一个二极管,让它以0.1秒的频率连续闪烁之后停顿1秒...
闪烁的LED include<reg51.h> define uchar unsigned char define uint unsigned int sbit LED=P1^0;\/\/延时 void DelayMS(uint t){ int x,y;for(x=110;x>0;x--)for(y=z;z>0;z--);} \/\/主程序 void main(){ while(1){ LED=~LED;DelayMS(100);} } ...

如何编程实现51单片机每隔 t 时间发出一个脉冲?求C语言详细编程...
void timer1() interrupt 3 using 1 {\/\/定时器每0.01秒一次中断 TH1 = PERIODH;TL1 = PERIODL;if(iCount){\/\/计数未到0,计数器-1 iCount--;} if(iPulseCount){\/\/计数未到0,计数器-1 iPulseCount--;} } main(){ TMOD = 0X10;\/\/方式1 EA = 1;\/\/总中断允许 ET1 = 1;\/\/...

定时器延时问题(51单片机,c语言)
sbit LED1=P2^3; \/\/数码管个分位 uchar ms20,s1;\/\/20毫秒和1s变量定义(声明)\/\/定时器T0初始化,10ms秒初值 void InitTimer0(void){ TMOD=0x01;TH0=0x0D8;TL0=0x0F0;EA=1;ET0=1;TR0=1;} void Display(uchar dat4,uchar dat3,uchar dat2,uchar dat1){ static uchar k;P2...

跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
;假设通过P0口置低位控制二极管点亮MAIN: CLR CMAIN1: RRC A; MOV P0,A LCALL wait2 LJMP MAIN1;延时程序11.0592M的精震wait2: ;0.5s mov r5,#0ahwait22: mov r4,#5ah mov r3,#09bhwait21: djnz r3,wait21 djnz r4,wait21 djnz r5,wait22 ret 小石头198006 | 发布于2012-06-25 举报|...

求大神在keil上帮写51单片机C语言程序
\/\/第一个实验:\/\/假设8个LED阴极指向单片机,D11连接P0.1,D12连接P0.2 ... D18连接P0.7\/\/假设K1按键在P2.3引脚#include<reg51.h>#include<intrins.h>sbit k1=P2^3;\/\/假设K1按键在P2.3引脚void main(){P0=0xfe;while(1){if(k1==0){while(k1==0);P0=_crol_(P0,1);}}}...

51单片机如何控制超声波传感器 求C语言程序(一定要能用)100追加_百度知...
\/\/定时器1中断,用做超声波测距计时timer1() interrupt 3 \/\/ 定时器0中断是1号 {TH1=0;TL1=0; }*\/\/\/***\/\/显示数据转换程序void conversion(uint temp_data) { uchar ge_data,shi_data,bai_data ; bai_data=temp_data\/100 ; temp_data=temp_data%100; \/\/取余运算 shi_data=temp_data\/10 ;...

用LED灯显示倒计时10秒 51单片机C语言编程 跪求
dula=0; \/\/关段选 P0=0xff; \/\/消隐 wela=1; \/\/开位选 P0=0xfd; \/\/选通分的个位 wela=0; \/\/关位选 P0=0xff; \/\/消隐 delay(1); \/\/延时 dula=1; \/\/开段选 P0=table[n3]; \/\/送秒的十位 dula=0; \/\/关段选 P0=0xff; \/\/消隐 wela=1; \/\/开位选 P0=0xfb; \/\/选通秒...

相似回答