标题: [分享] [打印本页]

作者: 维修员熊    时间: 2013-3-26 21:47
标题: [分享]
本人新手初学单片机 写了段简单的代码 具体功能是 流水灯随着蜂鸣器的鸣叫逐渐全部亮起并且数码管也依次显示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编辑过]





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1