第16讲51单片机课程 课题设计方法文档格式.docx
《第16讲51单片机课程 课题设计方法文档格式.docx》由会员分享,可在线阅读,更多相关《第16讲51单片机课程 课题设计方法文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
在这里我们为了学习的目的,选用动态显示。
2、按键电路:
3、复位电路
三、硬件电路的设计方案
硬件电路的设计应从两个方面予以考虑。
一是根据应用系统总体设计的参数范围、测控速度与精度等技术指标要求选择单片机。
不同系列单片机或同一系列不同型号单片机芯片内部提供的资源状况各不相同,如ROM、RAM容量,定时/计数器、I/O接口、中断系统等硬件配置,应选择性价比最适合的单片机型。
二是在已选定单片机型号的基础上,根据应用系统的功能要求扩展单片机外部设备的配置,如键盘、打印机、A/D、D/A、报警电路、驱动电路及通用/专用I/O接口等。
硬件电路的设计原则如下:
(1)在性价比满足应用系统要求的基础上,选择更可靠、更熟悉的单片机,缩短研制周期。
(2)尽可能选择较成熟的典型应用电路,以提高系统的可靠性。
(3)单片机内部的资源与外部扩展资源应在满足应用系统设计要求的基础上留有余地,为进一步升级和扩展其功能提供方便。
(4)应充分结合软件方案统筹考虑硬件结构,通常硬件功能较完善,其相应的软件就简单,但硬件成本较高;
而硬件功能略低,其相应的软件就复杂。
实际中应尽量以软件替代硬件来降低成本。
(5)整个系统的相关器件应尽可能做到性能匹配,如电平、速度的匹配等。
(6)充分考虑整个系统的抗干扰设计,如选择具有抗干扰设计的单片机并充分筛选芯片与器件,在电路中采取隔离和屏蔽措施等。
如时钟课题硬件方案选择如下:
1、单片的选择
简单介绍几种单片机的区别
8031:
片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。
用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。
写入到外接程序存储器的程序代码没有什么保密性可言。
8051:
片内有4kROM,无须外接外存储器和373,更能体现“单片”的简练。
但是你编的程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性的,今后你和芯片厂都不能改写其内容。
8751:
与8051基本一样,但8751片内有4k的EPROM,用户可以将自己编写的程序写入单片机的EPROM中进行现场实验与应用,EPROM的改写同样需要用紫外线灯照射一定时间擦除后再烧写。
AT89C51:
他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为ATMELAT89xx做的编程器均带有这些功能。
显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。
写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。
再着,AT89C51、AT89S51目前的售价比8031还低,市场供应也很充足,所以本设计采用89C51单片机。
2、时钟电路
引脚XTAL1为反相器输入端,XTAL2为反相器输出端。
当在放大器两个引脚上外接一个晶体(或陶瓷振荡器)和电容组成的并联谐振电路作为反馈元件时,便构成一个自激振荡器,如图1.1所示。
图1.1单片机时钟电路
三、复位电路
单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。
复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。
AT89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位。
复位电路一般有上电复位、手动开关复位和自动复位电路三种,如图1.2所示。
图1.2单片机复位电路图
(a)上电复位电路;
(b)手动复位电路;
(c)自动复位电路
本设计采用(b)图,即有上电复位又可手动复位
3、显示电路的设计与器件选择
在单片机系统中,通常用LED数码显示器来显示各种数字或符号。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
下面做一些简单的介绍
(1)八段LED显示器
下面做一些简单的介绍:
八段LED显示器由8个发光二极管组成。
其中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用。
它能显示各种数字及部份英文字母。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;
另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
如图1.3所示
图1.3七段LED显示器
(a)共阴性;
(b)共阳性;
(c)管脚配置
(2)、6位一体的显示LED
如图1.4所示,
将所有数码管的a、b、c、d、e、f、g、sp引线并联在一起,由一个8位I/O口控制,而公共端由另一个I/O口控制。
应用时,轮流送入每个LED的字形码与位选码,利用人的视觉暂留现象来显示各位的字符。
当然本设计采用6位一体的显示LED,结构还是一样的。
4、按键电路设计与器件选择
本设计只用了简单两个按键,但对键盘的设计做也做一定的介绍,便于学生学习
1)、行列式非编码键盘的工作原理
行列式键盘又叫矩阵键盘,如图1.5所示,按键设置在行列的交叉点上,如用2×
2的行列结构可构成四个键的键盘,4×
4的行列结构可构成16个键的键盘。
在按键数量较多时,矩阵键盘可节省I/O口线。
图1.5矩阵键盘与AT89C51接口连接图
对于非编码键盘,按键处理程序应具有如下四个功能:
(1)判断键盘上有无键按下。
(2)去除键的机械抖动。
(3)求按下键的键码。
(4)闭合一次,只进行一次键功能操作。
2)、单片机对非编码键盘的控制方式:
1)查询方式
这种方式是指在单片机完成其它工作后的空余时间,调用键盘扫描子程序,来响应键盘输入的要求,在执行键功能程序时,CPU不再响应键输入要求。
2)定时扫描工作方式
定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描,当有键按下时,转入键功能的处理程序。
定时扫描在本质上是中断方式,只不过是定时扫描键盘,以中断的方式处理键盘,它的硬件电路与编程扫描工作方式相同。
3)中断工作方式
单片机应用系统工作时,并不经常需要键输入。
因此,无论是编程工作方式或是定时工作方式,CPU经常处于空扫描状态
图1.6是AT89C51利用中断扫描方式实现的一个2×
8矩阵式键盘的硬件接口电路。
1.6利用中断扩展2×
8键盘电路图
通过前面的原理可知,完成键盘管理的程序主要有主程序和中断服务程序,主程序主要完成初始化和键值处理任务,中断服务程序主要完成键盘扫描和键值读入任务。
5、综合以上选择可画出电路原理图:
由上分析,我们绘制以下的电路图,如图1.7所示,这里的图形是用PROTUES6.3绘制,只是用于模拟仿真;
实际制作电路板时,还要考虑显示器电流的问题,既电流放大与限流的问题。
图1.7电路原理图
1.1.6软件的设计方案
待硬件电路接线完成后,通常可先编写简单的测试程序对硬件电路进行测试,排除硬件电路设计中存在的错误。
然后根据设计任务的要求确定系统程序的整体结构,尽可能采用模块化程序设计的方法,将任务划分为相对独立的功能模块,明确各模块的功能、时间顺序和相互关系,如系统管理、数据与信息采集、报警处理、误差处理、标度变换、数据处理、输出控制等;
列出详细的资源划分表,确定各模块的出口和入口状态;
建立必要的数学模型,正确描述出系统中输入和输出间的数学关系;
画出各程序模块的详细流程图;
根据流程图逐一编写程序;
最后将各个模块连接成完整的程序。
(1)软件设计的基本原则。
①程序整体结构清晰、简洁、流程合理,主程序尽可能简单明了。
②各种功能的实现应采用模块化、子程序化,以便于编制、阅读、连接、移植、修改和调试。
③对各子程序的入口、出口条件,占用的资源要明确,以便于分析、调试和共享。
④程序存储区、数据存储区、寄存器区、位寻址区、堆栈区应规划合理,做到既节约资源又不会发生相互间的冲突。
⑤运行状态标志化管理,对各功能程序的运行结果、操作状态应设置状态标志,以便查询和实现运行控制。
⑥运用软件或软硬件相结合等方法抑制干扰,提高系统的抗干扰能力。
⑦必要时可结合硬件采取加密措施。
(2)模块化程序结构。
①主程序MAIN:
完成系统初始化,包括时钟参数及初始标识的设定;
I/O口、定时/计数器初始状态的设定;
键盘和时钟显示的监控管理。
②时钟参数修改子程序FTION0:
关定时器,;
时钟修改位置记录值加1,根据记录值将对应的时钟时、分、秒修改标识置1。
③加1键修改子程序CUM:
根据修改(或设置)标识将时钟(或闹钟)相应单元内容加1。
④键盘测试子程序KEYTEST:
判断是否有键按下。
⑥查键号子程序SERCH:
若有键按下,则确定键号。
⑥显示子程序DISPLAY:
根据显示单元首地址显示时钟时间。
⑦定时修正时钟参数中断服务子程序CLOCK:
定时修改时钟参数。
6、资源分配
选用定时/计数器T0,定时方式2工作,每隔50ms溢出中断一次。
表1-3单片机内部RAM部分资源分配表
地址分配
用途
名称
初始化值
08H
时钟秒单元内容修改标识位,(1表示允许修改,0表示不允许)
SECBIT
09H
时钟分单元内容修改标识位(1表示允许修改,0表示不允许)
MINBIT
0AH
时钟时单元内容修改标识位(1表示允许修改,0表示不允许)
HOURBIT
表1-4单片机内部RAM部分资源分配表
30H
时钟参数修改记忆单元,按一次时钟修改功能键,单元内容加1,根据记忆次数将21H单元中对应的时钟参数修改标识位置1
TIMDATA
00H
34H
时钟显示缓冲区秒单元
SEC
35H
时钟显示缓冲区分单元
MIN
36H
时钟显示缓冲区时单元
HOUR
40H
保存秒个位数字
41H
保存秒十位数字
42H
保存分个位数字
43H
保存分十位数字
44H
保存时个位数字
45H
保存时十位数字
60H~6FH
堆栈区
三、软件的设计方案
1、流程图设计
1)、主程序流程图
图1.8主程序MAIN流程框图
2)、其它程度模块的设计。
图1.9时钟修改功能子程序FTION0流程框图
图1.10加1键修改子程序CUM流程框图
图1.11时钟修正中断服务子程序CLOCK流程框图
2、程序编写:
(略)
1)、显示器检测程序
2)、按键检测程序
3)、时钟源程序
四、调试方法与步骤
1)输入源程序
输入源程序时,应以西文方式输入字母和符号,且中文注释前要加分号。
2)对源程序进行汇编和纠错
根据汇编提供的错误信息逐条纠正错误,直至汇编信息提示“错误(0)”、“汇编结束”。
3)确定调试方案
在调试程序前一定要认真分析源程序,明确各功能程序运行的预期结果。
然后结合源程序应达到的结果,确定出如何通过某些关键参数和实验现象检验程序运行结果正确与否。
例如:
程序运行过程中路径的变化、累加器A内容的变化、其他特殊寄存器内容的变化等。
并针对具体的分析和观察对象选择较合适的调试方法。
如单步运行、跟踪运行、连续运行、快速运行至光标处、设置断点等调试方法。
4)调试程序
(1)调试主程序。
主程序运行后,在无任何按键输入时观察有无显示,时钟是否工作,其时、分、秒显示的变化过程是否正确。
若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。
若定时/计数器的初始化出错,则时钟将不能工作;
若显示程序出错,则将不能正确显示时钟单元内容;
若定时/计数器中断服务子程序出错,则其显示数据的变化规律将不正常。
(2)调试子程序。
在调试主程序时,必然要调用相关的功能子程序。
因此,首先应明确子程序的具体功能,通过对子程序的分析,确定子程序的入口、出口参数及相关标识位的状态,然后在满足入口条件的状态下,设法检查从主程序进入子程序,再由子程序返回到主程序的运行过程。
可采用跟踪运行或运行至光标处的方法,检查从主程序进入子程序内部的运行过程,再通过单步运行等方法检查子程序内部的运行情况和返回主程序的过程。
通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。
5)脱机运行
将调试已通过的程序写入单片机内部(或外部)程序存储器中,再将写好程序的单片机(或存储器)插入已设计好的单片机用户板上,把仿真系统与用户板脱离开来,最后将所设计的单片机应用系统独立通电运行。
五、分析与总结
(1)以数字钟为例,引入单片机应用系统设计、分析与调试的一般方法。
一个单片机应用系统的设计与制作,一般要经过对被控对象的需求进行调研、根据系统的功能和技术指标选择控制方案、提出系统的总体构思、硬件设计、印制板制作、元器件安装、软件设计、软硬件仿真调试、固化程序、脱机运行、整机调试等几个阶段,如图1.12所示。
图1.12应用系统开发流程框图
(2)在上述过程中,难点是如何构建出程序设计的整体框架,包括主程序流程框图和子程序流程框图的构建、各功能模块之间的组合关系。
前面提供的各功能模块流程框图和参考程序只是针对完成实训项目基本要求而提出的一种设计方案。
(3)主程序是负责应用系统整体的管理与协调,包括单片机资源的调配、初始参数与标识位的设定、可编程部件的初始化及系统各主要部分(如键盘、显示)初始状态的管理等。
构建主程序时应做到简单明了,对各种操作功能实现模块化管理,即尽可能多的采用子程序结构,方便分析与调试。
(4)采用模块化、子程序化的优点是便于连接和移植,特别是重复使用时尤为方便。
但使用者必须预先明确各子程序的入口参数、出口参数和所占用的资源,合理利用堆栈,避免主程序与子程序之间、子程序与子程序之间所占用的资源发生冲突。
(5)运行状态采用标志化管理可使程序结构更加简化。
在上述程序中,对各按键的操作过程和状态都采用标识位来描述,如时钟参数(时、分、秒)修改哪一位、。
(6)在调试程序前,一定要预先将源程序分析透彻,在此基础上训练如何通过实验现象分析和判断产生故障的原因及故障可能存在的大致范围;
灵活运用开发系统所提供的各种调试方法,快速有效地排查和缩小故障范围。
通过反复调试,不断地分析和排除故障,调试软件和硬件的能力及速度。
(7)调试程序时,要结合能反映故障存在与否的参数变化、运行路径变化、显示内容变化等,选择合适的观测点和观测对象,再运用适当的调试方法,快速地检验调试结果,由此分析和判断故障点。
(8)在实际设计中应从性能技术指标和价格等方面合理选择整体方案。
思考题:
课后小记: