本人新手初学单片机 写了段简单的代码 具体功能是 流水灯随着蜂鸣器的鸣叫逐渐全部亮起并且数码管也依次显示1——8,直到8个流水灯全部亮起 然后重新开始; 我把源码发出来大家看看还可以有更简单的写法吗;请大家多多指教 还得问一下怎么把代码发的和编译器里面一样的格式
/***************************************************************************************************
实现流水灯随着蜂鸣器的鸣叫次数逐渐亮起并且数码管也依次显示1--8,直到8个流水灯全部亮起然后重新开始
***************************************************************************************************/
#include //调用51系列单片机头文件
sbit laba=P2^3; //声明蜂鸣器端口
sbit dula=P2^6; //声明数码管段选锁存器锁存端
sbit wela=P2^7; //声明位选锁存器锁存端
#define uint unsigned int //宏定义
#define uchar unsigned char
uchar code table[]={ //显示数字编码(共阴)
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void yanshi(uint); //声明延时子函数
void main() //主函数
{
uchar n; //声明变量n
P1=0xff; //给P1口赋初值
while(1) //大循环
{
laba=0; //打开蜂鸣器
n++; //n自加
P1=P1<<1; //将P1口左移一位
dula=1;
P0=table[n];
dula=0;
wela=1;
P0=0xfe;
wela=0;
yanshi(100); //延时大约100毫秒
laba=1; //关闭蜂鸣器
if(n==0x8) //如果n加到8就进执行语句
{
P1=0xff; //初始化P1口
n=0; //初始化变量n
}
yanshi(1000); //延时大约1秒
}
}
void yanshi(uint ysm) //延时函数
{
uint i,j;
for(i=ysm;i>0;i--)
for(j=120;j>0;j--);
}
[此贴子已经被作者于2013-3-26 21:53:15编辑过]
|