Ⅰ 51单片机LED灯亮的c语言程序
/* 程序详细功能介绍:
*利用取表的方法,使端口P0做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。
*在用表格进行程序设计的时候,要用以下的指令来完成
*(1).利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。
*(2).利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。
*因此,只要把控制码建成一个表,而利用MOVC 工,@A+DPTR做取码的操作,
*就可方便地处理一些复杂的控制动作.
*/
#include <AT89X51.H>
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x00,0xff,0x00,0xff,
0x01};
unsigned char i;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
if(table[i]!=0x01)
{
P0=table[i];
i++;
delay();
}
else
{
i=0;
}
}
}
Ⅱ 用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!
C语言实现LED灯闪烁控制配套51单片机开发板。
#include //包含单片机寄存器的头文件
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void) //两个void意思分别为无需返回值,没有参数传递。
{
unsigned int i; //定义无符号整数,最大取值范围65535。
for(i=0;i<20000;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灯的源程序:
#include<reg52.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;x>0;x--)
for(y=110;y>0;y--);
}
(2)c语言程序设计led扩展阅读:
单片机应用分类:
通用型:
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。
通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
参考资料来源:网络-单片机
Ⅲ 编写C语言程序,在“C语言编程训练系统”上完成LED显示功能
#include <stdio.h>
/* input to output; 1st version */
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
Ⅳ C语言编程控制LED灯亮灭
如果你LED的接口一个低电平,即0,灯就会亮,给一个高电平,1,就会灭。如果要一闪一闪的,只需给亮和灭的中间加延时,控制亮灭次数,可以使用一个循环。
Ⅳ 用c语言编程三个按键对应点亮三个LED灯的程序,AT89S52单片机,最好有原理图,谢谢。急求
这个也求?用按键点亮LED灯这个是51入门最基础的东西,真心想学的话,买块51的开发板,都带有例程,很快就可以入门的。建议你还是多看看资料把基础的东西学好。推荐你看一下《十天学会单片机和C语言编程》的视频教程对入门还是不错的。
三路抢答器提供你编程思路(按键扫描方式)参考,程序还是要根据你的硬件电路自己编写。
端口配置:
1、选择4个端口作为输入端口连接按键(独立按键,按键一端接单片机端口,另一端接地)。 三路为抢答的按键KEY1、KEY2、KEY3,一路为抢答后复位按键KEY0。
2、选择3个端口作为输出端口连接LED灯(高电平点亮还是低电平点亮要看你电路设计)对应为LED1、LED2、LED3。
编程思路:
1、初始设置一个抢答键按下与否的位标志变量:bit flag = 0;(没有抢答按键按下flag = 0,有抢答按键按下flag = 1)。
2、主程序按键扫描循环。
3、按键按下程序KEY1、KEY2、KEY3基本相同。以KEY1为列:
首先判断是否有抢答键按下(KEY1==0),如有抢答按键按下,延时10ms(消抖),再判断是否KEY1==0,如果KEY1==0说明KEY1抢答按键已经按下,然后再判断是否flag = =0,如果flag = =0,则点亮LED1(其他按键按下的话点亮相应的LED灯)、按键按下标志置“1”(flag = 1)。
4、复位按键程序判断KEY0按下并且flag = =1时,关闭所有LED灯、按键按下标志复位置“0”(flag = 0)。
Ⅵ 单片机c语言编程点亮led灯
0xaa就是1357亮,0x55就是2468亮,加个延时加个while就行了
Ⅶ 求用C语言编程实现51单片机的LED灯移动
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,b,c,d;
void delay()
{
uint i;
for(i=0;i<200;i++)
}
void anjian()
{
if(P1^0==0)
{
delay();
if(P1^0==0)
a=1;
}
if(P1^1==0)
{
delay();
if(P1^1==0)
b=1;
}
if(P1^2==0)
{
delay();
if(P1^2==0)
c=1;
}
if(P1^3==0)
{
delay();
if(P1^3==0)
d=1;
}
}
void main()
{
while(1)
{
anjian();
if(a==1)
....... //io口做相应的处理,这里你具体没说明,我都不知道怎么写了
if(b==1)
.......
if(c==1)
.......
if(d==1)
.......
}
}
Ⅷ 单片机C语言编程点亮LED灯
可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。 具体实现方法可以参考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循环点亮LED for(i=0; i<7; i++) { P1=_crol_(P1,1); // 左移一位,点亮下一位LED delay(55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}
Ⅸ 你好,我想问问你知道C语言编程显示LED灯是如何实现的吗
其实说白了,首先led灯要导通,才会亮,这个你懂的吧,然后呢,其实就是控制单片机的端口高低电平,然后呢,让led灯导通就亮了,在你编程的时候,对应使用哪个端口出高低电平,这个是在程序中一目了然的,那么高低电平再去让led灯亮灭,基本就是这样,不知道你听懂了没有
Ⅹ 用C语言编程实现8位led灯循环
这个是P4的配置
ANSB&=0XFF00;//管模拟输入模式
TRISB|=0X00FF;//端口设为输出模式
端口配置是这样的,