对LED流水灯的学习总结.docx_第1页
对LED流水灯的学习总结.docx_第2页
对LED流水灯的学习总结.docx_第3页
对LED流水灯的学习总结.docx_第4页
对LED流水灯的学习总结.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机的学习总结第一个实验:一、 从点亮一个发光二极管到实现流水灯的操作实验报告实验目的:(1)知道单片机最小系统和典型系统(2)知道如何建立一个工程,完成一个点亮发光二极管的编译和烧写实验器件以及基础知识描述:(1)LED发光二极管是一种半导体二极管,可以把电能转换成光能,有一个PN结构成。(2)晶振:全称为晶体振荡器,其作用是产生原始的时钟频率,这个频率晶振经过频率发生器的放大或缩小后就成为了电脑中各种不同的总线频率。(3)IO端口的驱动能力:每个I/O端口允许的做大20mA的灌电流,可以直接驱动LED和继电器;高电平输出时一般对负载提供电流其提供的电流叫“拉电流”;低电平输出时一般是要吸收负载的电流,其吸收的电流叫“灌电流”。(4)P1.0-P1.7:准双向接口(内置上拉电阻),端口P1的数据寄存器用P1表示,端口置一表示高电平,设置为0表示输出低电平。(5)如何进行程序烧写:5.1、用传统的并行烧写器5.2采用目前流行的IAP在线下载程序,STC的单片机可以不要编程器,通过USB或串口下载程序(6)延时函数:每条指令都占有一定的时间,如果让机器什么都不干机器就会延时,外加循环此数一个完整的点亮LED源代码程序如下:#includeSbit LED=P10;void main() LED=1; LED=0; While(1)有这一个简单的程序实现使p10端口控制的LED灯点亮,如果要实现多个灯同时点亮呢?可以定义多个端口,使之输出低电平即可:/实现第1、3、5、7个LED灯点亮#includesbit LED0=P10;sbit LED2=P12;sbit LED4=P14;sbit LED6=P16;main(void) LED0=0; LED2=0; LED4=0; LED6=0; while(1) 实现了控制灯亮暗后,程序中添加一段延时程序即可实现灯的闪烁:延时函数分为有参延时和无参延时;/一个简单的有参延时函数:void delay(unsigned int t) While(-t);/无参延时函数: void delay()for(int i=1000;i0;i+)for(int j=1000;j0;j+); 或者: void delay() Unsigned int i=300; While(-i);通过进一步的分析可以进行流水灯的设计:设计目的:从实际工程出发,在理论和实践上掌握流水灯系统的基础组成,工作原理。对设计流水灯有一个完整的概念。任务描述:本任务通过左移亮灯电路来学习单片机系统开发设计是电路原理图的设计和步骤,掌握单片机应用电路和程序的开发过过程。任务目标:分别用位输出操作,移位操作、循环操作完成三个典型的流水灯设计问题解决:如何改变流水灯的流动的速度:1、改变调用延时函数的实参2、更换不同频率的晶振流水灯的设计:由以上基础可以设计出不同形式的流水灯,第一可以先对IO端口进行初始化,使之P1=1;接着是第一个灯亮然后延时第一个灯暗第二个灯亮延时第二个灯暗。依次循环下去;方案二:可以运用左移或者右移使灯依次亮暗原理图如下:实现第一个框图时程序如下: #includesbit LED0=P10;sbit LED1=P11;sbit LED2=P12;sbit LED3=P13;sbit LED4=P14;sbit LED5=P15;sbit LED6=P16;sbit LED7=P17;#define ON 0#define OFF 1void delay(float t) unsigned int i,j; i=t*100; while(i-) for(j=8000;j;j-) ; void main() while(1) LED0=ON; delay(0.01); LED0=OFF; LED1=ON; delay(0.1); LED1=OFF; LED2=ON; delay(0.1); LED2=OFF; LED3=ON; delay(0.1); LED3=OFF; LED4=ON; delay(0.1); LED4=OFF; LED5=ON; delay(0.1); LED5=OFF; LED6=ON; delay(0.1); LED6=OFF; LED7=ON; delay(0.1); LED7=OFF; 实现框图二的程序为:#includevoid delay(unsigned int t) while(-t);void main() unsigned char i; P1=0xfe; while(1) for(i=0;i8;i+) delay(50000); P1=1; P1=P1|0x01; 实现框图三的程序如下:void initial() led0=off; led1=off; led2=off; led3=off; led4=off; led5=off; led6=off; led7=off;void main() initial(); delay(0.2); while(1) led0=on; delay(0.01); led0=off; delay(0.01); led1=on; delay(0.01); led1=off; delay(0.01); led2=on; delay(0.01); led2=off; delay(0.01); led3=on; delay(0.01); led3=off; delay(0.01); led4=on; delay(0.01); led4=off; delay(0.01); led5=on; del

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论