1、一盏一盏的操作:即先令第一盏灯亮,延时,再令它熄灭,延时,再让下一盏灯重复操作即可;(略)
2、利用数组方法点亮:先定义一个数组,其中存入相应8盏灯亮的数字(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盏灯,第二盏灯....亮),再利总线,按顺序点亮八盏灯;(后面对数码管的控制将用类似的方法)
3、利用移位方法点亮(这种方法,程序看起来简单些,但实质上还是一个一个的控制)。下面是位移方法的程序
共阳,P2端控制。
下面的代码是两种灯得控制:
#includetypedef unsigned char uchar;
typedef unsigned int uint;
void delay(uint num)
{
uint x=110;
for(num;num>0;num--)
for(x;x>0;x--);
}
void LED1()//LED共阳接法,接在P2端,流水灯
{
uint i;
uchar led;
led=0xfe;
for(i=1;i<=8;i++)
{
P2=led;
delay(10000);
led<<=1;
}
}
void LED2()//LED共阳接法,接在P2端,灯间隔亮
{
uint i;
uchar led;
led=0xff;
led=0x01;
for(i=1;i<=8;i++)
{
P2=~led;
delay(5000);
led<<=1;
}
}
void main()
{
//LED1();
LED2();
}
关键字:C51 单片机 LED灯
引用地址:
C51单片机LED灯的控制
推荐阅读最新更新时间:2024-11-13 12:05
51单片机T2定时器应用
定时器T2有三种工作模式,其中MODE 2为波特率发生器。 1、Mode 2:波特率发生器 串口方式1和3的波特率计算如下: 波特率bps=振荡器频率freq/ 则:RCAP2=65536-(freq/32/bps) 如果freq=11.0592MHZ,bps=9600,则:RCAP2 = 65500 RCAP2H = 255;RCAP2L = 220 此时的程序设置如下: uint a, bps = 96; // 9600 bps SCON |= 0x50; // 0101 0000串口方式1,允许接收 a=3456/bps; a=~a; RCAP2H = a/256; R
[单片机]
51单片机定时器程序超简单实现数码管24小时时钟显示
用74hc573实现数码管24小时时钟显示,对于74hc573芯片如果不了解可以看看文件里面的手册,不多说先上代码 /*以下程序是根据74hc573芯片的锁存器 **原理来写的 **若有不懂的地方可以看看文件夹的芯片 **手册或者百度*/ #include reg52.h typedef unsigned char u8; typedef unsigned int u16; //串口定义没什么好说的 sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4; u8 code mabiao ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
[单片机]
HT1621驱动段式液晶的C51程序
/*========================================================================== HT1621动段式液晶的C51程序 HT1621是台湾Holtek公司推的段码LCD动控制芯片,同步串行接口,最多可以控制128段 驱动方式可选1/2、1/3、1/4 Duty和1/2、1/3 Bias。 供电电压为2.4~5.2V,无需外部振荡电路。简单易用。 以下是应用HT1621驱动的LCD模块串行模式的C51范例。 =============================================================================*/
[单片机]
单片机值得学吗?会单片机能找什么工作?
我是在2011年自学的单片机,我本专业是电气工程,读了2年后整个系被学校强制安排成电梯专业。 临近毕业,我才知道这个专业有多坑,工作环境恶劣、体力活、出了事故要负责任、24小时待命的工作模式、最可悲的是工资还低的可怜。 辛辛苦苦读书20多年去做这种工作,我不甘心。 所以还没正式毕业,我就果断转行,后面无意间接触到嵌入式开发。 又从嵌入式开发了解到单片机,因为相对比较容易上手,学习的东西少。 也是从那个时候开始,解开了我对智能硬件到底是怎么做的这个疑问。 大概学了3个多月,把51开发板上的每个硬件都控制了一遍,并且基于开发板做了一个电子时钟的小项目。 然后就去找工作,因为是转行,又没项目经验,公司基本都不要。 后面在某宝买了一个智能
[单片机]
基于STM32点亮LED灯
我们在控制模块中所使用的处理器是Cortex-M4系列中的STM32F407VE,这个处理器芯片有100个引脚,其中包含一些电源供电引脚、外部晶振引脚、SWD程序烧录引脚和我们最常用的GPIO功能引脚: 实际上,我们使用的GPIO并不多,我们只使用了3路AD采集、Uart1和Uart2、I2C1、Tim3和Tim4的PWM输出引脚以及几个普通GPIO脚(具体使用情况请参照《控制模块》)。STM32有丰富的硬件资源供我们使用,例如:AD采集、串口、I2C、SPI、SDIO、CAN、USB_OTG_FS、USB_OTG_HS、I2S、PWM输出、PWM采集、GPIO输入输出等。在这一节里我们将完成STM32的第一个小程序:点亮LE
[单片机]
51单片机如何访问外部接口芯片?
单片机怎要访问外部接口芯片? 答:因为MCS-51单片机的外部数据存储器RAM和I/O口是统一编址的 。因此,用户可以把外部64KB的数据存储器RAM空间的一部分作为扩展外围I/O的地址空间。这样,单片机就可以像访问外部RAM存储器那样访问外部接口芯片,对其进行读/写操作了。
[单片机]
单片机并行口的使用方法
P0口、P2口和P3的第二功能使用办法: 开始学习时一般对P0口、P2口和P3口的第二功能使用办法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有对应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上 不能作为通用I/O口使用 也并不是 不能 而是(使用者) 不会 将其作为通用I/O口使用。你完全能在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令
[单片机]
功耗再降低 飞思卡尔推新款汽车电控系统MCU解决方案
近日,飞思卡尔公司针对汽车电子系统推出了一款新型Qorivva微控制器及两款S12 MagniV系列最新末端节点设备(end-node device),以满足汽车电子系统对网络带宽和数据处理能力及数据安全性日益增长的要求,此外,新型MCU的工作功耗也得到降低。
随着车内电控单元数量的增多(超过100个,执行代码超过1000万行),各单元之间的连通性也需随之增强。目前,平均每辆汽车内部联网中用来输送信号的铜线长达几英里,重达150磅(68千克)左右。在单个ECU芯片上集成更多的功能并提升执行代码的智能度能够有效减少汽车电子系统中ECU的数量,如此一来,可以节省大量的铜线布置,减轻了整车重量,从而提升了燃油效率。
目前,ISO
[单片机]