单片机实验流水灯报告_第1页
单片机实验流水灯报告_第2页
单片机实验流水灯报告_第3页
单片机实验流水灯报告_第4页
单片机实验流水灯报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、精品资料实验七 LED流水灯程序姓名XXXX学号106032010128学院光电学院班级电子信息工程四班实验目的1、掌握单片机IO工作原理;2、掌握单片机IO驱动工作方式 实验环境PC机一台和HC6800单片机实验箱一台及KEIL程序设计调试软件、仿真软件等。内容与步骤内容:驱动LED闪烁,闪烁节奏和方式可自定义。原理分析:本实验采用P0口来进行输出来控制LED等的亮与暗(通过高低电平来控制);采用左移的指令来控制“流水”状态。采用延时函数功能进行延时,实现“流水”的控制。采用中断进行同时亮同时暗的控制。步骤:1、 打开KEIL,新建工程:Project/New Project,输入工程名12

2、8,并保存;2、 选项选择器件:Atmel 的AT89C52;3、 新建程序文本,并另存为该文件为.C格式: (1)“File/New”,(2) File/Save As/键入欲使用的文件名及后缀名,即“文件名.C”。并“保存”;4、 添加该文件该工程:回到编辑界面后,单击“Target 1”前面的“”号,然后在“Source Group 1”上单击右键,单击“Add File to Group Source Group 1” 选择刚才新建的.C文件;5、 在KEIL的文件中各自输入相应的程序代码,并编译,调试。 (1)写完代码后单击“Project”菜单,再在下拉菜单中单击“Built Ta

3、rget”选项(或者使用快捷键F7),编译成功后(0个errors),(每次修改程序后都要重新编译下,才能生效)。 (2)再单击“Debug”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),点击RUN进行运行,或者按F11进行单步运行;6、 观察运行结果:在KEIL的view/memory window窗口中输入相应地址查看运行结果是否正确,查看变量i和P0的变化情况;7、 反复编译和调试程序,直到无错误为止(程序能实现相应的功能);8、 使用ISIS软件进行仿真或单片机实验箱或是单片机开发板来进行程序功能的验证,即能实现“流水”的功

4、能。 过程分析 本实验主要是采用延时程序来控制“流水”的功能,同时采用中断进行亮与暗闪烁的效果,使用C52的P0口进行对LED的控制。过程的主要分析如下:#include<reg52.h>#include<intrins.h>unsigned int i=0; /定义变量i;unsigned char data x=0xfe; /定义初值;void delay() /延时函数; int a,j; for(a=0;a<1000;a+) for(j=0;j<100;j+); /主函数;void main() P0=x;delay(); for(;i<=8;

5、i+) P0=_crol_(x,i); /左移,实现流水功能;delay(); TH0=(65536-50000)/256; /赋初值; TL0=(65536-50000)%256; EA=1; /开CPU中断; ET0=1; /开T0中断; TR0=1; /开始计数; void timer0() interrupt 1 /中断函数; int k=0; for(;k<=3;k+) P0=0; delay(); P0=0xff; delay(); main(); /返回主函数; 在KEIL上运行如下:本实验功能的验证是采用仿真来进行:验证电路图及功能效果如下:所以实验程序的设计功能可以实现

6、。 对于在进行实验的设计时,可能存在的错误,主要是C语言的一些使用规则的错误和对中断控制等代码的错误。等发生错误时,就应从代码的开始部分进行检查和分析,对于错误的地方进行修改,直到程序无错误为止。对于验证其功能时,应画对仿真电路图,正确运用仿真软件等。 结果总结通过本次对流水灯程序的设计,初步了解了单片机I/O口的基本原理和驱动的工作方式等 ,认识了HC6800单片机实验箱的基本应用。本次实验既采用延时程序进行控制,又采用了中断功能进行控制,效果很明显,且再次熟悉了有关中断方面的知识等。思考题: 采用中断进行“流水”的控制程序代码如下:#include<reg52.h>#inclu

7、de<intrins.h>unsigned int i;unsigned char data x=0xfe;void main() TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(1) P0=x; void time0() interrupt 1 i+; if(i=20) i=0; P0=_crol_(x,1); TH0=(65536-50000)/256; TL0=(65536-50000)%256; 附录源程序代码:#include<reg52.h>#include<intrins.h>unsigned int i=0;unsigned char data x=0xfe;void delay() int a,j; for(a=0;a<1000;a+) for(j=0;j<100;j+); void main() P0=x;delay(); for(;i<=8;i+) P0=_crol_(x,i);delay(); TH0=(65536-50000)/256; TL0=(65536-50000)%256

温馨提示

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

评论

0/150

提交评论