本文目录一览:
- 1、用c语言控制两个灯的闪烁
- 2、用c语言写一个由单片机PO口的一个引脚控制一个发光二极管闪烁?
- 3、c语言点亮十六个小灯亮灭闪烁原理
- 4、用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!
- 5、想用c语言写一个按键控制小灯闪烁的程序,就是按一下闪烁,再按就熄灭
- 6、用单片机C语言怎么写用状态机实现按键控制LED灯闪烁这个程序
用c语言控制两个灯的闪烁
delay()这个函数在哪?你没写啊,开头也没有声明。然后 如果你是想实现两个灯闪烁,你写的内容都要放在第一个while(1){} 里,因为while(1)这循环没有break语句,除了你调用子函数,其他的不会被执行到的。
用c语言写一个由单片机PO口的一个引脚控制一个发光二极管闪烁?
给你个参考;
void delay();
main()
{
while(1){ //设P1.0引脚去驱动LED,
P1=0xff;
delay(500);//延时500mS
P1=0xfe; //P1.0引脚反复输出高电平,低电平,LED即闪烁;
delay(500);//延时500mS
}
c语言点亮十六个小灯亮灭闪烁原理
用C语言实现点亮16只小灯亮灭闪烁的状态,首先我们定义一个两个字节的变量x,并赋了初始值,每一位表示一只灯的状态,1为亮,0为灭,正好是16只小灯。
单片机16个小灯亮灭闪烁c语言,需要利用到MSP430F247单片机的P1和P4端口控制16个发光二极管D1~D16,发光二极管有8种花样显示,显示速度可调,由P2端口的三个按键控制,分别是模式按键、加速按键、减速按键。模式按键按下一次,花样显示模式变换一次,按下8次后循环到第一种模式,加速和减速按键可以控制LED的闪烁速度。十六进制数也就是十进制数的把这些数转化为二进制数,然后进行按位与运算
用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!
C语言实现LED灯闪烁控制配套51单片机开发板。
#include //包含单片机寄存器的头文件
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void) //两个void意思分别为无需返回值,没有参数传递。
{
unsigned int i; //定义无符号整数,最大取值范围65535。
for(i=0;i20000;i++) //做20000次空循环。
; //什么也不做,等待一个机器周期。
}
/*******************************************************
函数功能:主函数 (C语言规定必须有也只能有1个主函数)。
********************************************************/
void main(void)
{
while(1) //无限循环。
{
P0=0xfe; //P1=1111 1110B, P0.0输出低电平。
delay(); //延时一段时间。
P0=0xff; //P1=1111 1111B, P0.0输出高电平。
delay(); //延时一段时间。
}
}
单片机驱动LED灯的源程序:
#includereg52.h //头文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定义。
void delay_ms(uint);//mS级带参数延时函数。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延时子程序
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
扩展资料:
单片机应用分类:
通用型:
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。
通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
参考资料来源:百度百科-单片机
想用c语言写一个按键控制小灯闪烁的程序,就是按一下闪烁,再按就熄灭
具体是怎么个不行法。
像你这种按键程序
因为单片机速度非常快,在你按一下按键时,单片机已经循环了很多次程序。
因此这样就会导致,当你按下时,其实k一直==0 一直在执行动作。
所以这种按键需要判断按键是第一次按下(由弹起状态下按下)。而不是一直按着导致的动作。
方法:建一个变量保存上一次按键的值
char LastKey;
LastKey = 1;
while(1)
{
if(k == 0 LastKey == 1) //按下,且上一次检测按键时是弹起状态
{ //这样才能保证每次按下时只执行一次,
//而不是一直在执行
Delay1ms(20);
if(k == 0) //确定是第一次按下,执行动作
{
if((n % 2) == 0)
{
LedFlash();
}
else
{
P0 = 0xFF;
}
n++;
}
}
LastKey = k; //保存按键状态
}
用单片机C语言怎么写用状态机实现按键控制LED灯闪烁这个程序
#include STC12C52.H
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^2;
sbit p1_6=P1^6;
void delay(uchar delay_time)
{
uchar n;
uint m;
for (n=0;ndelay_time;n++)
{
for(m=0;m10000;m++);
}
}
void keyscan()
{
if(key==0)
{
delay(5);
if(key==0)
while(!key)
{
p1_6 = 0;
delay(20);
p1_6 = 1;
delay(20);
}
}
}
void main()
{
WDT_CONTR = 0x3C;
while(1)
{
keyscan();
WDT_CONTR = 0x3C;
}
}
这个功能可以用中断来实现,当然,现在我写的这个也可以实现。由于你用的晶振频率不知道,所以你自己修改一下延时时间,再把头文件改一下,就可以了,我试验了,可以实现改功能。