#include #include"intrins.h" typedef unsigned char u8;/*char 为1字节,8位 */ typedef unsigned int u16; /*一般情况下用int,因为unsigned char取值范围为0~255;而int为65535; 用u16,u8使代码的可移植性高 */ #define led P0 //sbit led=P0^0; //两种表示方式 void delay(u16 i) { while(i--); }//运用延时函数达到使led灯闪烁的目的 void main() { /* while(1) { led=1; delay(50000);//i=1时,约等于是10us,所以50000是500ms led=0; delay(50000); } //这段代码实现一个led灯的闪烁。即亮了0.5秒后,暗0.5秒。但是由于delay函数是不精确的,所以时间不是准确的0.5s */ /*u8 i; led=0x01;//表示16进制,第一个led灯 0000 0001 delay(50000); while(1) { for(i=0;i<8;i++) { led=(0x01< delay(50000); } } //这段代码实现了八个led灯的依次点亮,实现了流水灯的功能 */ u8 i; led=0x01; delay(50000); while(1) { for(i=0;i<7;i++) { led=_crol_(led,1); delay(50000); } for(i=0;i<7;i++) { led=_cror_(led,1); delay(50000); } } /*这段代码实现了走马灯的功能1~8依次亮,接着8~1亮 因为运用了_cror_(a,b)函数,所以需要引用头文件instrins.h 至于为什么上一段代码是i<8,这一段是i<7; 其实是根据具体操作来的,亲故可以自行体验下他的用法 第二段代码是led=(0x01< 最后一段代码是led=_crol_(led,1);是运用了左移函数,且赋值给了led,所以led每次循环的起始源是不同的。 值在i=0循环的时候就变成了0010起始,而上一段还是0001起始。 */ }
上一篇:51单片机教程 第一个51程序 :点亮一个发光二极管
下一篇:51单片机实验(一)定时/计数器及其中断
推荐阅读最新更新时间:2024-11-17 00:47
设计资源 培训 开发板 精华推荐
- FP5139升降压模块
- 校内选拔赛555发声器
- LTC6990MPS6#TRMPBF 全范围 VCO 振荡器的典型应用,具有任何 NDIV 设置(正频率控制,fMIN 至 fMAX,VIN = 0V 至 VSET)
- PTN5110 USB PD TCPC PHY IC典型应用
- LT3091MPDE 产生极低输出电压的典型应用
- DC104B-C,演示板,通用低噪声 8 阶滤波器构建块(100:1,fc 至 50khz)
- LT3663EDCB 5V 降压转换器的典型应用
- 使用 Microchip Technology 的 LM285EOA-1.2 的参考设计
- 2-LED 用于平视显示器的通用 LED 驱动器
- LTC3119IUFD 3.3V、750kHz 宽输入稳压器的典型应用电路