第十一章-单片机应用的设计与发展_第1页
第十一章-单片机应用的设计与发展_第2页
第十一章-单片机应用的设计与发展_第3页
第十一章-单片机应用的设计与发展_第4页
第十一章-单片机应用的设计与发展_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、第十二章 单片机应用系统的设计与开发 111 在单片机应用系统总体设计中,应考虑哪几方面的问题?简述硬件设计和软件设计的主要过程。答: 在单片机应用系统总体设计中,主要应考虑硬件设计和软件设计两方面的问题。 硬件设计的任务是根据总体设计要求,在所选择机型的基础上,确定系统扩展所要用的存器、I/O电路、A/D电路以及有关外围电路等,然后设计出系统的电路原理图。 下面介绍硬件设计的各个环节。 (1)程序存储器 当单片机内部程序存储器容量不够时,需外扩存储器。可作为程序存储器的芯片有多种非易失性存储器力口EPROM和E2PROM等,一般应选用速度高、容量较大的芯片,这样使译码电路简单,且使软件扩展留

2、有一定余地。 (2)数据存储器 对于数据存储器的容量要求,各个系统之间差别比较大。有的测量仪器和仪表只需少量的RAM即可,此时应尽量选用片内RAM容量能符合要求的单片机;对于要求较大容量RAM的系统,RAM芯片的选择原则是尽可能减少RAM芯片的数量。例如,一片6264(8KB)比4.片6116(2KB)价格低得多。 (3)输入/输出接口 较大的应用系统一般都要扩展I/O接口,在选择I/O电路时应从体积、价格、功能、负载等几方面考虑。应根据系统总的输入/输出要求来选择接口电路。 A/D和D/A电路芯片的选择原则是应根据系统对它们的速度、精度和价格的要求而确定。 (4)地址译码电路 80C51系统

3、有充分的存储器空间,包括64KB程序存储器和64KB数据存储器,在应用系统中一般不需要这么大容量。为能简化硬件逻辑,同时还要便所用到的存储器空间地址连续,通常采用译码器法和线选法相结合的办法。 (5)外围电路 在测量和控制系统中,经常需要对一些现场物理量进行测量或者将其采集下来进行信号处理之后再反过来去控制被测对象或相关设备。在这种情况下,应用系统的硬件设计就应包括与此有关的外围电路,如信号调节放大电路、驱动电路等。 在单片机应用系统研制中,软件设计一般是工作量最大、最重要的任务。下面介绍软件设计的一般方法与步骤。 (1)系统定义 系统定义是指在软件设计前,首先要进一步明确软件所要完成的任务,

4、然后结合硬件结构,进一步弄清软件承担的任务细节。 定义和说明各输入/输出口的功能,是模拟信号还是数字信号、电平范围、与系统接口方式、占有口地址、读取和输人方式等。 在程序存储器区域中,合理分配存储空间,包括系统主程序、常数表格、功能子程序块的划分、人口地址表等。 在数据存储器区域中,考虑是否有断电保护措施、定义数据暂存区标志单元等。 面板开关、按键等控制输人量的定义与软件编制密切相关,系统运行过程的显示、运算结果的显示、正常运行和出错显示等也是由软件编制,所以事先也必须给以定义,作为编程的依据。 (2)软件结构设计 合理的软件结构是设计出一个性能优良的单片机应用系统软件的基础,必须予以充分重视

5、。 由系统的定义,可以把整个工作分解为几个相对独立的操作;根据这些操作的相互联系及时间关系,设计出一个合理的软件结构。 在程序设计方法上,模块程序设计是单片机应用中最常用的程序设计技术。这种方法的优点是:单个程序模块的设计和调试比较方便且容易完成,一个模块可以为多个程序所共享;缺点是:各个模块的连接有时有一定难度。 (3)程序设计 在软件结构设计确定之后就可以进行程序设计。一般程序设计过程如下: 根据问题的定义,描述出各个输人变量和各个输出变量之间的数学关系,即建立数学模型。然后根据系统功能及操作过程,先列出程序的简单功能流程框图(粗框图),再对粗框图进行扩充和具体化,即对存储器、寄存器、标志

6、位等工作单元作具体的分配和说明。把功能流程图中每一个粗框转变为具体的存储单元、寄存器和I/O口的操作,从而绘制出详细的程序流程图(细框图)。在完成流程图设计以后,便可编写程序。单片机应用程序可以采用汇编语言,也可以采用某些高级语言。编写完后均须汇编成80C5l的机器码,经调试正常运行后,再固化到非易失性存储器中去,完成系统的设计。112 如何技高应用系统的抗干扰性?可采取哪些措施?答: 单片机应用系统在实际工作中,可能会受到各种外部和内部的干扰,使系统工作产生错误或故障。为减少这种错误和故障,就要采取各种提高可靠性的措施。常用措施如下: 提高元器件的可靠性: 在系统硬件设计和加工时应注意选用质

7、量好的电子元器件和接插件,并进行严格的测 试、筛选和老化。 设计时技术参数(如负载)应留有余量。 提高印刷电路板和组装的质量,设计电路板时布线及接地方法要符合要求。 对供电电源采取抗干扰措施: 用带屏蔽层的电源变压器。 加电源低通滤波器。电源变压器的容量应留有余地。输人/输出通道的抗干扰措施 :采用光电隔离电路。 光电隔离器作为数字量、开关量的输人/输出 ,这种隔离电路效果很好。采用正确的接地技术。 采用双绞线。 双绞线抗共模干扰的能力较强 ,可以作为接口连接线。113 请自行设计一个节日彩灯循环闪烁的应用系统 。答 :该题可以有多种循环方式 ,延时时间及左右移不同会有不同的循环效果。以下只是

8、其中的一种形式 ,其余可自行编程实验。 本例电路见题图 11-1,由 P1 口 的 8位控制 8路电灯电路,在每一路中都通过一个可控硅SCR控制 N 路并联电灯的开关。单片机工作频率 12MHz,该程序延时选为 200 ms,用定时器 T0作为定时器 ,初值为 50mS。 编程如下 : 题图 11-1EX11_3: MOV Pl,#0FEH ;初始化为第0位的一组灯亮EX11_3A: ACALL DELAY ;调延时子程序MOV A,PlRL A ;顺序左移一位MOV Pl,AAJMP EXll_3ADELAY MOV TMOD,#0lHMOV Rl,#04HDELAY_1: MOV TH0,

9、#3CH MOV TL0,#0B0H SETB TR0JNB TF0, $CLR TF0DJNZ R1,DELAY_1RET114 请自行设计一个交通灯控制系统,此系统还要求显示秒倒计教时间,每当还差10s该换指示打时(例如红灯挨绿打),该指示灯变为闪烁点亮。答:设计电路如题图11-2所示,单片机工作频率12MHz,在本题中只考虑马路一边的交通灯控制系统。分别用Pl.0和Pl.1控制红灯和绿灯,用两个数码管显示秒的变化。定时器T0用于显示定时,定时器Tl用于灯闪定时。 DM_ADDR EQU 0DFFFH ;数码管断码地址 WM_ADDR EQU 0BFFFH ;数码管位码地址 POSITIO

10、N EQU 30H ;位寄存器 COUNTER EQU 31H ;定位时间寄存器 LAMP1 EQU P1.0 ;红灯 LAMP2 EQU P1.1 ;绿灯;- ORG 0000H LJMP EX4 ORG 000BH LJMP TIMER0 ORG0030HEX4: MOV SP,#50H ;设堆栈指针MOV POSITION, #0FEH ;初始化位码寄存器MOV TMOD,#11H ;设置定时器工作方式MOV TH0,#0F6H ;定时器0初值MOV TL0,#03CHSETB TR0 ;启动定时器。SETB ET0 ;允许定时器0中断SETB EA ;开中断 SETB LAMP1 ;关

11、红灯 CLR LAMP2 ;开绿灯EX4_START: MOV COUNTER,# 60 H ;置用BCD码表示的定时初值EX4A: LCALL DLY_1S ;延时1s MOV A,COUNTER ;时间减1(十进制) ADD A,#99H DA A MOV COUNTER,A CJNE A,#l0H,EX4A ;剩余时间大于10s,继续 LCALL GLARE ;剩余时间为10s,调闪烁子程序 CPL LAMPl ;红灯取反 CPL LAMP2 ;绿灯取反 LJMP EX4_STARTGLARE: MOV Rl,#04HGLARE_LP: CPL LAMP1 CPL LAMP2 LCALL

12、 DLY_250MS DJNZ R1,GLARE_LP MOV A, COUNTER ;时间减1(十进制) ADD A,#99H DA A MOV COUNTER, A ;时间未到,继续闪烁 JNZ GLARE ;时间到,返回 RET ;-DLY_1S: MOV R7,#14DLY_1S_A: MOV THl,#03CH ;置50ms定时初值 MOV TL1,#0B0H SETB TR1 JNB TF1, $ CLR TF1 DJNZ R7,DLY_1S_A CLR TR1RETDLY.250MS MOV R7,#05HDLY_250_A: MOV TH1,#03CH MOV TLl.#0B0

13、H SETB TR1 JNB TF1, $ CLR TF1 DJNZ R7,DLY_250_A CLR TR1 RETTIMERO: PUSH PSW ;保护现场 PUSH ACC CLR TF0 ;清溢出标志 MOV TH0,#0F6H ;重置初值 MOV TL0,#03CH MOV A, POSITION ;确定当前显示位置 CJNE A,#0FEH,TIMER0_A MOV A, COUNTER ;根据位置将显示内容送A,第1位显示时间 ANL A,#0FH LJMP TIMER0, BTIMERO_A: CJNE A,#0FDH,T_END MOV A,COUNTER ;第2位显示时间

14、十位 ANL A,#0F0H SWAP ATIMERO_B: PUSH ACC 暂存显示内容 MOV A,#0FFH ;关显示 MOV DPTR,#WM_ADDR MOVX DPTR,A POP ACC ;查段码 ADD A,#04H MOVC A,A+PC LJMP TIMER0_C DB 3FH,06H,05BH,04FH,066H,06DH,07DH DB 07H,7FH,6FHTIMERO_C:MOV DPTR,#DM_ADDR ;将段码送出DPTR,A MOVX DPTR,A MOV A,POSITION ;将位码送出 MOV DPTR.#WM_ADDR MOVX DPTR,A MO

15、V A POSITION ;改变位码寄存器 RL A MOV POSITION,A CJNE A,#0FBH,T_END ;一遍扫描末完,转 MOV POSITION,#0FEH ;重置位码寄存器T_END: POP ACC ;恢复现场 POP PSW RETI ;中断返回 115 请自行设计一个温度采集系统,要求按1路/秒的速度顺序捡测8路温度点,测温范围为+20+100C,测量精度为 %。要求用5位数码管显示温度,最高位显示通道号,次高位显示一,低三位显示温度值。答按题意设计电路如题图11-3所示。图中数码管采用共阴极,因为测量精度为%,所以采用8位的ADC0809即可满足要求,在显示温度

16、时最低位单位为0.l 0C。单片机工作频率为l2MHz,采用定时器0定时为50ms。其地址分配及编程如下;=DM_ADDR EQU 0DFFFH ;数码管段码地址WM_ADDR EQU 0BFFFH ;数码管位码地址ADC_ADDR EQU 07FF0H ;AD0809转换通道0地址;-POSITION EQN 30 H ;显示位码寄存器CHANNEL EQU 31H ;通道寄存器DISPLAYl EQU3 8H ;显示数据寄存器(高位)DISPLAY2 EQU 39HDISPLAYS EQU 3AHDISPLAY4 EQU 3BHDISPLAYS EQU 3CH ;显示数据寄存器(低位)CO

17、N EQU 3DH ;秒汁数器 题图 11-3;-ORG 0000H ;转l0ms定时中断程序LJMP MAINORG 000BHLJMP TIMER0ORG 0030HMAIN: MOV SP,#50H ;修改堆栈指针 MOV POSITION, #0FEH ;设置位码寄存器 MOV TMOD,#01H ;设置定时器0工作方式 MOV TH0,#0D8H ;定时器0置初值(l0ms) MOV TL0,#0F0H SETB TR0 ;启动定时器0 SETB ET0 ;允许定时器0中断 SETB EA ;开中断 CLR 10H ;秒标志位清0 MOV CON, #100 ;秒计数器置初值STAR

18、T: MOV CHANNEL,#00H ;通道设置(0通道)EX5A: MOV DPTR,#ADC_ADDR MOV A,DPL ADD A,CHANNEL ;计算通道地址 MOV DPL,A MOVX DPTR,A ;启动A/D转换 NOP JB INT1, $ 等待转换结束 MOVX A,DPTR ;读取结果 LCALL BCD ;调结果转换子程序 MOV DISPLAYl .CHANNEL ;送当前显示通道号 MOV DISPLAY2, # 0AH ;段码表中一的位置偏移量DISP1: LCALL DISP ;调结果显示子程序 JB 10H,DISP1 ;1s不到,等待 CLR 10H

19、MOV CON, # 100 ;秒计数器重置初值 INC CHANNEL ;下一通道 MOV A.CHANNEL CJNE A,#08H,EX5A ;不是最后一通道,转EX5A LJMP TART ;循环;- ;将00FFH的十六进制数转换成000999的十进制数,显示单位为0.l 0C;转换近似公式为:A,l003D/256D,结果存人R2(H)R3(L)中,其中A:00FFH,l003=3EBH;将BCD结果送人寄存器DISPIJAY3DISPI.AY5中BCD: MOV R2,A MOV B,#0EBH ;R2* 1003D(3EBH) MUL AB MOV R4,A MOV R3,B

20、MOV A,R2 MOV B,#03H MUL AB ADD A,R3 MOV R3,A MOV A,B ADDC A,#00H MOV R2,A CJNE R4,#80H,BCDl ;与80H比较决定4舍5人BCD1: JC BCD2 MOV A,R3 ADD A,#0lH MOV R3,A MOV A,R2 ADDC A,#00H MOV R2,ABCD2; XCH A,R3 ;转换成非组合BCD码 XCH A,B XCH A,R2 MOV R0,#DISPLAY3 MOV R6,#00H MOV R5,#64H LCALL SUM ;调除法子程序 MOV R6,#00H MOV R5,#0AH LCALL SUM XCH A, B MOV R0,A RET;-SUM: MOV R7,#00HSUM0:CLR C XCH A,B SUBB A,R5 XCH A,B SUBB A,R6 INC R7 JNC SUM0 DEC R7 XCH A,B ADD A,R5 XCH A,B ADDC A,R6 XCH A,R7 MOV R0,AXCH A,R7 INC R0 RET;-D

温馨提示

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

评论

0/150

提交评论