#include<reg51h>
//设CPU是时钟12MHz的8051系列
data unsigned char ms;
sbit K1=P0^0;
void SetupTimer0()
{
TMOD &= 0XF0; //仅保留T1信息
TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器
TH0 = 256-250;//定时每025ms中断一次
TL0 = 256-250;
TR0 = 1; //开启定时器
ET0 = 1; //定时器0中断打开
}
void Timer0_ISR() interrupt 1 //中断服务程序
{
static data unsigned char us250;
if (++us250>=4) {++ms; us250=0;}
}
void main()
{
data unsigned char p1,p2;
ms=0;
SetupTimer0();
EA = 1; //全局中断打开
K1 = 1;
while(1)
{
if (K1) {P1=p1=0XFF; P2=p2=0x00; ms=0; continue;}
if (ms<150) continue;
ms=0;
p1<<=1; P1=p1;
p2<<=1; p2|=1; P2=p2;
}
}
//! 没有硬件方案,以下只包含逻辑
int push_count = 0;//记录按钮按下次数
//! 处理亮灯
void light(int led_num)
{
switch(led_num)
{
case 1:
{
;// 点亮 灯1
} break;
case 2:
{
;// 点亮 灯1
} break;
default:
; //灭 所有 灯
break;
}
}
//! 处理按键中断
void push_interrupt()
{
//判断按键是否有效
push_count ++;
if(1 == push_count)
{
light(1);
}
else if(2 == push_count)
{
light(2);
}
else if(8 == push_count)
{
light(0);
push_count = 0;
}
}
// 请依照你的硬件输入相对值
#define KEY_ACTIVE_LEVEL (请输入)
#define KEY1_PIN (请输入)
#define KEY2_PIN (请输入)
#define LED_ON_LEVEL (请输入)
#define LED_LOW_LEVEL (请输入)
#define LED_PIN (请输入)
unsigned char is_key1_press(void)
{
reutrn (KEY1_PIN == KEY_ACTIVE_LEVEL)l
}
unsigned char is_key2_press(void)
{
reutrn (KEY2_PIN == KEY_ACTIVE_LEVEL)l
}
void set_led_to(unsigned char value)
{
LED_PIN = value;
}
void main(void)
{
while(1)
{
if( is_key1_press() && is_key2_press())
{
set_led_to(LED_ON_LEVEL );
}
else
{
set_led_to(LED_OFF_LEVEL );
}
}
}
# include<reg52h>
sbit led1=P1^0;
int main(void)
{
led1 = 0;
return 0;
}
大概是这样吧
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。[2]
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机 *** 作系统中都能够得到适用,且效率显著。[3]
冯诺依曼在1945年提出了现代计算机的若干思想,被后人称为冯诺依曼思想,这是计算机发展史上的里程碑。自1945 年至今大多采用其结构,因此冯诺依曼被称为计算机之父。他的体系结构计算机由运算器、控制器、存储器、输入设备、输出设备五大部件构成。 C语言拥有一套完整的理论体系经过了漫长的发展历史,在编程语言中具有举足轻重的地位。[4]
发展历史
C语言诞生于美国的贝尔实验室,由DMRitchie以B语言为基础发展而来,在它的主体设计完成后,Thompson和Ritchie用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI c”,截至2020年,最新的C语言标准为2017年发布的 “C17”。[5]
C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。
如果是PC机需要配置一块MOXA的TTL板卡来实现高低电瓶输出:
1、先设定LED灯是低电平亮还是高电瓶亮,这里假设低电平;
2、设置一个定时器,在定时器里面写代码,分别发送高、低电瓶值可实现交替闪耀;
例程:
#include <reg51h>sbit led1 = P0^0;
sbit led2 = P0^1;
void delayms(unsigned int nMS)
{
unsigned char i,j;
while (nMS--)
{
for (i = 12; i>0; i--)
{
for (j = 246; j>0; j--);
}
}
}
void main()
{
while(1)
{
led1 = 0;
led2 = 1;//一亮一灭
delayms(100);
led1 = 1;
led2 = 0;//交换亮灭
delayms(100);
}
}
以上就是关于如何用C语言编写一个LED灯渐变的程序全部的内容,包括:如何用C语言编写一个LED灯渐变的程序、C语言控制LED灯、用2个按键控制1个led,当2个按键都按下时led才亮,请用c语言程序,按键肖斗,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)