版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 概述 在近几十年里,电子计算机的发展经历了从电子管,晶体管,中小型规模集成电路到大规模集成电路四个阶段,尤其是随着大规模集成电路技术的飞跃发展,20世纪70年代初诞生了微型计算机。随着工业需求对生产设备的进一步提高,促使计算机应用技术飞速的发展,各行各业几乎都应用了微型计算机计数。微处理器是指小型计算机或微型计算机的控制和运算器部分,微型计算机是具有完整运算及控制功能的计算机,他除了包括为处理器外,还包括存储器,输入输出接口电路以及输入输出设备,单片机指单片微型计算机,它将CPU,RAM,ROM,定时器/计数器,输入输出接口电路,中断,串行通信等主要计算机部件集成在一块大规模集成电路芯
2、片上,组成单片微型计算机,简称单片机。单片机的形态和结构功能比较少,但是它已具有了微型计算机的组成结构和功能。由于单片机的结构简单,能够完全融入到应用系统当中,所以具有很宽的应用范围。单片机可以分为两种形似:意识在通用微型计算机中广泛采用的将程序存储器和数据存储器合用一个存储空间的结构,称为普林斯顿结构或冯·诺依曼结构;另一种是将程序存储器和数据存储器分开而分别寻址的结构,称为哈弗结构。Intel公司的mcs51和80c51系列单片机都是这种结构。而且大都数生产厂家的单片夹都是用这种结构。MCS51单片机主要功能结构如下:1. 8位字长CPU和指令系统。2. 1个片内时钟振荡器和时钟
3、电路3. 64kb外部数据存储器地址空间4. 64kb外部数据存储器地址空间5. 32条双向分别可位寻址的I/O口线6. 128B的片内RAM7. 2个16位定时/计数器8. 具有2个优先级的5个中断源结构9. 1个全双工串行口10. 1个布尔处理器 下图为STC89C52引脚图:第2章 课题设计的要求、目的及意义本课题要求以单片机为核心设计一个电子琴,具有自动播放乐曲和弹奏乐曲的功能。设定开关或按钮K1、K2和K3。开关或按钮K1打开或关闭自动播放乐曲1;开关或按钮K2打开或关闭自动播放乐曲2;开关或按钮K3为手动弹奏乐曲。用21个按键开关来分别控制产生低音“1、2、3、4、5、6、7”、中
4、音“1、2、3、4、5、6、7”和高音“1、2、3、4、5、6、7”。利用单片机端口I/O口线或扩展I/O口线形成3×8矩阵式键盘完成上述按键的分配。设计任务包括控制系统硬件设计和应用程序设计。要求焊接好开发板,在开发板上进行调试。大学以来,我们学习了一些电子电路方面的知识这个学年又学习了单片机原理与应用和微机原理,对单片机有了初步的了解,而且单片机技术是一门应用性很强的学科,光是学习理论知识和看书是没有太大的意思和作用。纯理论学习是非常枯燥的,这点同学们深有体会。学完很快就会忘了,唯有理论加上实际应用才会使学习变得更加有意义,有作用。这次课程设计就是为了让我们增加对单片机原理和结构
5、,熟悉数字电路和元器件的使用。第3章 系统总体方案选择与说明音乐的产生原理是因为有不同频率的脉冲通过单片机I/O口控制蜂鸣器发声,脉冲信号可以用定时器定时产生某一频率的脉冲,单片机内部有2个定时计数器,利用定时计数器T0工作在方式1下定时方式产生脉冲。定时时间到了,就对I/O端口取反。改变定时器TH0,TL0的事值就可以改变频率。例如:要得到587hz的脉冲,晶振频率为12Mhz,那么他的周期T=1/587=1703.577us.半周期约为852us因此只要令计数器计数852us/1us=852次就会对端口取反,I/O端口上就产生这种脉冲了。再者,就是要控制发音的时间了,这里我们用软件延时来控
6、制发音时间。因此,只要将某首歌对应的定时初值和节拍数编成一个表,程序自动查表取数启动定时器定时发音就可以播放出美妙的音乐。表3.1 高中低音符与单片机计数T0相关的计数值表音符频率简谱码 音符频率简谱码低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低
7、5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400 # 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA
8、69864820高 7 SI196765283电子琴可以通过按键发出对应的音符,实际上是通过单片机扫描键盘获得键盘值,进而查表得出对应键的音符码并送到定时器,控制I/O空发出某种脉冲就可以产生音调,既弹琴。下图为流程图:开始是否有按键 N初始化 Y取表码送定时器,启动定时 等待查询 N 键是否释放 Y N K3 Y (1)主程序 弹琴外部中断0或1是否为休止符停止发声现场保护 Y取节拍常数,存R2读取音符表赋给定时器调用延时程序R2=0?是否表尾? N返回 (2)图2 音乐播放开机后,系统等待开关选择。若打开K3,则进入主程序弹琴模式,打开开关K1或K2,则进入播放音乐模式,并分别播放音乐1或
9、2。进入弹琴模式后,按1到16号键盘,就可以发出低音1,2,3,4,5,6,7和中音1,2,3,4,5,6,7和高音1,2音调(限于键盘数量之编写了16个音调的音乐码)。第4章 系统硬件电路设计框图与工作原理系统硬件电路主要是由STC89C52,单片机复位电路电源模块与和16个矩阵键盘构成。电路利用单片机不断扫描I/O端口,如果按下K3键程序则进入弹琴模式,如果按下K1或K2键,就会产生中断脉冲送给INT0或INT1造成中断,利用中断提高CPU效率。中断程序就是执行播放音乐的程序段,中断返回后可以继续弹琴,弹琴模式下CPU不停地扫描端口。一旦有按键按下,CPU就会读入键值位移量,并且取出他的值
10、送入计时器,开启计时。定时器溢出产生中断控制I/O端口取反获得脉冲驱动蜂鸣器发出对应的声音,直到按键松开而停止发声。音乐产生的方法:一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,列出高中低音符与单片机计数T0相关的计数值如表3.1所示.下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音019之间,中音在
11、2039之间,高音在4059之间下图为电路图:(见附录A) 第5章 硬件设计 使用protel99软件可以设计出PCB班子的图。电路设计主要分为显示管模块,按键模块,晶振模块RS232模块电源模块程序存储器与蜂鸣器模块继电器模块外部中断模块和单片机模块。各模块都有单独的功能,也可以扩展其外围电路增加它的功能。下图为总模块图: 第6章 开发板焊接及其测试 焊接开发板前,如果可以最好先测试元件好坏。依据开发板的原理图,然后根据“先焊接中心的原件,先焊接小的原件”原则焊接好开发板 。焊接好后就要对其进行测试了。测试应根据它的功能设计一些程序下载到单片机里面,如果单片机能够完成功能,那么这块板子应该是
12、好的了。 第7章 软件设计及调试 软件完全使用汇编语言编写,软件设计的最重要的步骤是调试,一个程序能否成功,很重要的因素在于你是否会调试程序,因为一个大的或者较大的程序是很难以不成功的,必须通过调试发现它的不足和缺陷与错误。这里我用了keil这样一个提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案的软件。在写这个程序的过程中确实发现了许多的不足和错误,如:关键字的使用,单片机的I/O口位操作。特别是对他的I/O口的读-改-写这样的指令有了很深刻的了解。即读端口时必须先写1操作。第8章 系统联调及操作说明 通过下载程序,观看单片机是否能按照预期的要求运行。
13、如果能则说明程序设计的思路是正确的。首先,编号源程序,编译并产生*.hex文件。开启开发板电源; 第二,打开STC-ISP程序下载软件,打开源文件编译产生的*.HEX 文件(此下载需冷启动单片机,即关闭电源后在开启电源)选择对应串口,点击下载按钮即可完成下载。第三,开始程序运行观察。第四,重复前三步,直到成功。第9章 总结这次单片机课程设计真正让我看到了单片机的魅力所在,学习单片机课程的时候,自由枯燥无味的理论知识和简单的仿真模拟实验并没有让我真正了解单片机的工作原理及其结构.虽说这次单片机的课程设计收获很大,但是也只是对单片机的部分功能结构和原理有比较深的了解,比如定时器的应用,中断的优先级
14、,中断的现场保护,恢复现场。但是单片机的功能非常强大,现在我对他还知之甚少。所以加强对单片机的应用和课题开发练习是非常有必要的,我也觉得高校的单片机课程开得太晚了,要是在大一,最迟大二就开课的话,那么我们更充分的时间去做更多的课题,对单片机也就会有更好的掌握。这样我们也可以尝试学习更多的单片机知识,如AVR,ARM,PIC等更高级的芯片。做课程设计的过程也发现了自己的许都不足之处,比如忘记了中断优先级设置,中断现场的保护。很多相关的知识也很缺乏,比如一些数电知识,其他没有学过的芯片相关知识,没有这更加证实了自己缺乏实际应用经验。 虽然这次课程设计比较累,每天都一,二点钟才睡,用了非常多的时间,
15、但是无时不刻满脑子都是编程,苦思冥想自己的程序为什么没有能够如常所愿,有时还为了一些小问题和同学争执不休,但是每当自己解决一个,哪怕是很小的问题,自己都会感到很欣慰。因为自己弄懂了,会了。总的来说,这两周的的单片机课程设计让我受益匪浅,整个过程也是非常的快乐。参考文献周向红.51系列单片机应用于实践教程王迎旭.单片机原理与应用楼然苗.李光飞51系列单片机设计实例附录A 系统硬件电路原理图附录B 程序清单 ORG 0000H ;程序中断等初始化 LJMP START ORG 0003H JMP INTT0 ORG 000BH JMP TIME0 ORG 0013H JMP INTT1 ORG 0
16、030H START:CLR PSW.4 CLR PSW.3 CLR F0 ;清零弹琴标志位 MOV SP,#0060H ;设置堆栈指针 MOV IP,#02H ;设置中断优先级 MOV TMOD,#01H ;设置定时方式 MOV TCON,#05H ;设置中断方式 MOV IE,#87H ;开放各中断 TQ:MOV A,#0FFH ;扫描是否打开弹琴开关 MOV P3,A MOV A,P3 ANL A,#40H JNZ TQ ;没有则继续扫描等待 SCAN:SETB F0 ;置弹琴标志位为1 (用了这些 ;器R0,R1,R2,R3,R4,R5,R6,) MOV R2,#0FEH MOV R0
17、,#00H ;设置 行 指针R0 S0:MOV R1,#03H ;设置 列 指针R1 MOV A,R2 MOV P2,A MOV A,P2 ;读引脚值 MOV R4,A ;保存当前引脚状态值 SETB C S1:RLC A ;输出矩阵本列键盘某列引脚值 JNC KEY ;C=0则转移到key DEC R1 ;扫描下一列 CJNE R1,#0FFH,S1 ;本行4列全部扫描完毕否? INC R0 ;是、继续扫描下一行 SETB C MOV A,R2 ;改变扫描输出值 RLC A MOV R2,A ;保存扫描输出值 CJNE R0,#04H,S0 ;4行是否扫描完成 JMP SCAN KEY:MO
18、V DPTR,#TABLE2 ;取表首址 MOV A,R0 ;取行指针 MOV B,#04H ; MUL AB ; ADD A,R1 ;A中为键盘码值(015) MOV B,#02H ; MUL AB ;获得矩阵键盘表相对位移存于A MOV R3,A ;保存相对位移值 MOVC A,A+DPTR MOV R5,A ;保存计时常数高8位到R5 MOV TH0,A ;对定时器高8位赋值 INC R3 ; MOV A,R3 ; MOVC A,A+DPTR ;去定时器低8位 MOV R6,A ;保存计时常数低8位R6 MOV TL0,A ; SETB TR0 ; JARGE:NOP NOP MOV A
19、,P2 XRL A,R4 ;比较按键是否放开 JZ JARGE ; CLR TR0 ;停止计时 SETB P3.7 ;停止发声 JMP SCAN ;返回继续扫描 INTT0:CLR TR0 CLR F0 MOV DPTR,#TABLE0 ;取歌曲0的表首址 SJMP LOOP INTT1:CLR TR0 CLR F0 MOV DPTR,#TABLE1 ;取歌曲1的表首址 LOOP:SETB PSW.4 CLR PSW.3 MOV R6,PSW MOV R7,A CLR A MOVC A,A+DPTR ;取定时常数高8位 MOV R0,A ;保存到 R0 INC DPTR CLR A MOVC
20、A,A+DPTR ;取定时常数低8位 MOV R1,A ;保存到 R1 ORL A,R0 ;是否为休止符 JZ XZF ; MOV A,R0 ANL A,R1 CJNE A,#0FFH,NEXT ;是否是表尾 SETB P3.7 ;停止发声 JMP OVER NEXT:MOV TH0,R0 ;赋初值,并且启动计时 MOV TL0,R1 SETB TR0 SJMP NEXT1 XZF:CLR TR0 ;停止计时 SETB P3.7 ;停止发声 NEXT1:CLR A ; INC DPTR ; MOVC A,A+DPTR ;取节拍常数 MOV R2,A ; LOOP1:ACALL DELAY ;
21、DJNZ R2,LOOP1 ; INC DPTR CLR TR0 ;停止计时 JMP LOOP ;OVER:CLR TR0 ;中断返回 CLR TF0 ;清除中断标志位 SETB P3.7 MOV PSW,R6 MOV A,R7 CLR PSW.4 CLR PSW.3 RETI ; TIME0:JB F0,TANQIN ;判断是何种定时中断 MOV TH0,R0 ;播放音乐脉冲计时 MOV TL0,R1 SJMP JIESHU TANQIN:MOV TH0,R5 ;弹琴脉冲计时 MOV TL0,R6 JIESHU:CPL P3.7 ;取反p3.7 CLR TF0 RETI ; DELAY:MO
22、V R7,#02 ;延时187ms D2:MOV R6,#187 ; D3:MOV R5,#248 DJNZ R5,$ ; DJNZ R6,D3 ; DJNZ R7,D2 ; RET; TABLE1:DB 0FDH,80H,03H,0FDH,80H,01H,0FDH,0C6H,04H,0FDH,80H,04H DB 0FEH,2AH,04H,0FEH,02H,04H,00H,00H,04H DB 0FDH,80H,03H,0FDH,80H,01H,0FDH,0C6H,04H, DB 0FDH,80H,04H DB 0FEH,5CH,04H,0FEH,2AH,04H,00H,00H,04H 0FDH,80H,03H,0FDH,80H,01H,0FEH,0C0H,04H,0FEH,84H,04H DB 0FEH,2AH,04H,0FEH,02H,04H,0FDH,0C6H,04H DB 0FEH,98H,03H,0FEH,98H,01H,0FEH,84H,04H, DB 0FEH,2AH,04H DB 0FEH,5CH,04H,0FEH,2AH,04H,00H,00H,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厨房外出采购制度及流程
- 药品采购管理工作组制度
- 企业采购小组轮岗制度
- 蔬菜采购流程及管理制度
- 福州采购内部控制制度
- 企业原材料采购收料制度
- 职工书屋书采购制度
- 中学食堂采购管理制度
- 采购部门制度
- 采购销售规范制度
- 2026湖南张家界市桑植县招聘城市社区专职工作者20人考试参考试题及答案解析
- 2025年国家保安员资格证考试题库+答案
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人考试备考试题及答案解析
- 2025年宿州职业技术学院单招职业技能考试试题及答案解析
- 工艺报警考核制度
- 2025年泰州职业技术学院单招职业倾向性考试题库带答案解析
- 2025年专升本管理学原理模拟试卷及答案
- 保密要害部门部位课件
- (新教材)2026年春期人教版三年级下册数学教学计划+教学进度表
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 可燃气体报警器巡检记录表
评论
0/150
提交评论