单片机门铃设计
单片机课程设计报告
学生姓名: 学 号: 教学院系: 专业年级: 指导教师:
完成日期: 2011年6月21日
目录
第一章 基础设计实验 ........................... - 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.6.2误差分析 ............................- 15 - 第三章 提高设计报告任务说明书 ..................- 16 -
3.1 小组成员及学号 ........................- 16 - 3.2 本人工作任务详细说明 ..................- 16 - 第四章 实验心得 ................................- 18 - 参考文献: .....................................- 18 -
第一章 基础设计实验
1.1 实验内容
用单片机设计一款流水灯
1.2 实验原理
本次实验基于AT89C51单片机来设计一款简单的流水灯。结合Uvision3和 ISIS 7 Professional这两款软件来设计和模拟。利用51 单片机来控制发光二极管的点亮和熄灭,主要实现延时控制和循环移位。本次实验程序是通过软件的软定时实现延时的。 1.3实验流程图
图1.3 实验流程图
1.4实验模拟电路
此为在ISIS 7 Professional上设计的模拟电路
图1.4 实验模拟电路图
西南石油大学
电子工艺实习报告
1.5 实验程序编译
1:打开Keil程序,选择工程菜单。
图1.51
Keil程序
2:选择新建uVision工程,保存为工程名称。
图1.52
新建uVision工程
3:选择Atmel公司的AT89C51设备。
图1.53
选择AT89C51设备
4:添加程序文本。
图1.54 添加程序文本
5:编译程序之前,在闪存菜单设置选项中选择输出选项,在产生HEX文件前打钩即可。
图1.54
产生HEX文件
1.6 实验程序
ORG 00H LOOP: MOV A,#0FEH MOV R2,#8 OUTPUT: MOV P1,A RL A ACALL DELAY DJNZ R2,OUTPUT LJMP LOOP DELAY: MOV R6,#0 //利用指令执行时间来进行延时设计 MOV R7,#0
DELAYLOOP:
DJNZ R6,DELAYLOOP
DJNZ R7,DELAYLOOP RET END
1.7实验结果
将Keil产生的HEX文件导入到模拟电路的51芯片中,得到仿真结果如下
图1.7 实验结果图
1.8基础实验总结
本次实验难度不是很大,做起来也较轻松。硬件部分由ISIS7 仿真可通过对电阻值的调整从而来调整LED的亮度,软件部分则可以通过对实验初值的设计来控制流水灯的流行速度。如果对流行的速度有更高一步的要求则需要利用51单片机本身的定时/计数器来进行精准中断定时。
西南石油大学
电子工艺实习报告
第二章 基础拓展
2.1 实验内容及要求
利用AT89C51单片机设计电子门铃。要求按下开关使蜂鸣器发出不同频率的声音。 2.2 实验流程图
图2.2 实验流程图
西南石油大学 电子工艺实习报告
2.3 实验原理简述
要使无源蜂鸣器发出声音并且频率不一样,就得提供不同频率的脉冲对其进行驱动。我们通过对51单片机的输出端口不断的取反达到输出130~550HZ的脉冲,所以要通过程序在其中加入延时(软延时)来控制脉冲频率的变化。本次设计我们准备发出四种不同频率的声音。 2.4实验模拟电路图
图2.4 实验模拟电路
2.5 实验程序设计及原理
#include #include int count; sbit in=P1^7; sbit out=P1^0;
void delayms(int xms) {
int i,j; for(i=xms;i>0;i--) for(j=200;j>0;j--); }
void delay500() { int i;
for(i=100;i>0;i--) { _nop_(); } }
void main() {
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 ;
}
delay500(); delay500(); //形成频率2 } delayms(500); for(count=200;count>0;count--) { out=~out ; delay500(); delay500(); delay500(); //形成频率3 } for(count=100;count>0;count--) { out=~out ; delay500(); delay500(); delay500(); delay500(); //形成频率4 } } }
本次实验不同与基础设计,我们是用C语言进行编写的。其主要的作用在于delay500()这个函数,每执行一次delay500()函数,在OUT端口上就能获得一定赫兹的脉冲。通过四次for循环达到控制响铃时间的长短。设计四个频段的周期按1:2:3:4输出。
2.6 实验结果及误差分析
2.6.1 实验结果
通过ISIS模拟器中的图标模式可模拟出蜂鸣器所接收到的信号。这是一个周期内所接收到的信号图,图中红色数字表明的是代表不同频率的波形信号。空白处为两段信号段之间的延延时程序。由此图可得知波形1-4各个波形的的频率是依次减小的,从而带来蜂鸣器不同节奏的音频。将正确调制过后的HEX文件导入C51芯片中后,仿真结果如下:
图2.6.1.1实验波形结果总体
只是波形信号1的波形信号图,通过此图我们可得知此波形一个周期的时间长短,从而得出此波形的频率大小。
图2.6.1.2实验波形结果1
同理我们可以得到波段2的波形图如下:
图2.6.1.3实验波形结果2
同理我们可以得到波段3的波形图如下:
图2.6.1.4实验波形结果3
同理我们可以得到波段4的波形图如下:
图2.6.1.5实验波形结果4
2.6.2误差分析
通过仿真我们得到了四种频率的脉冲波形即:
以上我们可以看出实验结果和预计的比例关系大致一致。误差产生的原因有
1.程序本身是通过C语言执行空命令来实现延迟的,不是采用C51内部的定时器/计数器来实行中断的,不能达到输出精确频率波段。
2.蜂鸣器的外接电路中电容器的充放电时间无法准确控制,可能使电压的高低变化有一定的偏差,导致输出的电压的高低界限不明显,从而使图表模式中的AUDIO的波形的频率有差错。 3.频率测量的人为误差也是不可避免的。
第三章 提高设计报告任务说明书
3.1 小组成员及学号
3.2 本人工作任务详细说明
在本次试验中,我主要是设计硬件部分。其中硬件的设计有:
3.2.1复位电路
图3.2.1 复位电路
手动按钮复位需要人为在复位输入端RST上加入高电平(图2.5.1)。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
3.2.2 晶振电路
图3.2.2晶振电路图
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路。
3.2.3蜂鸣器电路
图3.2.3 蜂鸣器电路图
有源蜂鸣器需要输入有一定驱动能力的交流信号才能发声,发声频率即交流信号的频率,因此能够发出各种不同音调的响声,可用来演奏简单乐曲。蜂鸣器在正常工作时,一般需要数十毫安的驱动电流,这大大超过了8051的I/O承受能力。对这种中等电流负载的驱动方法,一般可采用晶体管。图 2.53是蜂鸣器的典型驱动电路。 当OUT为低的时候晶体管Q1截止,电源对电容C5进行充电,而当OUT为高的时候,Q1开通,C5则放电,因此形成的脉冲驱动蜂鸣器发出声音。
第四章 实验心得
由单片机设计的门铃系统,虽然简单,但是其中运用了,单片机的中断,复位,延时等我们在本学期学习的单片机的课程。由于时间不够,在设计上略有粗糙,在播放的曲调上,还可以继续拓展,拓展成多音节,多曲调,的音乐程序。
通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知识与应用于实践的结合更加丰富了自己的知识。扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,而且较系统的掌握单片机应用系统的开发过程,因而自身的综合素质有了全面的提高。
经过这次一个较完整的产品设计和制作过程,对于认识到自己在知识方面存在的不足,明确今后的学习方向是非常有益的,为将来的的就业提前打了下坚实的基础。在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同学的大力支持和协助,在此一并表示衷心的感谢。
参考文献:
[1]李建中.单片机原理及应用(第二版)[M]:西安电子科技大学出版社,2007 [2]康华光主编.电子技术基础模拟部分(第五版)[M]:高等教育出版社,2005