P0口彩灯控制实验_第1页
P0口彩灯控制实验_第2页
P0口彩灯控制实验_第3页
P0口彩灯控制实验_第4页
P0口彩灯控制实验_第5页
全文预览已结束

下载本文档

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

文档简介

实验项目名称: P0口彩灯控制实验实验室(中心): 电子实验室实验完成时间:09年10月22日教师评阅意见:签名:年月曰实验成绩:一、实验目的通过实验了解单片机最小系统;掌握PO口作为输入、输出方式使用时,CPU对P0口操作方法。二、 实验内容控制要求为:(1)正常情况下,8个发光二极管常亮。(2)按下K1时,第1个和第8个发光二极管闪烁,闪烁间隔时间为1s°(3)按下K2时,8个发光二极管闪烁,闪烁间隔时间为2s°(4)发光二极管由单片机P0口控制。用Proteus仿真软件运行硬件电路仿真设计。三、 实验设备及材料单片机AT89C51 、瓷片电容CAP30pF、晶振CRYSTAL12MHZ、电解电容CAP-ELEC电阻RES 、按钮BUTTON 、发光二极管LED-BIRG、发光二极管LED-BIBY开关SWITCH、排阻RESPACK-8、发光二极管LED-BIGY、发光二极管LED-YELLOW四、 实验电路图RP1RESPACK-8RRXTAL1P0.0/AD0P01/AD1XTAL2RSTP0.2/AD2P0.3/AD3P0.4/AD4RP1RESPACK-8RRXTAL1P0.0/AD0P01/AD1XTAL2RSTP0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P1.0P1.1P2.6/A14P2.7/A15P3.0/RXDP3.17TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WR-P+t7 P3.7/RDI12-3-4567D0Q0D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7OE25"r9_12757679LED-BIRGLED-YELLOW五:主要代码#include<reg51.h>#include<stdio.h>#include<intrins.h>sbitP30=P3A0;sbitP31=P3T;unsignedcharcount;voiddelay(unsignedi){unsignedchara,b,c;for(;i>0;i--)for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);_nop_;}voidmain(void){P0=0XFF;while(1){if(P31==0)while(1){if(P31==1)break;P0=0X81;delay(1);P0=0;delay(1);}if(P30==0)while(1){count=0;if(P30==1)break;P0=0;delay(2);P0=0XFF;delay(2);}}}五:实验步骤1、安装protues软件和keilc-51软件2、 打开Keil程序,执行菜单命令“Project”T“NewProject”创建“P口彩灯控制实验”项目,并选择单片机型号为AT89C51。3、 执行菜单命令“File”T“New”创建文件,输入源程序,保存为“P口彩灯控制实验.c”。在“Project”栏的File项目管理窗口中右击文件组,选择“AddFilestoGroup‘SourceGroup1'”将源程序“P口彩灯控制实验.c”添加到项目中。4、执行菜单命令“Project”T“OptionsforTarget‘Target1'”,在弹出的对话框中选择“Output”选项卡,选中“GreateHEXFile”。5、执行菜单命令“Project”T“BuildTarget”,编译源程序。如果编译成功,则在“OutputWindow”窗口中显示没有错误,并创建了“P口彩灯控制实验.HEX”文件。在proteus仿真平台上建立仿真原理图,并将程序上载到虚拟芯片上运行。六、实验总结及心得1、在控制闪烁时间的方式上我最先采用了软件延时,但是由于延时的精度不高,所以打算选择用定时器的方式进行定时触发闪烁,对然定时中断比延时更为准确的控制闪烁的时间,但是在软件设计的时候要采用软件延时和定时组合的方式,这样的话就增加了软件设计的难度。2、最初完成程序设计的时候我运行了程序,在检查无误后将生成的HEX写入单片机,仿真图没有按照我预想的方式进行,没有闪烁,于是我不断的简短了延时的时间,终于有了闪烁,虽然能闪烁了,就是在忽闪忽闪的,原因在于在闪烁的第二个状态的时候没有延时,于是我更改程序,闪烁变得正常了。因为以前做过10s钟的延时,没有出什么问题啊,我仔细的检查了程序,调试的时候,中断还是能正常的进行,但是在实际操作的时候就是不闪,但减少定时的时间就能闪。检查了很久。把程序也该了很多次,最后发现是P0端口没有加地址锁存器。在调整了硬件电路之后还是没有成功。最后我放弃了。决定采用了软件定时的方法,我使用一种小工具,能很精确的用软件延时。最后我还是使用的软件进行延时。3、在完成实验后,我重新用中断的方式延时,这次我很认真做没一步,结果成功了。呵呵•••步知道是什么原因。总结几点:在第一次做的时候

温馨提示

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

评论

0/150

提交评论