历史上的今天
今天是:2025年04月14日(星期一)
2020年04月14日 | 51单片机之LED流水灯
2020-04-14 来源:eefocus
数据类型
在写流水灯程序之前,我们了解一下数据类型。

使用对应数据时,应该注意溢出问题,若溢出编译器也有可能编译通过,但是执行结果是错误的。
流水灯
操作LED前必须先了解LED是什么电平点亮,LED连接在什么引脚上,通常需要查找原理图。此处我的8个LED连接在P2口,为低电平点亮(因为灌电流比拉电流能力强)。
1、函数式循环流水灯:
#include "reg52.h"
#include #define led P2 //对整个LED的P2端口进行定义 /* 延时函数 */ void delay(unsigned int del) //10ms * del { unsigned int i,j; for(i=0; i } /* while(i--);//延时 10 * i us;因为单指令为1us; */ void main() { unsigned char i; //使用char 节省RAM led=0xfe; //初始状态将LED0点亮,1111 1110 while(1) { for(i=0;i<7;i++) //将led循环左移一位 { led=_crol_(led,1); delay(10); //大约延时100ms,LED显示比较快 } // 此时 led为 0111 1111 for(i=0;i<7;i++) //将led循环右移一位 { led=_cror_(led,1); delay(10); } } } 逻辑移位式(补0)流水灯 #include "reg52.h" #include #define led P2 //对整个P2端口进行操作 /* 延时函数 */ void delay(unsigned int del) //10ms * del { unsigned int i,j; for(i=0; i ; } /* while(i--);//大概延时10us;因为单指令为1us; */ void main() { unsigned char i; led=0xfe; //初始状态将LED0点亮 while(1) { for(i=0;i<8;i++)// 1111 1110 { P2=~(0x01< delay(10); //大约延时100ms,比较快哦 } for(i=0;i<8;i++) { P2=~(0x80>>i); //将1右移i位,然后将结果取反赋值到P2口 delay(10); } } } 这两种方式效果一致。至此,LED的操作结束啦。 for(j=0; j<1827; j++); for(j=0; j<1827; j++)
史海拾趣
|
Keil中头文件很重要,对于51单片机常使用reg51.h、reg52.h或AT89x51.h。 本人是一个单片机c语言的菜鸟,不太会用Keil。我的电脑里安装的Keil就不能使用AT89x51.h头文件,还以为软件里没有这个头文件呢,所以每次参考网友的程序时都 ...… 查看全部问答> |
|
现在提及嵌入式,就谈到了嵌入式操作系统。 难道大家不再关心下面硬件和底层的内容了么? 如果这样,嵌入式发展不是应该纳入软件门类?和我们硬件有什么关系呢?… 查看全部问答> |
|
1.这种接法的优点就是起振容易,适应频率范围比较宽。具体频率范围本人不记得了。 2.这种接法的优点接法简单,缺点是不那么容易起振,C1,C2要合适。 … 查看全部问答> |
|
我想在C模块中调用C++模块中的函数。 目前,当我的C++模块中没有使用C++的库函数,我能正常调用 如: pro.cpp void pro(void) { printf(\"test\\n\"); } 我在c中使用loadModule()与symFindByName()等函数,最终能 ...… 查看全部问答> |
|
这个基于WinCE的条码采集器设备在电池用光情况下再充电打开竟然会初始化,把原先的一些配置都改了,大家有办法搞定这个? 这个基于WinCE的条码采集器设备在电池用光情况下再充电打开竟然会初始化,把原先的一些配置都改了,大家有办法搞定这个?… 查看全部问答> |
|
在PB中选择了\"朝鲜语\",编出的nk中可以显示韩文,但是\'\\\'符号显示不对,显示成了\"中间有一横杠的\'W\'\",这是为什么?并且如果是\"英语\"/\"中文\"下,activesync工作正常,在\"朝鲜语\"下activesync也连不上??? 另外我的evc中怎么显示韩语啊????? ...… 查看全部问答> |
|
刚接触STM32,还只看了时钟系统、中断、GPIO和通用定时器的普通定时功能。 编译器MDK4.0,借固件库写个了用TIM2控制灯闪的程序。不优化时正常,优化后(优化等级1~3都试过)闪烁频率翻倍了!本来一秒一次,现在一秒两次。 使用RCC_GetClocks ...… 查看全部问答> |
|
小弟学习uCOS-II 已经有一段时间,打算移植到STM32上。在这之前想先学习一下uCOS-II在51上的移植。最近在论坛上看到一个移植程序,就去看了一下,发现有好多不懂。先请教几个问题。 这些都在 OS_CPU_A.asm 中。 NAME&nbs ...… 查看全部问答> |
|
圆点博士微型四轴飞行器2011年11月3日完成情况: 1.圆点博士微型四轴飞行器线路图之电机控制 2. 圆点博士微型四轴飞行器线路图之传感器 3 .圆点博士微型四轴飞行器线路图之2.4G无线控制 4. 圆点博士微型四轴飞行器线路图之锂电池充电 未完待 ...… 查看全部问答> |




