




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机技术课程设计报告专 业: 通信工程 班 级: 通信082 姓 名: 学 号: 指导教师: 时 间:2010-03-0819通信与电子工程学院 一、设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。1、通过本设计,使学生综合运用微型计算机技术、C语言程序设计以及数字电路、模拟电路等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。二、设计内容该实践训练环节要求学生能够运用所学知识,在老师的引导下完成课程设计题目,达到相应的训练要求。序号教学内容基本要求备注1数码转换并显示设计ASCII、BCD或16进制数转换并在6位LED显示功能。2键盘接口和显示设计设计并实现一44键盘的接口,并在两个数码管上显示键盘所在的行与列。38155或8255扩展用8155或8255扩展IO实现16个LED的跑马灯,提供多种跑马灯运行模式4多点定时数字钟设计实现一简易时钟的功能,用数码管显示,要求该时钟走时准确,时间可以通过键盘设置与校准。5简易计算器设计实现一简易的加减法计算器的功能,要求该计算器能够进行6位无符号数的加减计算。6音乐播放器用单片机设计一音乐播放器可以通过按键播放多首音乐7串口通信实现字符传送用两个单片机实现0-F的字符串行传送8数字电压表用A/D采样实现数字电压表,采用数码管或液晶显示电压值9波形发生器用D/A完成锯齿波输出,用PROTEUS内带的示波器查看波形10频率计数器用PROTEUS内带的频率发生器产生频率源三、 问题的分析及设计思路基于51单片机设计一音乐播放器,可以通过按键来播放不同的音乐,而且具有显示功能,在播放音乐的同时在LCD上显示歌曲名称及演唱者等信息。其大致思路为利用晶振产生一定频率的高低电平,利用音节算法将其转化为高低不同的音节,并将其输出到p3.0接口,通过外接数字扬声器发出声音。此外,单片机通过74LS373和与门同LCD相连,通过软件编程实现歌曲的显示。四、 方案的提出基于AT89C51 单片机的音频播放器音频播放器系统结构有按键电路、显示电路、晶振电路等组成。系统中单片机是控制核心, 晶振产生一定频率的高低电平,利用音节算法将其转化为高低不同的音节,并将其输出到p3.0接口,通过外接数字扬声器发出声音。此外,单片机通过74LS373和与门同LCD相连,通过软件编程实现歌曲的显示。液晶显示模块显示曲目名称和相应的歌手名字。五、电路设计及硬件原理图晶振AT89C51按键LCD显示扬声器AT89C51音乐播放器系统结构图1、系统控制核心器件选用美国ATMEL 公司的AT89C51单片机, 一个12MHZ的晶振,两片CAP电容,液晶模块选用LM016L,74ls373锁存器,以及一个数字扬声器,导线若干。2、AT89C51的引脚排列如图所示:首先对于I/O口线做一介绍:P0口8位、漏极开路的双向I/O口。当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;在校验时,P0口可输出指令字节(须外加上拉电阻)。P0口也可做通用I/O口使用,但需加上拉电阻,变为准双向口。当作为普通输入时,应将输出锁存器置1。P0口可驱动8个TTL负载。P1口8位、准双向I/O口,具有内部上拉电阻。P1口是为用户准备的I/O口双向口。在编程和校验时,可用做输入低8位地址。用做输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。P2口8位、准双向I/O口,具有内部上拉电阻。当使用片外存储器或外扩I/O口时,P2口输出高8位地址。在编程/校验时,P2口可接收高字节地址和某些控制信号。AT89C51引脚排列图P2口也可做普通I/O口使用。用做输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。P3口8位、准双向I/O口,具有内部上拉电阻。P3口可做普通I/O口使用。用做输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。AT89C51的编程电压VPP为12V或5V,在产品封装的顶部印有编程电压标志 3、74LS373锁存器74LS373为三态输出的八 D 透明锁存器,共有 54S373 和 74LS373 两种线路结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别): 型号373 的输出端 O0O7 可直接与总线相连。 当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。 引出端符号: D0D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 O0O7 输出端4、 晶振电路部分单片机要想工作必须要在XTAL1和XTAL2端口加晶振电路,单片机工作速度也是由晶振电路决定的。5典型的晶振电路如图3-2所示:图3-2 晶振电路在晶振电路中,电路中电容C3和C4对振荡频率有微调作用,通常的取值范围3010pF;石英晶体选择6MHz或12MHz都可以。其结果只是机器周期时间不同,影响记数器的记数初值和运算速度。5、音符发音原理: 乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。6、 单片机产生不同频率脉冲信号的原理:1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下: 例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。计数脉冲值与频率的关系公式如下:N=Fi/2/Fr (N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率 )3)、 其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=65059仿真原理图六、软件流程图及程序清单开始初始化判断是否有键按下显示初始字符显示曲目1播放曲目1显示曲目2播放曲目2显示曲目3播放曲目3无P1.0P1.1P1.2软件清单:#include #include #include SoundPlay.h#define REG0 XBYTE0x0000/LCD写指令寄存器的地址,可根据配置修改#define REG1 XBYTE0x0001/LCD读出数据到D0D7的地址,可根据配置修改#define REG2 XBYTE0x0002/LCD写数据寄存器的地址,可根据配置修改#define REG3 XBYTE0x0003/LCD读数据寄存器的地址,可根据配置修改unsigned char bdata busyflag;unsigned char dat,datn;unsigned char word116= to begain ;/第1行显示缓存unsigned char word216= by huang ;/第2行显示缓存code unsigned char word316=Fairy tale;/用于固定显示的数据,固化到ROM中code unsigned char word416=by guangl;/用于固定显示的数据,固化到ROM中code unsigned char word516= The same song;/用于固定显示的数据,固化到ROM中code unsigned char word616= by everyone;/用于固定显示的数据,固化到ROM中code unsigned char word716= farewell;code unsigned char word816= by body;sbit busyflag_7=busyflag7;sbit p10=P10;sbit p11=P11;sbit p12=P12;void busy()/查询LCD是否忙碌子程序dobusyflag=REG1;while(busyflag_7);void wrc(unsigned char wcon)/写控制指令子程序busy();REG0=wcon;void wrd(unsigned char wdat)/写数据寄存器子程序busy();REG2=wdat;void rdd()/读数据寄存器子程序busy();dat=REG3;void lcdint()/LCD初始化子程序wrc(0x38);wrc(0x01);wrc(0x06);wrc(0x0c);void wrn(unsigned char word)/连续写n个字符数据到LCD的数据寄存器中unsigned char i;for(i=0;i16;i+)wrd(wordi); /*Music*/童话unsigned char code Music_Girl= 0x0F,0x67, 0x19,0x03, 0x18,0x03, 0x17,0x02, 0x17,0x03, 0x18,0x04, 0x17,0x0E, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x16,0x04, 0x15,0x18, 0x15,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x03, 0x1A,0x04, 0x19,0x0E, 0x19,0x03, 0x16,0x03, 0x16,0x03, 0x18,0x04, 0x17,0x0E, 0x17,0x15, 0x15,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x03, 0x1A,0x04, 0x19,0x0E, 0x19,0x03, 0x16,0x03, 0x16,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x16,0x04, 0x15,0x0E, 0x15,0x02, 0x16,0x03, 0x17,0x03, 0x10,0x02, 0x10,0x03, 0x15,0x03, 0x15,0x02, 0x11,0x02, 0x15,0x14, 0x16,0x03, 0x17,0x03, 0x10,0x02, 0x10,0x03, 0x15,0x03, 0x15,0x0D, 0x11,0x03, 0x11,0x0D, 0x15,0x03, 0x15,0x00, 0x00,0x00 ;/同一首歌unsigned char code Music_Same= 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 ;/送别 unsigned char code Music_Code= 0x19,0x02, 0x17,0x0D, 0x19,0x03, 0x1F,0x01, 0x1A,0x02, 0x1F,0x02, 0x19,0x01, 0x19,0x02, 0x15,0x0D, 0x16,0x03, 0x17,0x02, 0x16,0x0D, 0x15,0x03, 0x16,0x15, 0x19,0x02, 0x17,0x0D, 0x19,0x03, 0x1F,0x66, 0x1B,0x03, 0x1A,0x02, 0x1F,0x02, 0x19,0x01, 0x19,0x02, 0x16,0x0D, 0x17,0x03, 0x18,0x66, 0x11,0x03, 0x15,0x15, 0x1A,0x02, 0x1F,0x02, 0x1F,0x01, 0x1B,0x02, 0x1A,0x0D, 0x1B,0x03, 0x1F,0x01, 0x1A,0x0D, 0x1B,0x03, 0x1F,0x0C, 0x1A,0x03, 0x1A,0x0D, 0x19,0x03, 0x17,0x0D, 0x15,0x03, 0x16,0x15, 0x19,0x02, 0x17,0x0D, 0x19,0x03, 0x1F,0x66, 0x1B,0x03, 0x1A,0x02, 0x1F,0x02, 0x19,0x01, 0x19,0x02, 0x16,0x0D, 0x17,0x03, 0x18,0x66, 0x11,0x03, 0x15,0x65, 0x19,0x02, 0x17,0x0D, 0x19,0x03, 0x1F,0x01, 0x1A,0x02, 0x1F,0x02, 0x19,0x01, 0x19,0x02, 0x15,0x0D, 0x16,0x03, 0x17,0x02, 0x16,0x0D, 0x15,0x03, 0x16,0x15, 0x19,0x02, 0x17,0x0D, 0x19,0x03, 0x1F,0x66, 0x1B,0x03, 0x1A,0x02, 0x1F,0x02, 0x19,0x01, 0x19,0x02, 0x16,0x0D, 0x17,0x03, 0x18,0x66, 0x11,0x03, 0x15,0x15, 0x00,0x00 ;void main() InitialSound();lcdint();/初始化wrc(0x80);/显示第1行的第1个字符wrn(word1);wrc(0xc0);/显示第2行的第1个字符wrn(word2); while(1) if(p10=0) /判断P1.0是否按下,并显示数据 wrc(0x80);wrn(word3);wrc(0xc0);wrn(word4);Play(Music_Girl,0,3,360);if(p11=0)/判断P1.1是否按下,并显示数据wrc(0x80);wrn(word5);wrc(0xc0);wrn(word6);Play(Music_Same,0,3,360);if(p12=0)/判断P1.2是否按下,并显示数据 wrc(0x80);wrn(word7);wrc(0xc0);wrn(word8);Play(Music_Code,0,3,360); 七、仿真过程中遇到的问题及解决办法使用Keil仿真是编译通过,但是按键没有作用。解决办法:首先检查硬件连接电路,确认无异常,然后查看编程源代码,最后发现端口定义错误。控制状态失灵。微机输出的控制信号常依赖某些条件的状态输入信号和这些信号的逻辑处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人贷款协议的书写要点
- 2025年《健康管理师》考试练习题及答案
- 线上教育培训协议模板
- 社交媒体影响者营销策略-洞察与解读
- 2025年福建省漳州市圆山劳务派遣服务有限公司招聘若干人考前自测高频考点模拟试题完整答案详解
- 2025年事业单位招聘考试综合类面试真题模拟试卷:情景模拟
- 跨境贸易合作协议执行保证函6篇
- 菏泽地理会考试题及答案
- 多版本回归测试技术-洞察与解读
- 2025国考无锡市监狱管理岗位行测必刷题及答案
- 某大型集团人力资源管理规划方案
- (2025)辅警考试公安基础知识考试真题库及答案
- 李宗仁课件内容
- 印刷品规定五项管理制度
- 缺血性心肌病血运重建专家共识(2025版)解读
- 3.1《〈中国科学技术史〉序言(节选)》课件高二语文(高教版2023拓展模块上册)
- T/CRACM 0003-2021脂20科学减脂技术服务规范
- 建设银行笔试题目及答案
- 安全生产文明施工措施费用台账
- 解码国家安全知到智慧树章节测试课后答案2024年秋国际关系学院
- 输液反应处理及报告流程
评论
0/150
提交评论