C51单片机一看就会的精品课件_第1页
C51单片机一看就会的精品课件_第2页
C51单片机一看就会的精品课件_第3页
C51单片机一看就会的精品课件_第4页
C51单片机一看就会的精品课件_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 单片机系统开发,教学目标 10.1 单片机系统设计步骤 10.2 单片机应用系统开发工具 10.3 单片机开发系统应用实例 10.4 课程设计 本章小结 思考题与习题,1. 了解单片机应用系统设计的过程和要求;知道单片机应用系统硬件设计的内容和要求;知道单片机应用系统软件设计的步骤和要求;理解软件设计与硬件设计的关系。 2. 了解单片机开发工具的主要作用;了解单片机开发系统的分类;知道单片机开发系统的功能;理解单片机应用系统软、硬件调试的方法。,教学目标,3. 理解单片机应用系统设计实例:数码管数字时钟电路的设计、数字式音乐盒设计设计步骤、设计方案、硬件设计、软件设计等知识。举一反三

2、,具备简单常用单片机系统的设计开发能力。,10.1 单片机系统设计步骤,一个完备的单片机应用系统包括硬件和软件两大部分,硬件是躯体,软件是灵魂。只有系统的软、硬件紧密配合、协调一致才能发挥其高性能作用。在单片机应用系统的开发过程中,涉及多种开发技术和工具,需要反复修改调整软、硬件,以便尽可能提高系统的工作效率。 单片机应用系统的功能不同,其硬件和软件结构也不相同,但研制、开发的方法和步骤基本一致。,10.1.1 总体设计,1. 可行性调研 可行性调研的目的,是分析完成该项目的可能性。进行这方面的工作,可参考国内外有关资料,看是否有人进行过类似的工作。如果有,则可分析他人是如何进行的,有什么优缺

3、点,有何值得借鉴的地方;如果没有,则需作进一步的研究,此时的重点应放在能否实现目标这个环节,首先从理论上进行分析,探讨实现的可能性,所,要求的客观条件是否具备(环境、测试手段、仪器设备、资金、人员等),然后结合实际情况,确定能否立项的问题。,2. 拟制设计任务书 设计者首先应对系统的任务、控制对象、工作环境作周密的调查研究,必要时还要勘察工业现场,明确系统的各项指标。进而编写设计任务书,整个系统的设计开发都要围绕着如何达到技术指标来进行。,3. 建立数学模型 设计任务书拟定后,接下来应对被控对象的物理过程和计算任务进行全面分析,并从中抽象出数学表达式,即建立数学模型。数学模型的形式是多种多样的

4、,可以是一系列的数学表达式,可以是数学推理和判断,也可以是运行状态的模拟等。数学模型要能真实描述客观控制过程,要精确而简单。,4. 总体方案设计,在上述基础上,对系统各部分构成进行总体规划。主要考虑以下几个问题: 系统组成:根据系统功能,确定系统主要由哪些功能模块构成:如键盘、显示、输入/输出通道、通信等。 单片机选型:根据系统的精度和速度要求合理选择单片机机型。可以综合考虑单片机的实用性、性价比、开发工具和研发人员的熟悉程,等方面因素。 软硬件功能分配:确定哪些功能由硬件实现,哪些功能由软件完成。在不影响系统技术指标的前提下,提倡尽量用软件实现。,10.1.2 硬件设计,根据总体方案画出硬件

5、电路原理图,然后在单片机开发仪或实验板上搭出电路,并且在调试和运行软件中随时加以修改和补充,最后制作印制电路板并装成样机。,为使硬件设计合理,系统的电路设计应注意以下几个方面: 尽可能选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性。,尽量选用功能强、集成度高的电路或芯片。 选择通用性强、市场货源充足的元器件。 系统扩展及各功能模块在设计满足应用系统功能要求基础上,应适当留有余地。 尽量采用新技术。 充分考虑各部分的驱动能力。 系统的抗干扰设计。,10.1.3 软件设计,在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相互结合。当系统硬件电路确定后,软件的任务也就明确了。

6、 系统中的应用软件是根据系统功能要求设计的。一般地讲,软件的功能可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量、计算、显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系,统软件中充当组织调度角色。由于应用系统种类繁多,程序编制者风格不一,因此应用软件因系统而异。尽管如此,作为优秀的系统软件还是有其共同点及规律的。,1. 程序的总体设计 程序总体设计是指从系统的高度考虑程序结构、数据形式和程序功能的实现方法和手段。,在拟定总体设计方案时,设计者必须合理选择切合实际的程序设计方法。常用的程序设计方法有三种:, 模块化程序设计:把一个复杂的应用程

7、序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程、调试,然后装配起来联调,最终成为一个有实用价值的程序。, 结构化程序设计:在编程过程中,对程序结构进行适当限制,特别是限制转移指令的使用,用于控制程序的复杂程序,使程序上下文与执行流程保持一致。这是一种比较理想的程序设计方法。, 自顶向下程序设计:从系统一级的主干程序开始,集中精力解决全局问题,然后层层细化逐步求精,最终完成一个复杂的程序。,2. 画程序流程图 不论采用哪种设计方法,程序总体结构确定后,应结合数学模型确立各子任务的具体算法和步骤,画出流程图,以方便程序编写。,3. 程序的编制 在开始编写程序之前,应先对程序地址

8、空间的分配、工作寄存器的安排、数据结构、端口地址等进行分配。然后再根据程序流程图用汇编语言或其他高级语言编写程序。,4. 程序的检查和修改 上机调试前,可借助一定的编译软件对程序中的语法错误查找出来并修改。,10.1.4 系统的调试与运行,调试包括硬件调试、软件调试和系统联调。调试通过后还要进行一段时间的试运行,以验证系统能否经受实际环境的考验。经过一段时间的试运行就可投入正式运行,在正式运行中还要建立一套健全的维护制度,以确保系统的正常工作。,10.2 单片机应用系统开发工具,1. 单片机开发系统的功能 在线仿真功能; 系统调试功能; 软件辅助设计功能; 程序固化功能。,2. 开发系统的类型

9、 通用型单片机开发系统; 实用型开发系统; 通用机开发系统; 模拟开发系统。,10.3.1 数码管数字时钟电路的设计,1. 设计要求 (1) 以AT89C51单片机为核心器件,构成一个数字式电子时钟。 (2) 用6位数码管分别显示时、分、秒,采用24小时计时方式。 (3) 时钟具有显示时间、调整时间、省电状态(数码管不亮,时钟不停)三种功能。,10.3 单片机开发系统应用实例,2. 总体设计 (1) 6位数码管采用动态显示方式,段选线用P1口控制,位选线用P2口低6位控制。 (2) 功能键由P2.7引入。 (3) 为节省硬件,采用定时计数器产生时间基准。,3. 硬件设计 根据总体设计,硬件电路

10、框图如图10.1所示。,硬件电路由4部分组成:单片机、时钟与复位电路、LED显示及驱动电路、按键输入电路。 电路原理图如下:,4. 软件设计,片内RAM 50H55H作为显示缓冲区,共6个单元分别存放秒、分、时的BCD码个位在低地址单元,十位在高地址单元。时钟的基本单位为秒,定时器T0定时50ms,定时20次即为1S。秒、分逢60进位,时逢24回零。 按键具有以下功能:当按下时间小于1S,进入省电状态(时钟继续运行,但不显示);按下时间大于1S,进入调分状态,时钟停止,等待继,续按键,若再次按键时间小于0.5S,分加1;若大于0.5S,进入小时调整状态。在小时调整状态下,按键时间小于0.5S,

11、时加1,若大于0.5S,退出时钟调整,时钟按新设置的时间运行。 在时钟调整状态下,当前被调整的时间每0.3S闪烁显示,定时器T1定时闪烁时间间隔0.3S。,(1) 主程序设计 主程序流程图如下:,图10.3 主程序流程图,主程序如下: ORG 0000H AJMP MAINT ORG 000BH AJMP INT01 ORG 001BH AJMP INT11 MAINT:MOV R0,#7FH CLR A WZ1: MOV R0,A DJNZ R0,WZ1,MOV SP,#30H MOV 5AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV

12、 TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB TR0 MOV R4,#14H,MAINT1:LCALL XZCX JNB P2.7,SJTZ0 SJMP MAINT1 SJTZ0: LCALL XSZCX JNB P2.7,SJTZ1 SJMP MAINT1 SJTZ1: CLR ET0 CLR TR0 LCALL YS1S JB P2.7, KMTES MOV R2, #06H,SETB ET1 SETB TR1 XYZ2: JNB P2.7, XYZ1 CLR 01H XYZ4: JB P2.7, XYZ3 LCALL YS05S JNB P2

13、.7, XYZHH MOV R0, #53H LCALL ADD1 MOV A, R3 CLR C,CJNE A, #60H, QWE QWE: JC XYZ4 CLR A MOV R0, A DEC R0 MOV R0, A CLR C AJMP XYZ4 KMTES: SETB ET0 SETB TR0 KMA: JB P2.7, $,LCALL XSZCX JB P2.7, KMA KMA1: JNB P2.7,$ LJMP MAINT1 XYZHH: JNB P2.7, XYZ5 SETB 01H XYZ6: JB P2.7, XYZ7 LCALL YS05S JNB P2.7, XY

14、ZOUT MOV R0, #55H LCALL ADD1,MVO A, R3 CLR C CJNE A, #24H, KMB1 KMB1: JC XYZ6 CLR A MOV R0, A DEC R0 MOV R0, A AJMP XYZ6 XYZOUT: JNB P2.7, XYZOUT1 LCALL XSZCX,JNB P2.7,XYZOUT MOV 20H,#00H MOV 56H,52H MOV 57H,53H MOV 58H,54H MOV 59H,55H CLR TR1 CLR ET1 SETB TR0 SETB ET0 LJMP MAINT1,XYZ1: LCALL XSZCX

15、AJMP XYZ2 XYZ3: LCALL XSZCX AJMP XYZ4 XYZ5: LCALL XSZCX AJMP XYZHH XYZ7: LCALL XSZCX AJMP XYZ6 XYZOUT1: LCALL XSZCX AJMP XYZOUT,(2) 显示子程序设计 XSZCX: MOV R1, #50H MOV R5, #0FEH MAXY: MOV A, R5 MOV P2, A MOV A, R1 MOV DPTR, #ABC MOVC A, A+DPTR MOV P1, A LCALL YS1MS INC R1,MOV A, R5 JNB ACC.5, ENDOUT RL

16、A MOV R5, A AJMP MAXY ENDOUT: MOV P2, #0FFH MOV P1, #0FFH RET,(3) T0中断服务程序设计 INT01: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A, #0B7H ADD A, TL0 MOV TL0, A MOV A, #3CH ADDC A, TH0 MOV TH0, A,SETB TR0 DJNZ R4, INT0U AD1: MOV R4, #14H MOV R0, #51H LCALL ADD1 MOV A, R3 CLR C CJNE A, #60H, AD2 AD2: JC INT0

17、U CLR A MOV R0, A,DEC R0 MOV R0, A MOV R0, #57H ACALL ADD1 MOV A, R3 CLR C CJNE A, #60H, AD3 AD3:JC INT0U CLR A MOV R0, A DEC R0,MOV R0, A MOV R0, #59H ACALL ADD1 MOV A, R3 CLR C CJNE A, #24H, AD4 AD4: JC INT0U CLR A MOV R0, A DEC R0 MOV R0, A,INT0U: MOV 52H, 56H MOV 53H, 57H MOV 54H, 58H MOV 55H, 5

18、9H POP PSW POP ACC SETB ET0 RETI,(4) T1中断服务程序设计 INT11: PUSH ACC PUSH PSW MOV TL1, #0B0H MOV TH1, #3CH DJNZ R2, INT1U MOV R2, #06H CPL 02H JB 02H, CCC1 MOV 52H, 56H MOV 53H, 57H,MOV 54H, 58H MOV 55H, 59H INT1U: POP PSW POP ACC RETI CCC1: JB 01H, CCC2 MOV 52H, 5AH MOV 53H, 5AH MOV 54H, 58H MOV 55H, 59

19、H AJMP INT1U,CCC2: MOV 52H, 56H MOV 53H, 57H MOV 54H, 5AH MOV 55H, 5AH AJMP INT1U,(5) 加1子程序 ADD1: MOV A, R0 DEC R0 SWAP A ORL A, R0,ADD A,#01H DA A MOV R3,A ANL A,#0FH MOV R0,A MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RET,(6) 延时子程序 YS1MS: MOV R6,#14H YS1: MOV R7,#19H YS2: DJNZ R7,YS2 DJNZ R6,YS1 R

20、ET YS1S: LCALL YS05S LCALL YS05S RET,YS05S: MOV R3, #51H YS05S1: LCALL XSZCX DJNZ R3, YS05S1 RET ABC: DB 0C0H, 0F9H, 0A4H DB 0B0H, 99H, 92H, 82H, 0F8H DB 80H, 90H, 0FFH END,点击观看仿真演示,10.3.2 数字式音乐盒设计,本节以一个音乐盒为例,通过设计一个音乐盒,了解用单片机产生音频的方法及音乐程序的设计。 音乐盒的音符范围:C调低音1高音7,内部存储一首歌曲,循环播放。,1. 基本乐理知识 在音乐中使用的各个固定频率的音

21、叫音级,常用符号C、D、E、F、G、A、B表示。两音之间音高的距离叫音程。表12-1列出C调高、中、低音对应的频率值。 乐曲即是由不同的音符组成的,而每个音符都有其特定的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。音符频率,的产生可以使用定时计数器产生 ,T0工作于定时方式1,晶振为12MHz。则T0定时时间为某音符周期的1/2,定时时间到则将输出取反,就可以得到固定频率的方波信号。 低音1:频率=262,定时时间=T/2=1/2*262(S) T0初值=65536-1000000/52463628。 低音2:频率=294,定时时间=T/2=1/2*294(S) T0

22、初值=65536-1000000/58863835。,2. 总体设计 选择AT89C2051单片机,通过T0的定时中断,配合P3.0引脚输出音频频率。P3.0引脚输出,经音频放大后接扬声器。系统组成框图如图10.4所示。,音符持续时间的长短即时值,一般用拍数表示。1/8拍=0.05s,1/4拍=0.1s,以此类推,1拍就是0.4S。 节拍的产生,可以用定时器T1或延时方法产生,以1/8拍为基准。若某个音符节拍为1/4拍,则延时两次即可。,3. 硬件设计 电路原理图如下:,4. 软件设计 为了产生音频信号,需先对音符进行编码。在程序中安排一张定时初值表,程序通过音符编码查表得到对应的定时初值。编

23、码如下表所示。,以1/8拍为延时单位,对节拍也进行编码如下。,有了上述两张编码表,任何一首乐曲都可以用其编码来表示。例如:生日快乐歌曲谱如下: C 1=3/4,对此进行编码,音符编码在前,节拍编码在后,得曲谱简码表如下: SONG:DB 0CH,04H,00H,02H,0CH,02H,0DH,08H DB 0CH,08H, 0FH,08H,0EH,08H,00H,08H,0CH DB 04H,00H,02H,0CH,02H,0DH,08H,0CH,08H DB 10H,08H, 0FH,08H,00H,08H,0CH,04H,00H DB 02H,0CH,02H,13H,08H,11H,08H

24、,0FH,08H DB 0EH,08H,0DH,08H,12H,04H,00H,02H,12H DB 02H,11H, 08H,0FH,08H,10H,08H,0FH,08H DB 00H,08H,0FFH ;结束符,(1) 主程序框图,(2) T0中断服务程序框图,图10.6 主程序与中断服务程序框图,程序清单:,ORG 0000H LJMP MUSIC ORG 000BH LJMP SERT0 ORG 0030H MUSIC: MOV TMOD,#01H ; T0定时方式1 SETB EA SETB ET0 ; 开T0中断 SETB P3.0 ; 不发音,STA: MOV 30H,#00H

25、 ;简码指针清0 NEXT:MOV DPTR,#SONG ;DPTR指向简码表首址 MOV A,30H ;简码指针送A INC 30H ;指针加1,指向节拍码 MOVC A,A+DPTR ;取简码 MOV R2,A ;暂存简码 CPL A JNZ NEXT1 ;简码结束否? CLR TR0 ;T0停止 SJMP STA,NEXT1:MOV A, R2 ; 简码送A JNZ SING ; 是发音符,转SING CLR TR0 ; 不发音 SJMP D1 ; 转节拍控制 SING: DEC A ; 根据音符码取定时初值 RL A MOV 22H, A MOV DPTR, #STAB MOVC A,

26、 A+DPTR MOV TH0, A ;送高字节定时初值,MOV 21H,A ;保存至21H MOV A,22H INC A MOVC A,A+DPTR MOV TL0,A ;送低字节定时初值 MOV 20H,A ;保存 SETB ET0 ;开T0中断 SETB TR0 ;启动T0 D1:MOV A,30H ;简码指针送A INC 30H ;简码指针加1,指向下一简码 MOV DPTR,#SONG,MOVC A, A+DPTR ;取节拍码 MOV R5, A ;节拍码送R5 LCALL DELAY ;调节拍控制 CLR TR0 ;节拍到,停止T0 SJMP NEXT ;转下一简码发音控制 ;节

27、拍控制子程序 DELAY:MOV R3,#100 D2: MOV R4,#250 D3: DJNZ R4,D3 DJNZ R3,D2 DJNZ R5,DELAY ;节拍数到否? RET,;T0中断服务程序 SERT0: CLR TR0 ;停止T0 MOV TL0,20H ;重装初值 MOV TH0,21H CPL P3.0 ;音频信号取反 SETB TR0 ;启动T0 RETI ;中断返回,;祝你生日快乐歌简码表 SONG:DB 0CH,04H,00H,02H,0DH,08H,0CH,08H DB 0FH,08H,0EH,08H,00H,08H,0CH,04H,00H DB 02H,0CH,02H,0DH,08H,0CH,08H,10H,08H DB 0FH,08H,00H,08H,0CH,04H,00H,02H,0CH DB 02H,13H,08H,11H,08H,0FH,08H,0EH,08H DB 0DH,08H,12H,04H,00H,02H,12H,02H,11H DB 08H,0FH,08H,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论