单片机轻松入门之二:流水灯
由于P0口内部没有上拉电阻,所以P0在用作输入、输出时要外接上拉电阻,一般取10k左右 。
程序如下:
#include
#define uchar unsigned char
#define uint unsigned int //宏定义
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数据表
uchar i,j,a;
void delay(uchar x) //延时子函数
{
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main() //主程序
{
while(1)
{
for(a=0;a<8;a++) //有八个灯,做八次循环
{
P0=table[a]; //P0口依次取表中的数据,将对应的灯点亮
delay(100); //延时大约100ms
}
}
}
程序的另一种实现方法:
#include
#include
#define uchar unsigned char
void delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
uchar temp;
temp=0xfe;
P0=temp;
while(1)
{
temp= _crol_(temp,1); //temp后面的1,表示左移的位数
delay(100);
P0=temp;
delay(100);
}
}
仿真结果如下图所示:
【单片机轻松入门之二:流水灯】
推荐阅读
- 51单片机常见的六个问题
- 掌握这些装修小知识 你的家居生活更轻松
- 单片机独立按键与矩阵按键
- PIC单片机通讯例程
- 卫浴柜清洁不再烦恼 教你轻松搞定
- 轻松回归自然,美式乡村卧室窗帘搭配方法分析
- MCS-51单片机的时序单位
- FLASH芯片W25Q16中放入图片后用单片机读取显示
- PIC单片机关于PAGE和BANK
- SAM4E单片机之旅——3、LED闪烁之定时器中断