51单片机实做课课程设计报告51单片机课程设计报告学院:物理与信息工程专业班级:B11073011(电信111)学号:姓名:指导教师:王莉51单片机实做课课程设计报告第1页共21页目录1、设计任务与要求----------------------------------------------------------------------------------------2(1)概述-------------------------------------------------------------------------------------------------------2(2)AT89C52介绍-------------------------------------------------------------------------------------------2(3)引脚功能说明-------------------------------------------------------------------------------------------22、总原理图及元器件清单-------------------------------------------------------------------------------3(1)总原理图-------------------------------------------------------------------------------------------------3(2)元器件清单----------------------------------------------------------------------------------------------33、硬件模块分析-------------------------------------------------------------------------------------------4(1)74LS245引脚结构及功能------------------------------------------------------------------------------4(2)LED显示模块--------------------------------------------------------------------------------------------4(3)数码管显示模块------------------------------------------------------------------------------------------5(4)蜂鸣器模块------------------------------------------------------------------------------------------------64、系统硬件结构图及程序流程图-----------------------------------------------------------------------7(1)系统硬件结构图------------------------------------------------------------------------------------------7(2)程序流程图------------------------------------------------------------------------------------------------75、调试及结论-----------------------------------------------------------------------------------------------8(1)单元调试---------------------------------------------------------------------------------------------------8(2)整体调试---------------------------------------------------------------------------------------------------86、实验结果--------------------------------------------------------------------------------------------------8(1)数码管倒计时及流水灯---------------------------------------------------------------------------------9(2)8个LED灯同步闪烁-----------------------------------------------------------------------------------9(3)数码管显示HELLO------------------------------------------------------------------------------------10(4)播放音乐--------------------------------------------------------------------------------------------------107、心得体会-------------------------------------------------------------------------------------------------108、参考文献-------------------------------------------------------------------------------------------------129、附录:C源程序代码----------------------------------------------------------------------------------1251单片机实做课课程设计报告第2页共21页1、设计任务与要求(1)概述通过自选课题课程设计,将理论知识和实际操作结合起来,熟悉STC89C52的工作原理,运用所学知识,完成设计。本次课程设计选用比较常用的AT89C52单片机,显示模块分为三个:①LED灯;②数码管;③蜂鸣器。利用定时器控制数码管倒计时的时间间隔和LED流水灯的时间间隔,以及蜂鸣器播放音乐时音律的调节,以实现数码管倒计时、LED闪烁、音乐播放的功能。使用uVision软件,利用汇编语言编写程序,并用Protues软件进行硬件仿真,掌握这两款软件的基本使用方法,熟悉掌握汇编语言的编写,提高动手和思维能力。(2)AT89C52介绍·与MCS-51产品指令和引脚完全兼容·8K字节可重擦写flash闪速存储器·1000次擦写周期·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·256*8位内部RAM·32可编程I/O线·3个16位定时器/计数器·8个中断源·可编程串行UART通道·低功耗的闲置和掉电模式(3)引脚功能说明(1).电源引脚Vcc(40脚):典型值+5V。Vss(20脚):接低电平。(2).外部晶振X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地。(3).输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“1”。51单片机实做课课程设计报告第3页共21页P1口:I/O双向口。作输入口时,应先软件置“1”。P2口:I/O双向口。作输入口时,应先软件置“1”。P3口:I/O双向口。作输入口时,应先软件置“1”。(4).控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST/Vpd(9脚):复位信号输入端(高电平有效)。第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。2、总原理图及元器件清单(1)基于Proteus7.8的总原理图(2)元器件清单51单片机实做课课程设计报告第4页共21页(1)控制部分:AT29C52单片机1个,弹跳式开关1个。(2)显示部分:8个发光二极管(LED灯),1个6位七段数码管。(3)声音部分:蜂鸣器1个。(4)收发器:74LS245芯片1个。3、硬件模块分析(1)74LS245引脚结构及功能74LS245是我们常用的芯片,用来驱动led或者其他的设备,用法很简单如上图,这里简单的给出一些资料,他是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)*DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。(2)LED显示模块(实现闪烁功能)51单片机实做课课程设计报告第5页共21页图(1)发光二极管实物图图(2)发光二极管原理图LED显示模块包括控制参数调整显示模块和交叉口倒计时显示模块两部分,此两部分的8位LED均采用动态显示方式,采用共阳极连接方式,将所有二极管的阳极端连在一起,阴极接到P0口,通过AT89C52对各个LED进行控制从而实现对LED的定时选通。(3)数码管显示模块(实现倒计时功能)图(1)引脚图图(2)六位7段数码管实物图51单片机实做课课程设计报告第6页共21页这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。(4)蜂鸣器模块(实现播放音乐功能)蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。常见的一种了解方式如右图。本设计通过已编好的C语言源程序控制AT89C52单片机来驱动蜂鸣器,C程序中包含的音乐代码,能让蜂鸣器播放出音乐《生日快乐歌》。51单片机实做课课程设计报告第7页共21页4、系统硬件结构图和程序流程图(1)系统硬件结构图(2)程序流程图51单片机实做课课程设计报告第8页共21页5、调试及结论(1)单元调试a.显示模块的测试:显示模块包括LED显示和数码管计数器的显示。①刚开始将显示模块的程序编译后进行仿真,开始仿真时数码管显示英文的同时,8个LED没有同步闪烁。分析程序后,经检查发现时间参数设置错误,导致二者没能同步显示。经过修改程序并再次编译运行、仿真,发现数码管和LED灯都按程序预定规则正常显示。②开始的时候,使用的是AT89C51单片机,由于本次课程设计中数码管倒计时、LED流水灯和音乐播放程序都需要用到定时器,而AT89C51只有两个定时器可同时使用,难以满足设计要求。经