Ⅰ 单片机可控制流水灯汇编程序 要求:按一下亮一个,再按一下第二个亮,第一个熄灭
/************************************
编写者:XP
学习单片机一个星期,这是我自己写的*/
#include<reg52.h>
sbit Key=P3^2;
sbit LED_1=P1^0;
sbit LED_2=P1^1;
/**********************************
*********延时函数*****************/
void Delay(int del)
{ int i,j;
for(i=0;i<=42;i++)
for(j=0;j<=del;j++) ;
}
void main()
{ while(1)
{ if(Key==0)
{ Delay(10); //软件防抖,延时10ms
if(Key==0)
{ LED_1=0; //第一个灯亮
LED_2=1; //
Key=1;
Delay(250);
if(Key==0)
{ Delay(10); //软件防抖,延时10ms
LED_1=1; //第一个灭
LED_2=0;} //第二个亮
}
}
Delay(300);
Key=1;
}
}
Ⅱ 51鍗旷墖链猴纴璁╃涓涓𨱔浜锛岀浜屼釜浜锛岀涓涓𨱔锛屼竴鐩村埌绗8涓𨱔闀夸寒锛佺浜屾″惊鐜锛岀7涓𨱔浜锛
浣犺繖涓寰堢亩鍗曪纴娴佹按𨱔镄勯棿闅旀椂闂存湁浠涔堣佹眰钖楋纻8涓𨱔鎺ュ湪鍗旷墖链虹殑鍝涓狪O鍙d笂锛濡傛灉鍙宠佹眰鍙浠ヨ村嚭𨱒ワ纴娌℃湁镄勮瘽锛屾垜缁欎綘浠跨湡涓涓鍙戠粰浣
瀹屽杽涓涓
鐣欎笅镵旂郴鏂瑰纺锛屾墦鍖呭彂缁欎綘
Ⅲ 单片机间隔点亮一led灯的C语言程序
以下是一个单片机间隔点亮一LED灯的C语言程序,以8051单片机为例:
c
Copy code
#include
//包含了AT89C51的寄存器定义
void delay(unsigned int xms) //延时函数,xms为要延时的毫秒数
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
P1=0x00; //将P1口全部置为0,防止其它引脚影响
while(1)
{
P1=0xff; //点亮P1口第0个引脚上的LED灯友念行,0xff为二进制的11111111
delay(1000); //延时1秒
P1=0x00; //将P1口全部置好哗为0,熄灭LED灯
delay(1000); //延时1秒
}
}
上述程序的作用是在单片机的P1口上间隔高迟点亮一盏LED灯,每隔1秒钟灯的状态会发生一次变化,即由点亮状态变为熄灭状态,再由熄灭状态变为点亮状态。
Ⅳ 用c51单片机控制一个闪光灯循环闪光5次以后熄灭不再闪光,用C语言编程,求程序……
用C语言编程,求程序的方法:
#include//包含单片机寄存器的头文件
/****************************************函数功能:延迟一段时间
*****************************************/
Voiddelay(Void)//Void表示没有返回值,也没有传递参数。
{
Unsignedint我;定义一个最大值为65535的无符号整数。
For (I = 0;我< 20000;i++) //执行20000个空循环。
;//什么也不做,等待一个机器周期。
}
/*******************************************************
函数函数:主函数(C语言规则必须有且只能有一个主函数)。
********************************************************/空白主要(空白)
{
而(1)//无限循环。
{
P0=0xfe;//P1=11111110B,P0.0输出低电平。
延迟();//推迟一段时间。
P0=0XFF;//P1=11111111B,P0.0输出高电平。
延迟();//推迟一段时间。
}
}
单片机驱动LED光源程序:
#include//头文件。
定义uint无符号int
#定义uchar无符号字符
SbitLED1=P1^7;//定义。
空白delay_ms(单位);//带参数的ms级延时函数。
Voidmain()
{
而(1)
{
LED1=0;
Delay_ms(1000);
LED1=1;
Delay_ms(1000);
}
}
Voiddelay_ms(uintz)//delay子例程
{
使用Uintx,y;
For (x = z;X > 0;X -)
For (y = 110;Y > 0;Y -);
}
(4)单片机1个灯交替亮灭程序扩展阅读:
单片机应用分类:
一般类型:
这是关于微控制器的。例如80C51通用型单片机,它并不是为特定的目的而设计的;专用单片机是为某一类产品甚至某一种产品而设计生产的。例如,为了满足电子体温计的要求,芯片中集成了具有ADC接口的温度测量控制电路等功能。
主线:
这是由微控制器是否提供并行总线来区分的。总线微控制器一般安装有并行地址总线、数据总线、控制总线,这些引脚扩展并行外围设备可以通过串口与单片机连接。
另外,很多单片机都需要将外围设备和外围设备的接口集成在一块,所以在很多情况下不能并行扩展总线,大大降低了封装成本和芯片体积,这种单片机被称为非总线单片机。
控制类型:
这是关于微控制器的一般应用。一般来说,工业控制寻址范围大,计算能力强。家用电器的单片机大多是专用的。
它通常是小包装、低价格、高集成的外围设备和外围接口。显然,上述分类并不独特和严格。例如,80C51类单片机既是通用的,又是总线的,还可以用于工业控制。
Ⅳ 鍗旷墖链簂ed𨱔涓浜涓𨱔闂撮殧1绉
褰揿崟鐗囨満LED𨱔涓浜涓𨱔闂撮殧1绉掓椂锛屽彲浠ヤ娇鐢ㄤ互涓嬩唬镰佸疄鐜帮细
// 鍒濆嫔寲IO鍙 P1 = 0xFF; // 璁剧疆寤舵椂镞堕棿 while (1) { P1 = 0x00; // 寤舵椂1绉 for (int i = 0; i < 10000; i++) { // 绌哄惊鐜 } P1 = 0xFF; // 寤舵椂1绉 for (int i = 0; i < 10000; i++) { // 绌哄惊鐜 } }
鍦ㄤ笂杩颁唬镰佷腑锛屾垜浠棣栧厛灏哖1鍙h剧疆涓哄叏𨱔鐘舵侊纴铹跺悗浣跨敤涓涓寰鐜灏哖1鍙h剧疆涓哄叏浜鐘舵侊纴骞跺欢镞1绉挜挓銆傛帴镌锛屾垜浠灏哖1鍙h剧疆涓哄叏𨱔鐘舵侊纴骞跺啀娆″欢镞1绉挜挓銆傝繖镙凤纴LED𨱔灏变细涓浜涓𨱔闂撮殧1绉掋
闇瑕佹敞镒忕殑鏄锛屼笂杩颁唬镰佷腑镄勫欢镞舵椂闂村彲浠ユ牴鎹瀹为檯𨱍呭喌杩涜岃皟鏁达纴浠ヨ幏寰楁洿绮剧‘镄勯棿闅旀椂闂淬傛ゅ栵纴濡傛灉浣跨敤镄勬槸STM32绯诲垪鍗旷墖链猴纴杩橀渶瑕佸湪鍒濆嫔寲浠g爜涓閰岖疆GPIO鍙d负杈揿嚭妯″纺銆
Ⅵ 实现单片机信号灯1-8依次循环点亮的程序怎么写
把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零。因为你要5种花样。主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭。依次下去