找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2287|回复: 0
打印 上一主题 下一主题
收起左侧

[分享]

[复制链接]
跳转到指定楼层
楼主
ID:48574 发表于 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编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表