单片机最小应用系统设计报告-用8051单片机定时器产生乐谱的各种频率方波
实验一 8051单片机最小系统设计与制作

【1. 实验目的和要求】(1)掌握采用Keil uVision集成开发环境下单片机程序的编辑、编译、连接方法;(2)掌握Keil uVision集成开发环境与Proteus仿真软件的联调;(3)掌握单片机最小系统的仿真设计;【2. 实验工具与软件】计算机、Keil uVision4集成开发环境、Proteus 8 Professional仿真软件【3.主要原理和方法步骤】(1)任务说明➢完成8051最小系统仿真原理图设计;并在最小系统基础上完成2个独立按键与8个发光二极管的驱动电路设计;➢编写测试程序,实现按键控制循环点亮8个灯,时间间隔约1秒。
(2)仿真电路原理图(3)程序流程图(4)实例代码及注释分析#include "reg51.h"sbit S0=P1^0; //数据IO口设置sbit S1=P1^1;unsigned char flag; //设置flag标志位,表示哪一个按键被按下unsigned char step; //设置step标志位,表示需要显示的二极管位码unsigned char code D[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //发光二极管的段码void delay_ms(unsigned int ms) //ms延时函数(******************){unsigned int i;while(ms--)for(i = 0; i < 110; i++);}void main(void) //主函数{unsigned char i;while(1){for(i=1;i<=20;i++) //对延时1S的时间进行划分,多次检测按键是否按下,以提高按键灵敏度{if(S0==0){flag=1;P0=~D[step];}else{if(S1==0){while(!S1);flag=2;break;}}delay_ms(50);}if(flag==1) //循环左移{step++;if(step==8) step=0;P0=~D[step];}else if(flag==2) //循环右移{step--;if(step==-1) step=7;P0=~D[step];}}}【4. 数据记录】点击运行开始仿真按键时,8个发光二极管均处于熄灭状态。
单片机八音盒课设报告

河海大学物联网工程学院(常州)课程设计报告题目八音盒专业、学号授课班号学生姓名指导教师完成时间目录摘要............................................................................. (3)第一章、绪论................................................................ (4)1.1课程设计背景 (4)1.2课程设计目的 (4)1.3课程设计任务 (4)1.3.1 基本部分要求 (4)1.3.2 提高部分要求 (4)1.4课程设计意义 (5)第二章、系统设计 (5)2.1系统设计原理 (5)2.1.1 声音的产生 (5)2.1.2 计数初值的计算 (5)2.1.3 音调 (6)2.1.4 节拍 (7)2.2系统硬件电路设计 (8)2.2.1 单片机最小系统设计 (8)2.2.2 键盘接口电路 (9)2.2.3 数码管显示电路 (10)2.2.4 拨码开关电路 (11)2.3系统软件设计 (12)2.3.1 系统软件方框图 (12)2.3.2 单片机初始化 (12)2.3.3 音乐播放函数 (12)2.3.4 模式切换 (14)第三章、实验结果 (16)3.1调试过程 (16)3.2调试结果 (16)3.3创新点 (17)第四章、总结 (17)4.1收与心得 (17)4.2改善建议 (18)参考文献 (19)附录一:程序代码 (20)摘要:此次课程实践利用STC90C516RD+单片机设计了一个八音盒,实现目标为:按下按键可以演奏预先设定的歌曲旋律,并可以切换到琴键模式发出诸如do、re、mi等音调的频率。
通过这次设计,我们可以学习MCS-51系列单片机定时器、外部中断、按键扫描、数码管显示以及蜂鸣器控制等的程序设计,从而加深对课程内容的理解。
根据课设基本要求,我们设定的此八音盒的基本功能为:1、使用一位数码管显示当前正在播放的歌曲编号,编号为为从1到8。
单片机最小系统(详解)设计报告

摘要近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次课程设计包括STC89C51单片机最小系统(包括复位和时钟电路)还有蜂鸣器电路、LED电路和RS232串口电路以及用于扩展功能的四排与I/O端口相连的插孔。
利用Protel电路设计软件进行原理图设计,PCB布线,借此巩固单片机应用、模拟电路、数字电路课程及学会工程软件protel的使用。
关键词:最小系统,I/O端口,STC89C51, PCBAbstractRecent years, with the penetration of computers in the social sphere, SCM applications are constantly deepening, while driving traditional control detects the rapidly growing updated. In the real-time detection and automatic control of microcomputer application system, the microcontroller is often used as a core component, only the microcontroller knowledge is not enough, should be based on the specific hardware architecture, as well as application-specific software features object combine to make perfect .The curriculum includes the SCM STC89C51 minimum system (including reset and clock circuit) and the buzzer circuit, eight digital tube display circuit, RS232 serial port circuitry, and used to extend the functionality of the four rows with the I / O ports are connected jack. Protel circuit design software for the use of schematic design, PCB layout, thereby consolidating microcontroller applications, analog circuits, digital circuits courses and learn to use engineering software Protel.Keyword:minimum system,I/O Port, STC89C51, PCB1.单片机系统的结构1.1 单片机的内部结构 一个基本的MCS-51单片机通常包括:中央处理器、ROM 、RAM 、定时/计数器和I/O 口等各功能部件,各个功能由内部的总线连接起来,从而实现数据通信。
单片机原理与应用课程设计报告

单片机原理及应用课程设计报告1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少六首乐曲,每首不少于30秒)。
2.采用数码管显示信息。
3.可通过功能键选择乐曲,暂停,播放。
1.方案论证与对比设计方案:近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
现在,在许多领域中,电子音乐盒得到了广泛的应用,比如电子钟、闹钟等等。
设计中我们考虑了两种设计方案,两种设计方案中主要去区别在于硬件电路的不同,对于本设计通过模拟电路和单片机设计均可以实现,最后根据设计要求、可行性和设计成本的考虑选择了单片机设计的方案。
现在一一介绍,论证如下:1.1方案一以STC89C52为核心,通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。
要产生音频脉冲,只需算出某一音频的周期,然后取半周期的时间定时。
利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲。
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时在LCD显示歌曲序号和歌曲名称。
1.2方案二采用单片机来设计电路。
此电路包括时钟电路、复位电路、音乐驱动电路和MCS-51单片机。
由石英晶体振荡器产生单片机工作时所必须的时钟信号。
由复位按键使单片机的CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
由于单片机最大灌入电流为3.2mA,所以选用PNP管,并要在PNP的基极和发射极加限流电阻。
使用单片机P0端口做显示电路,要在P0口加上拉电阻(5~10kΩ)。
还要加限流电阻,保护单片机。
由外部中断输入和定时/计数器的外部输入都是低电平有效,可以和复位电路相视,只要将复位电路中的电容去掉即可。
1.3方案比较通过以上两个方案,我们发现,方案二总体比方案一好。
第六章_单片机最小系统

2. 键盘的查询与中断
3. 键盘管理中的键输入与键操作
7.2.3 并行I/O口扩展的LED显示电路 1. LED 显示器及显示原理 (1)LED显示器结构 (2) 显示器原理与显示段码 2. LED显示器显示方式
7.3 并行总线外围扩展技术 7.3.1 并行总线扩展基本问题 1. 并行总线扩展电路设计
80C51单片机最小系统
1、最小系统概念 最小系统概念
单片机最小系统,或者称为最小应用系统 是指用最少的元 单片机最小系统 或者称为最小应用系统,是指用最少的元 或者称为最小应用系统 件组成的单片机可以工作的系统.最小系统结构与单片机的 件组成的单片机可以工作的系统 最小系统结构与单片机的 类型有关。 类型有关。 对51系列单片机来说 最小系统一般应该包括 单片机、晶 系列单片机来说,最小系统一般应该包括 单片机、 系列单片机来说 最小系统一般应该包括:单片机 振电路、复位电路、按键输入、显示输出等。 振电路、复位电路、按键输入、显示输出等。
外部时钟 XTAL1 XTAL2
XTAL2
15~45pf× 15~45pf×2
1~12MHz(MCS-51) 12MHz(MCS-51) 24MHz(Atmel-89C) 0~24MHz(Atmel-89C)
(1)片内时钟振荡器与外部谐振电路 片内振荡器与外部谐振叫路构成了一个并联谐振的时钟 振荡电路。PD端可由内部软件编程来控制振荡电路的 启停。
(4) 电源监测复位 4. 应用系统中多复位要求的处理
第7章
• 单片机的并行扩展技术
7.1 并行外围扩展方式 有I/O方式和总线方式 7.1.1 并行I/O口与并行扩展总线 1. 两种扩展方式
2. 扩展方式选择 主要由所选择的外围器件决定。 3. 并行总线的I/O虚拟 通过I/O口虚拟总线时序及操作控制方式来扩展并 行总线接口。 7.1.2 并行I/O的扩展特性 输出锁存、握手交互、指令控制实现的时序协议 7.1.3 并行总线扩展特性 三态输出、时序交互、总线协议的CPU的时序自 动运行
基于51单片机的波形发生器设计报告

基于51单片机的波形发生器设计报告波形发生器是一种电子设备,用于产生各种不同类型和频率的电信号波形。
基于51单片机的波形发生器设计是一种常用的工程设计。
下面是一个关于基于51单片机的波形发生器设计的报告,详细介绍了设计的原理、步骤、电路、程序和性能。
一、设计原理:二、设计步骤:1.确定波形发生器的输出频率范围和分辨率要求。
2.选择适当的定时器/计数器模块来实现频率的计时和控制。
3.设计电路,包括定时器/计数器模块、晶振、滤波电路和输出接口等。
4.编写程序,配置定时器/计数器模块的工作模式、计数值和中断服务程序。
5.调试和测试电路和程序,确保波形发生器正常工作并满足设计要求。
三、电路设计:1.定时器/计数器模块:选择一个合适的定时器/计数器模块,如51单片机的定时器/计数器T0或T1、根据设计要求,设置工作模式、计数器模式和计数值。
2.晶振:选择适当的晶振频率,一般为11.0592MHz,将晶振连接到单片机的晶振引脚。
3.滤波电路:根据需要,设计一个滤波电路来滤除不需要的高频噪声和杂散信号。
4.输出接口:设计一个输出接口电路来连接单片机和外部电路,使用电平转换电路将单片机的低电平(0V)输出转换为所需的电平电压。
四、程序设计:1.配置定时器/计数器模块的工作模式和计数值,设置中断服务程序。
2.在中断服务程序中,根据设计要求生成矩形波信号,并将信号输出到输出端口。
3.在主程序中,初始化单片机和定时器/计数器模块,使波形发生器开始工作。
4.在主循环中,可以设置按键输入来改变输出频率,通过调整计数值来实现不同的频率输出。
五、性能评估:1.输出频率范围:根据设计要求,测试波形发生器的最低和最高输出频率是否在设计范围内。
2.分辨率:对于指定频率范围,测试波形发生器的输出频率的分辨率,即最小可调节的频率。
3.稳定性:测试波形发生器的输出信号的稳定性和准确度,是否有漂移和偏差。
4.噪声:测试波形发生器的输出信号是否有杂散噪声和幅度波动。
单片机课程设计音乐播放器报告

中州大学《单片机》课程设计报告报告题目:音乐播放器作者所在系部:工程技术学院作者所在专业:电气自动化作者所在班级:B10204作者姓名:张强作者学号:20104020416指导教师姓名:雷刚完成时间:2014年10月12日课程设计任务书课题名称音乐播放器的设计完成时间 6.12 指导教师王晓职称副教授学生姓名张婷班级B10204总体设计要求和技术要点利用单片机设计一个音乐播放器,并能够播放三种音乐,音乐自行设计。
一、设计目的1.掌握单片机定时器的使用方法2.掌握单片机扩展显示器、键盘的方法二、技术指标1.键盘设置3种音乐的播放切换;2.LED显示3种音乐的提示符;3. 流水灯闪烁工作内容及时间进度安排第14周:周1到周2查阅资料,确定设计方案周3到周4编写程序并进行proteus仿真周5焊接调试第17周:周1撰写实验报告周2验收课程设计成果1.与设计内容对应的软件程序与焊接实物2.课程设计报告书内容摘要本文的主要内容是用AT89C52单片机为核心控制元件,设计一个音乐播放器,以单片机作为主控核心、蜂鸣器等模块组成。
利用单片机产生不同频率来获得要求的音阶,最终可随意编写需要的程序,播放出音乐。
在此设计中我采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由喇叭发出声音。
设有四个按键,其中两个能实现多首音乐的选择,另一个能实现开始功能和单曲重播的功能,最后一个能实现复位和关闭歌曲的功能。
设有一位数码管,每选择一首曲子能在数码管上显示当前的曲目(只是数字)。
设十六个发光二极管,能随歌曲频率闪烁。
关键字:单片机音乐不同频率按键目录一、概述 (1)二、方案设计与论证 (1)1.硬件设计 (1)2.软件设计 (2)三、单元电路设计与分析 (3)1.单片机最小系统 (3)2. 数码管显示 (4)3.发光二级管和按键 (4)4.蜂鸣器发声 (5)5.软件部分程序和流程图 (5)四、总原理图及元器件清单 (11)1.总原理图 (11)2元器件清单 (11)五、结论 (12)六、心得体会 (12)七、参考文献 (12)一、概述作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“--等音阶在内的各种频率声音。
单片机最小系统实验设计报告

单片机最小系统实验设计报告一、实验目的(1)熟悉单片机最小系统的组成,上机步骤及调试方法;(2)加深理解C51汇编语言逻辑结构,能够使用汇编进行简单的程序编写;(3)将课上学到的理论知识联系实际,完成简单的电子控制系统;二、实验所需仪器及设备三、实验线路及原理下图为实验板电路图:(1)硬件组成及原理硬件组成:89S52单片机、8D锁存器74LS573两片、16选1译码器74LS154、16位七段数码显示器、轻触开关;原理:采用扫描显示,利用人眼视觉暂留效应,产生稳定的数码显示效果。
基于上述基本原理,利用单片机的P0口作为七段数码显示器的段选控制,通过两片8D 锁存器74LS573将段选控制分配到两组总共16位七段数码显示器上;单片机的P1.0-P1.3作为16位七段数码显示器的位选,而如何用单片机的4个管脚控制两组总共16位的七段数码显示器呢?这里使用的是1片16选1的译码器74LS154。
(2)软件原理程序流程图:显示主循环个按键完成设置、加、在按键子程序中以及加减闪烁的值,数据缓FLASH修改显示缓冲 区闪烁位在显示子程序中,只需负责将显示缓冲区的数据取出来进行显示即可按键子程序说明:KEYIN: JNB SSET,KEYIN1 ;判断SET键是否按下ACALL DELAY1 ;延时去抖动JNB SSET,KEYIN1JB SSET,$ ;判断SET键是否松开INC FLASH ;SET键按下调整闪烁标志位MOV R7,FLASHCJNE R7,#17,KEYIN1;判断FLASH是否已经移出16位MOV FLASH,#0HKEYIN1: MOV TEMP1,R0JNB SSUB,KEYIN2;判断减键是否按下ACALL DELAY1;延时去抖动JNB SSUB,KEYIN2JB SSUB,$ ;判断减键是否松开MOV A,FLASHADD A,#60HMOV R0,ADEC @R0;减键按下修改数据缓冲区对应位的值CJNE @R0,#0FFH,KEYIN2MOV @R0,#0BHKEYIN2: JNB AADD,KEYIN3;判断加键是否按下ACALL DELAY1;延时去抖动JNB AADD,KEYIN3JB AADD,$ ;判断加键是否松开MOV A,FLASHADD A,#60HMOV R0,AINC @R0; 加键按下修改数据缓冲区对应位的值CJNE @R0,#0CH,KEYIN3MOV @R0,#0KEYIN3: MOV R0,TEMP1RET显示子程序:DISP: MOV A,@R0ACALL TAB;查表取得由第一片74LS573送出的段代码的值 ACALL SEGU9;调用第一片74LS573数据锁存子程序MOV A,@R1ACALL TAB1;查表取得由第二片74LS573送出的段代码的值 ACALL SEGU10;调用第二片74LS573数据锁存子程序INC R0;调整显缓指针INC R1;调整显缓指针ACALL SENDBIT;调用位选子程序点亮16位7段LED中的两位 ACALL DELAY;延时CJNE R0,#58H,DISP;判断是否已完成16位显示MOV R0,#50H;显缓指针付初值MOV R1,#58H;显缓指针付初值RET主程序:FLAG EQU 20HFG1 BIT FLAG.0FG2 BIT FLAG.1DATABUF1 EQU 60HDATABUF2 EQU 61HDATABUF3 EQU 62HDATABUF4 EQU 63HDATABUF5 EQU 64HDATABUF6 EQU 65HDATABUF7 EQU 66HDATABUF8 EQU 67HDATABUF9 EQU 68HDATABUF10 EQU 69HDATABUF11 EQU 6AHDATABUF12 EQU 6BHDATABUF13 EQU 6CHDATABUF14 EQU 6DHDATABUF15 EQU 6EHDATABUF16 EQU 6FHFLASH EQU 70H ;TEMP0 EQU 71HTEMP1 EQU 72HTEMP2 EQU 73HTEMP3 EQU 74HTEMP4 EQU 75HSSET BIT P3.0; SET键AADD BIT P1.7; 加键SSUB BIT P1.6; 减键ORG 0000HAJMP MAINORG 0030HMAIN: CLR CSETB FG1MOV R0,#50HMOV R1,#58HMOV TEMP0,#0MOV TEMP2,#40MOV FLASH,#16MOV DATABUF1,#2MOV DATABUF2,#0MOV DATABUF3,#0MOV DATABUF4,#5MOV DATABUF5,#0BHMOV DATABUF6,#0MOV DATABUF7,#3MOV DATABUF8,#0BHMOV DATABUF9,#0MOV DATABUF10,#9MOV DATABUF11,#0BHMOV DATABUF12,#0MOV DATABUF13,#2MOV DATABUF14,#0BHMOV DATABUF15,#5MOV DATABUF16,#0 MAIN1: ACALL KEYINACALL GETDATAMOV A,FLASHCJNE A,#16,MAIN4AJMP MAIN3MAIN4: DJNZ TEMP2,MAIN2MOV TEMP2,#60CPL FG1MAIN2: JB FG1,MAIN3MOV A,FLASHADD A,#50HMOV R0,AMOV @R0,#0AHMOV R0,#50HMAIN3: ACALL DISPAJMP MAIN1GETDATA:MOV TEMP3,R0MOV TEMP4,R1MOV R0,#50H ;//显缓 MOV R1,#60H NEXT: MOV A,@R1MOV @R0,AINC R0INC R1CJNE R0,#60H,NEXTMOV R0,TEMP3MOV R1,TEMP4RETDISP: MOV A,@R0ACALL TABACALL SEGU9MOV A,@R1ACALL TAB1ACALL SEGU10INC R0INC R1ACALL SENDBITACALL DELAYCJNE R0,#58H,DISPMOV R0,#50HMOV R1,#58HRETKEYIN: JNB SSET,KEYIN1ACALL DELAY1JNB SSET,KEYIN1JB SSET,$INC FLASHMOV R7,FLASHCJNE R7,#17,KEYIN1MOV FLASH,#0HKEYIN1: MOV TEMP1,R0JNB SSUB,KEYIN2ACALL DELAY1JNB SSUB,KEYIN2JB SSUB,$MOV A,FLASHADD A,#60HMOV R0,ADEC @R0CJNE @R0,#0FFH,KEYIN2 MOV @R0,#0BHKEYIN2: JNB AADD,KEYIN3ACALL DELAY1JNB AADD,KEYIN3JB AADD,$MOV A,FLASHADD A,#60HMOV R0,AINC @R0CJNE @R0,#0CH,KEYIN3 MOV @R0,#0KEYIN3: MOV R0,TEMP1RETSENDBIT:MOV A,P1ANL A,#0F0HORL A,TEMP0INC TEMP0MOV P1,AMOV R2,TEMP0CJNE R2,#8H,SENDBIT1 MOV TEMP0,#0 SENDBIT1:RETSEGU9: CLR P1.4CLR P1.5MOV P2,ASETB P1.4MOV P1,#0AHRETSEGU10: CLR P1.4CLR P1.5MOV P2,ASETB P1.5MOV P1,#0AHRETTAB: ADD A,#1MOVC A,@A+PCRETDB 0C0H,0F9H,0A4HDB 0B0H,99H,92HDB 82H,0F8H,80HDB 90H,0FFH,0BFHTAB1: ADD A,#1MOVC A,@A+PCRETDB 03H,09FH,25HDB 0DH,99H,49HDB 41H,1FH,01HDB 09H,0FFH,0FDHDELAY1: MOV R7,#200TM2: MOV R6,#100TM1: DJNZ R6,TM1DJNZ R7,TM2RETDELAY: MOV R7,#4TMM2: MOV R6,#50TMM1: DJNZ R6,TM1DJNZ R7,TM2RETEND元件清单:C1:104C2:103C3:103C4:103C5:33pC6:33pC7:220u电解C8:103C9: 220u电解C10:103C11:4.7u电解D1--D8以及DP:LEDD9:1N4001Jmper:IDC-20Jpower:电源接插件Q1—Q9:9012R1—R16:75欧R17—R25:220欧R26—R30:1KRESET以及S1,S2,S3:轻触开关RP1—RP4:4XLED七段数码管RP5—RP6:10K排阻U1:89s52U2:74ls145U3:lm7805U9,U10:74ls573Y1:12M晶振。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学微机单片机接口设计报告指导老师:学生:学号:电子科技大学机电工程学院2009年5月单片机最小应用系统设计报告一、设计题目 (1)二、设计目的 (1)三、系统硬件图 (2)3.1 电路设计原理图 (2)3.2 电路设计PCB图 (4)四、程序流程图 (6)五、系统说明与分析 (9)设计思路及设计过程 (9)系统结构及各部分说明 (9)系统连线说明 (16)系统参数分析 (17)六、源程序 (17)七、总结 (25)八、参考文献 (26)一、设计题目用8051单片机定时器产生乐谱的各种频率方波,要求信号经过放大后由喇叭发出声音。
可选取某段音乐令单片机连续播放。
二、设计目的1、通过单片机最小系统的设计,了解常用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。
2、掌握单片机内部功能模块的应用:如定时器、计数器、中断系统、I/O口等。
3、熟悉基本硬件电路的设计与制作。
4、掌握以单片机核心的电路设计的基本方法和技术,了解单片机的基本外围电路的设计和矩阵按键电路及数码管驱动电路的设计。
5、学习UVISION对单片机的编程和调试方法。
6、学习PROTEL软件的使用,掌PROTEL的基本用法,懂得绘制简单得原理图及其PCB的绘制。
7、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
三、系统硬件图3.1 电路设计原理图整个设计主要包括单片机基本的晶振电路,按键复位电路。
具体的电路图如下图所示:对于不同的电路模块进行了分别画图:下图是最小系统模块。
功放模块:四乘四键盘模块:图1 电路原理图3.2 电路设计PCB图本次小系统的设计要求设计的电路板实单面板,因为设计中电路板较小,二元器件的数目较多,尤其是矩阵按键部分需要的连线较多,所以本次设计的PCB 板中夹杂着几根跳线。
PCB的生成,主要是在绘制好电路原理图之后,定义各个元器件的封装形式,生成网络表之后,在新建的PCB中导入网络表,即可一自动生成PCB。
根据元器件之间的飞线,设置各个参数之后手动布线。
本次设计的PCB图如图2所示。
图2 电路PCB图四、程序流程图键盘扫描程序:4X4行列式键盘识别;音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中 5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1 DO 1046 65058低 5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高 2 RE 1175 65110低 6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高 3 M 1318 65157低 7 SI 494 64524 高 4 FA 1397 65178中 1 DO 523 64580 # 4 FA# 1480 65198# 1 DO# 554 64633 高 5 SO 1568 65217中 2 RE 587 64684 # 5 SO# 1661 65235# 2 RE# 622 64732 高 6 LA 1760 65252中 3 M 659 64777 # 6 1865 65268中 4 FA 698 64820 高 7 SI 1967 65283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音0-19之间,中音在20-39之间,高音在40-59之间TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64580,64684,64777,64820,64898,64968,65030,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0DW 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms 对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。
在这个程序中用到了两个定时/计数器来完成的。
其中T0用来产生音符频率,T1用来产生音拍。
图3 程序流程图五、系统说明与分析设计思路及设计过程设计的主要思想:矩阵式按键识别系统,为了节省单片机的I/O口,我们采用了一种“行扫描法”。
单片机的P3口用作键盘I/O口,键盘的列线接到P3口的低4位,键盘的行线接到P3口的高4位。
列线P3.0-P3.3分别接有4个上拉电阻到正电源+5V,并把列线P3.0-P3.3设置为输入线,行线P3.4-P3.7设置为输出线。
4根行线和4根列线形成16个相交点。
按不同位置的按键的时候,在数码管上显示相应的键值。
显示部分使用数码管显示键值,单片机的P0口作为数码管的驱动口。
还包括单片机的基本外围电路,晶振电路和按键复位电路。
系统机构如图4所示。
图4系统结构图软件设计主要是通过UVISION软件使用C 语言进行编程。
设计过程:1、设计相应的电路原理图,编写C语言程序;2、在实验箱上进行程序调试;3、程序通过调试后,使用绘图软件PROTEL99,绘制相应的原理图,进行元器件封装后,生成相应的PCB 图,对其进行布局整理和单面板布线;4、打印PCB图,印制在电路板上,放入氯化铁溶液中进行腐蚀;5、腐蚀电路板之后进行元器件的焊接工作,焊接相应的电源线;6、通过试验箱和下载软件,将程序烧如到单片机中;7、进行最终的软、硬件的调试,直至完成相应的功能。
5.2系统结构及各部分说明本次设计的单片机最小系统包括:单片机AT89S51部分,矩阵按键识别部分,数码管显示部分以及软件设计部分。
下面就针对个法儿部分的特点进行简要的说明。
1、单片机部分(1)AT89S51介绍AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL 公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
图5 A T89S51引脚图AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
AT89S51有两种节电运行模式:空闲模式和掉电模式。
①空闲模式在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。
空闲模式可由软件设置进入(设IDL=1)。
在这种模式下,片内RAM和SFR中的内容保持不变。
空闲模式可通过任何一个允许中断或硬件复位退出。
若用硬件复位方式结束空闲模式,则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,器件从断点处开始执行程序。
片内硬件禁止访问内部RAM,但不禁止访问端口。
为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置进入空闲指令(即设IDL=1)的后面,不能是写端口或外部RAM的指令。
②掉电模式引起掉电模式的指令是执行程序中的最后一条指令(使PD=1的指令)。
在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM和SFR 中的内容保留不变,直到掉电模式结束。
退出掉电模式可用硬件复位或任何一个有效的外部中断INT0和INT1。
复位可重新设置SFR中的内容,但不改变片内RAM中的内容。
在Vcc电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。
(2)晶振电路图6 系统晶振电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路(如图6所示)。
AT89S单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。