版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页51单片机按键控制花样灯/*****************************************************本程序实现用按键控制花样灯。**当K1按下时,灯从0xfe向左跑一遍;**当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置;**当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。**当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。**当K5键按下时,结束任意正在进行的程序,使LED灯全部熄灭。*******************************************************/*************************************************连接方法:P0接独立按键JP5;P2接LED灯接口JP1************************************************************/#includereg52.h//头文件,函数声明#includeintrins.h//定义按键所在位sbitK1=P0^0;sbitK2=P0^1;sbitK3=P0^2;sbitK4=P0^3;sbitK5=P0^4;unsignedcharled;unsignedcharj;voiddelayms(unsignedcharms)//1ms标准延时{while(ms){for(j=0;j110;j++);//还是无法设置比较标准的延时,如1S等;所以应该用定时器延时才最准确}}voidmain(){//P2=led;unsignedinti;while(1){/**********************************************当K1按下时,灯从0xfe向左跑一遍;**********************************************/if(K1==0)delayms(10);//消除键盘抖动if(K1==0){led=0xfe;for(i=0;i7;i++)//i可以去8的倍数,表示本电路执行多少次{//led=0x7f;//P端口的初定义要在循环外面,不然会使效果错乱P2=led;//由于这里已经初设一个灯,所以for里面要加上这一个delayms(100);//起初这里设置500MS,使按键每按一下灯彩走一个,不能达到要求。led=_crol_(led,1);P2=led;delayms(100);}while(!K1);//这里强调松开就没再次执行程序P2=led;//说明执行完上面的程序的最后状态}//P2=led;//如果把本行放在这里,虽然在开头中没有说明程序烧写好之后就先显示一个灯,但由于本行在if外面,所有最后还是会显示/************************************************************当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置************************************************************/if(K2==0)delayms(10);if(K2==0){led=0x7f;for(i=0;i7;i++){P2=led;delayms(100);led=_cror_(led,1);P2=led;delayms(100);}while(!K1);P2=led;delayms(100);for(i=0;i7;i++){led=_crol_(led,1);P2=led;delayms(100);//跑回去怎么就那么快呀?}//此时led=0x7f}/******************************************************当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。**************************************************/if(K3==0)delayms(10);//消除抖动if(K3==0){led=0xfe;delayms(200);for(i=0;i7;i++){P2=led;delayms(200);led=led1;//备注led=_crol_(led,1)等于led1||led7;P2=led;delayms(200);if(led==0x00)break;//这里一定要有个break,跳出循环,然后别忘了此时的状态是00,而不是7f}while(!K1);led=0x7f;P2=led;delayms(200);for(i=0;i7;i++){led=led1;P2=led;delayms(200);}}/*****************************************************当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。*****************************************************/if(K4==0)delayms(10);//消除抖动if(K4==0){for(i=0;i4;i++)//执行四次{led=0xf0;P2=led;delayms(500);led=0x0f;P2=led;delayms(500);}}/*********************************************************当K5键按下时,结束任意正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年学校常见安全事故案例
- 2026年食品产品设计与开发
- 2026年煤矿安全员岗位安全风险
- 2026年幼儿园食品安全家园栏
- 2026年日用品工业设计方案
- 轻微伤协议书达成多久调解
- 解除合伙协议书的法定理由
- 父亲和子女房产交易协议书
- 酒店年终工作总结及工作计划
- 古代诗人名人范成大人物介绍课件
- 保险学 课件 第九章 健康保险与意外伤害保险
- 欠薪分期支付协议书
- 2025年度福建省职业院校技能大赛高职组(烹饪赛项)考试题库(含答案)
- 礼盒水果采购合同协议
- 新版施工现场临时用电安全管理合同书模板
- 海南地理会考试卷及答案2024
- 东莞市职工基本医疗保险暂行规定实施细则
- 生产经营单位主要负责人和安全管理人员安全培训资料
- 职业道德与法治综合练习2024-2025学年中职高教版
- 2024年《过秦论》深度解读:逐字逐句翻译与剖析2篇
- TCWAN0062-2023焊接机器人离线编程规范
评论
0/150
提交评论