版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51单片机实训课程
流水灯
1单片机控制依次点亮一个发光二极管电路图2单片机控制依次点亮一个发光二极管编程思路3用位方式控制流水灯4用总线方式控制流水灯5用函数控制流水灯6用位方式、总线方式、函数控制流水灯各自的优点重点
1单片机控制依次点亮一个发光二极管编程思路2用位方式控制流水灯3用总线方式控制流水灯难点在单片机控制LED灯的方面,我们已经学习了不少的编程控制了,比如多盏灯的点亮,多盏灯的闪烁等等,是不是不用再学别的了?其实我们想让灯变化得更绚烂多彩些的话,还有一个技能是我们必须掌握的,那就是让灯“跑起来”!灯是怎么跑的呢?那么今天就让我们揭开庐山的“真面目”吧!情境引入项目任务要求让单片机的P0口位控制依次点亮一盏灯,点亮延时时间为500ms。用函数的方式来控制一盏灯循环左移或循环右移以实现流水灯的效果。流水灯控制硬件要求
流水灯控制电路原理图连线我们是用一组数据线即排线来连接P0口和8个LED灯。流水灯控制软件要求
流水灯控制一、位控制方式流水灯控制#include<reg52.h>#defineuintunsignedintvoiddelay(uintutime);sbitled1=P1^0;
//加载52系列单片机头文件//宏定义,将无符号整型定义为uint字符//声明带参数延时子函数//将P1口的第1位(即最末尾)定义为led1字符位控制流水灯参考程序(加载、声明、定义部分)
sbitled2=P1^1;sbitled3=P1^2;sbitled4=P1^3;sbitled5=P1^4;sbitled6=P1^5;sbitled7=P1^6;sbitled8=P1^7;
//将P1口的第2位定义为led2字符//将P1口的第3位定义为led3字符//将P1口的第4位定义为led4字符//将P1口的第8位定义为led8字符位控制流水灯参考程序(定义部分)voidmain(){while(1)
{
led1=0;
delay(500); led2=0; led1=1; delay(500);
//主函数入口//大循环//点亮第一个发光二极管//调用延时子函数//点亮第二个发光二极管//熄灭第一个发光二极管//调用延时子函数位控制流水灯参考程序(主程序部分)
delay(500); led3=0; led2=1; delay(500);
led4=0;
led3=1; delay(500); led5=0;
led4=1; delay(500);
//调用延时子函数//点亮第三个发光二极管//熄灭第二个发光二极管位控制流水灯参考程序(主程序部分)
delay(500); led6=0; led5=1; delay(500);
led7=0;
led6=1; delay(500); led8=0;
led7=1; delay(500); }}
//调用延时子函数//点亮第六个发光二极管//熄灭第五个发光二极管位控制流水灯参考程序(主程序部分)voiddelay(uintutime){uinti,j;for(i=0;i<utime;i++)for(j=0;j<115;j++);}
//声明延时子函数//定义变量i,j为无符号整型//延时约utime毫秒时间位控制流水灯参考程序(子程序部分)二、总线控制方式流水灯控制voidmain(){while(1)
{
P1=0xfe;
delay(500);
P1=0xfd; delay(500); P1=0xfb; delay(500); }}
//主函数入口//大循环//点亮第一个发光二极管//调用延时子函数//点亮第二个发光二极管//调用延时子函数//点亮第三个发光二极管//调用延时子函数总线控制流水灯参考程序(主程序部分) P1=0xf7;
delay(500);
P1=0xef; delay(500); P1=0xdf; delay(500); P1=0xbf; delay(500);
P1=0x7f; delay(500);
//点亮第四个发光二极管//调用延时子函数//点亮第五个发光二极管//调用延时子函数//点亮第八个发光二极管//调用延时子函数总线控制流水灯参考程序(主程序部分)三、函数控制方式流水灯控制#include<reg52.h>#include<intrins.h>#defineuintunsignedintvoiddelay(uintutime);
//加载52系列单片机头文件//加载函数包含文件//宏定义,将无符号整型定义为uint字符//声明带参数延时子函数函数控制流水灯参考程序(加载、声明、定义部分)voidmain(){uinta,i; while(1)
{
a=0xfe;
for(i=0;i<8;i++)
}}
//主函数入口//定义无符号整型变量a、i//大循环//点亮第一个发光二极管//实现1到8只LED灯循环点亮函数控制流水灯参考程序(主程序部分) { P0=_crol_(a,1); a=P0; mDelay(500); }
}}
//实现8盏灯依次从右到左点亮//将每次移位一次以后的结果送给P0口去显示//延时500毫秒函数控制流水灯参考程序(主程序部分)
总结单片机控制依次点亮一个发光二极管电路图用位方式控制流水灯的方法用总线方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2024版)国际海运货物跟踪与信息共享协议
- 2024年借款三方具体协议样本版B版
- 2024年全新版专业拉水运输服务合同范本版B版
- 江南大学《高分子材料学》2022-2023学年第一学期期末试卷
- 佳木斯大学《文艺美学》2021-2022学年第一学期期末试卷
- 2024司机保密承诺书与合同版B版
- 2024专业麻醉师聘用协议模板简化版版B版
- 暨南大学《内经》2021-2022学年第一学期期末试卷
- 违背方案审查申请表
- 济宁学院《田径Ⅰ》2021-2022学年第一学期期末试卷
- 护理质控组长岗位竞聘
- 苏教版六年级上册数学期中考试试题带答案
- 九年级历史下册(部编版)第17课 二战后资本主义的新变化(教学设计)
- 北京市海淀区九年级(上)期中数学试卷-
- 吉祥物的设计 课件 2024-2025学年人教版(2024)初中美术七年级上册
- 2024年中国电动卷帘电机市场调查研究报告
- “四史”(改革开放史)学习通超星期末考试答案章节答案2024年
- 云服务器租赁合同三篇
- 东莞市房屋建筑和市政基础设施工程施工招标文件
- 2024粤东西粤北地区教师全员轮训校长领导培训心得
- 人教版(2024)一年级道德与法治上册第二单元第8课《课余生活真丰富》教学课件
评论
0/150
提交评论