欢迎来到天天文库
浏览记录
ID:805567
大小:2.17 MB
页数:19页
时间:2017-09-05
《单片机门铃设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西南石油大学电子工艺实习报告单片机课程设计报告学生姓名:学号:教学院系:专业年级:指导教师:完成日期:2011年6月21日-18-西南石油大学电子工艺实习报告目录第一章基础设计实验-2-1.1实验内容-2-1.2实验原理-2-1.3实验流程图-2-1.4实验模拟电路-3-1.5实验程序编译-4-1.6实验程序-6-1.7实验结果-7-1.8基础实验总结-7-第二章基础拓展-8-2.1实验内容及要求-8-2.2实验流程图-8-2.3实验原理简述-9-2.4实验模拟电路图-9-2.5实验程序设计及原理-10-2.6实验结果及误差分析-12-2.6.1实验结果-12
2、-2.6.2误差分析-15-第三章提高设计报告任务说明书-16-3.1小组成员及学号-16-3.2本人工作任务详细说明-16-第四章实验心得-18-参考文献:-18--18-西南石油大学电子工艺实习报告第一章基础设计实验1.1实验内容用单片机设计一款流水灯1.2实验原理本次实验基于AT89C51单片机来设计一款简单的流水灯。结合Uvision3和ISIS7Professional这两款软件来设计和模拟。利用51单片机来控制发光二极管的点亮和熄灭,主要实现延时控制和循环移位。本次实验程序是通过软件的软定时实现延时的。1.3实验流程图开始P1口初值亮第一个灯延时P
3、1口左移一位逐次点亮结束图1.3实验流程图-18-西南石油大学电子工艺实习报告1.4实验模拟电路此为在ISIS7Professional上设计的模拟电路图1.4实验模拟电路图-18-西南石油大学电子工艺实习报告1.5实验程序编译1:打开Keil程序,选择工程菜单。图1.51Keil程序2:选择新建uVision工程,保存为工程名称。图1.52新建uVision工程-18-西南石油大学电子工艺实习报告3:选择Atmel公司的AT89C51设备。图1.53选择AT89C51设备4:添加程序文本。图1.54添加程序文本-18-西南石油大学电子工艺实习报告5:编译程序
4、之前,在闪存菜单设置选项中选择输出选项,在产生HEX文件前打钩即可。图1.54产生HEX文件1.6实验程序ORG00HLOOP:MOVA,#0FEHMOVR2,#8OUTPUT:MOVP1,ARLAACALLDELAYDJNZR2,OUTPUTLJMPLOOPDELAY:MOVR6,#0//利用指令执行时间来进行延时设计MOVR7,#0-18-西南石油大学电子工艺实习报告DELAYLOOP:DJNZR6,DELAYLOOPDJNZR7,DELAYLOOPRETEND1.7实验结果将Keil产生的HEX文件导入到模拟电路的51芯片中,得到仿真结果如下图1.7实验
5、结果图1.8基础实验总结本次实验难度不是很大,做起来也较轻松。硬件部分由ISIS7仿真可通过对电阻值的调整从而来调整LED的亮度,软件部分则可以通过对实验初值的设计来控制流水灯的流行速度。如果对流行的速度有更高一步的要求则需要利用51单片机本身的定时/计数器来进行精准中断定时。-18-西南石油大学电子工艺实习报告第二章基础拓展2.1实验内容及要求利用AT89C51单片机设计电子门铃。要求按下开关使蜂鸣器发出不同频率的声音。2.2实验流程图图2.2实验流程图-18-西南石油大学电子工艺实习报告2.3实验原理简述要使无源蜂鸣器发出声音并且频率不一样,就得提供不同频
6、率的脉冲对其进行驱动。我们通过对51单片机的输出端口不断的取反达到输出130~550HZ的脉冲,所以要通过程序在其中加入延时(软延时)来控制脉冲频率的变化。本次设计我们准备发出四种不同频率的声音。2.4实验模拟电路图图2.4实验模拟电路-18-西南石油大学电子工艺实习报告2.5实验程序设计及原理#include#includeintcount;sbitin=P1^7;sbitout=P1^0;voiddelayms(intxms){inti,j;for(i=xms;i>0;i--)for(j=200;j>0;j--);}
7、voiddelay500(){inti;for(i=100;i>0;i--){_nop_();}}voidmain(){out=1;while(1){if(in==0){for(count=400;count>0;count--)//count值控制响铃时间{out=~out;//取反以形成脉冲delay500();//形成频率1}for(count=300;count>0;count--){out=~out;-18-西南石油大学电子工艺实习报告delay500();delay500();//形成频率2}delayms(500);for(count=200;c
8、ount>0;count--){out
此文档下载收益归作者所有