您好,欢迎来到尔游网。
搜索
您的当前位置:首页第讲单片机课程课题设计方法

第讲单片机课程课题设计方法

来源:尔游网
标题: 课程设计方法 教学目标与要求:

掌握课程设计的思路及方法 授课时数:2

教学重点:设计思路 教学内容及过程: 一、 设计功能要求

首先要了解要设计的课题的具体功能是什么?

如设计时钟要了解这一电路是使用单片机实现由LED数码管显示时、分、秒的数字钟,并具有使用按键修改时钟参数。 二、设计的思路

要分解设计任务包括那些基本电路,使用哪种电路形式。 如时钟电路中包括: 1、显示电路: 1) 动态显示

所谓动态显示,就是一位一位地轮流点亮各显示器,对每一位显示器来说,每隔一段时间点亮一次。显示器的亮度跟导通的电流有关,也和点亮的时间与间隔的比例有关。动态显示器因其硬件成本较低,而得到广泛的应用。 2) 静态显示

所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止。静态显示的优点是,显示稳定,在发光二极管导通一定的情况下显示器的亮度大,系统在运行过程中,仅仅在需要更新显示内容时CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高CPU的工作效率;缺点是:位数较多时I/O口往往不够用。

在这里我们为了学习的目的,选用动态显示。 2、按键电路: 3、复位电路

三、硬件电路的设计方案

硬件电路的设计应从两个方面予以考虑。一是根据应用系统总体设计的参数范围、测控速度与精度等技术指标要求选择单片机。不同系列单片机或同一系列不同型号单片机芯片内部提供的资源状况各不相同,如ROM、RAM容量,定时/计数器、I/O接口、中断系统等硬件配置,应选择性价比最适合的单片机型。二是在已选定单片机型号的基础上,根据应用系统的功能要求扩展单片机外部设备的配置,如键盘、打印机、A/D、D/A、报警电路、驱动电路及通用/专用I/O接口等。 硬件电路的设计原则如下:

(1) 在性价比满足应用系统要求的基础上,选择更可靠、更熟悉的单片机,缩短研制周期。

(2) 尽可能选择较成熟的典型应用电路,以提高系统的可靠性。

(3) 单片机内部的资源与外部扩展资源应在满足应用系统设计要求的基础上留有余地,为进一步升级和扩展其功能提供方便。

1

(4) 应充分结合软件方案统筹考虑硬件结构,通常硬件功能较完善,其相应的软件就简单,但硬件成本较高;而硬件功能略低,其相应的软件就复杂。实际中应尽量以软件替代硬件来降低成本。

(5) 整个系统的相关器件应尽可能做到性能匹配,如电平、速度的匹配等。 (6) 充分考虑整个系统的抗干扰设计,如选择具有抗干扰设计的单片机并充分筛选芯片与器件,在电路中采取隔离和屏蔽措施等。

如时钟课题硬件方案选择如下:

1、单片的选择

简单介绍几种单片机的区别

8031:片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的27系列。用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。

8051:片内有4k ROM,无须外接外存储器和373,更能体现“单片”的简练。但是你编的程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性的,今后你和芯片厂都不能改写其内容。

8751:与8051基本一样,但8751片内有4k的EPROM,用户可以将自己编写的程序写入单片机的EPROM中进行现场实验与应用,EPROM的改写同样需要用紫外线灯照射一定时间擦除后再烧写。

ATC51:他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL ATxx 做的编程器均带有这些功能。

显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。再着,ATC51、ATS51目前的售价比8031还低,市场供应也很充足,所以本设计采用C51单片机。

2、时钟电路

引脚XTAL1为反相器输入端,XTAL2为反相器输出端。当在放大器两个引脚上外接一个晶体(或陶瓷振荡器)和电容组成的并联谐振电路作为反馈元件时,便构成一个自激振荡器,如图1.1所示。

VCCPDRfR1GNDXTAL1内部时钟电路XTAL2石英晶体或陶瓷振荡器(外部)C1C2 图1.1单片机时钟电路三、复位电路

2

单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。复位的作用是使处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。

ATC51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位。

复位电路一般有上电复位、手动开关复位和自动复位电路三种,如图1.2所示。

+5 VC10 FR8.2 kVCC1 kRSTC51VSS+5 VC10 FR8.2 kVCCRSTC51VSSMAX75010 FWDO+5 VC51VCC10 k1RST2C51P1.0PESETWDI(a)(b)(c)图1.2 单片机复位电路图

(a) 上电复位电路;(b) 手动复位电路;(c) 自动复位电路本设计采用(b)图,即有上电复位又可手动复位

3、 显示电路的设计与器件选择

在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。下面做一些简单的介绍 (1) 八段LED显示器

在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。下面做一些简单的介绍:

八段LED显示器由8个发光二极管组成。其中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用。它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如图1.3所示

gfGNDabadpgfedcbaf+5 VedpgfedcbadedGNDcdpgbc(a)(b)(c)图1.3 七段LED显示器

(a) 共阴性;(b) 共阳性;(c) 管脚配置

(2)、6位一体的显示LED

3

如图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口线。

+5 V5.1 k×4P1.7P1.6ATC51P1.5P1.4P1.3P1.2P1.1P1.05.1 k×4+5 V图1.5 矩阵键盘与ATC51接口连接图对于非编码键盘,按键处理程序应具有

如下四个功能:

(1) 判断键盘上有无键按下。 (2) 去除键的机械抖动。 (3) 求按下键的键码。

(4) 闭合一次,只进行一次键功能操作。 2)、单片机对非编码键盘的控制方式:

1) 查询方式 这种方式是指在单片机完成其它工作后的空余时间,调用键盘扫描子程序,来响应键盘输入的要求,在执行键功能程序时,CPU不再响应键输入要求。

2) 定时扫描工作方式 定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描,当有键按下时,转入键功能的处理程序。

定时扫描在本质上是中断方式,只不过是定时扫描键盘,以中断的方式处理键盘,它的硬件电路与编程扫描工作方式相同。3) 中断工作方式 单片机应用系统工作时,并不经常需要键输入。因此,无论是编程工作方式或是定时工作方式,CPU经常处于空扫描状态

图1.6是ATC51利用中断扫描方式实现的一个2×8矩阵式键盘的硬件接口电路。 1.6 利用中断扩展2×8键盘电路图通过前面的原理可知,完成键盘管理的程序主要有主程

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0ATC51S1S9S2S10S3S11S4S12S5S13S6S14S7S15S8S16+5 V

INT0INT14

序和中断服务程序,主程序主要完成初始化和键值处理任务,中断服务程序主要完成键盘扫描和键值读入任务。

5、综合以上选择可画出电路原理图:

由上分析,我们绘制以下的电路图,如图1.7所示,这里的图形是用PROTUES6.3绘制,只是用于模拟仿真;实际制作电路板时,还要考虑显示器电流的问题,既电流放大与限流的问题。

+5VC122fFC222pF+5VRP11234567X1R10100CRYSTAL19U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617123VDDABCY0Y1Y2Y3Y4Y5Y6Y715141312111097RESETD9LED-RED18XTAL2C320u+5V9RSTR91k293031PSENALEEA1K5E1E2E374LS138S0S1R11kR21k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51U2+5V 图1.7电路原理图1.1.6 软件的设计方案 待硬件电路接线完成后,通常可先编写简单的测试程序对硬件电路进行测试,排除硬件电路设计中存在的错误。然后根据设计任务的要求确定系统程序的整体结构,尽可能采用模块化程序设计的方法,将任务划分为相对的功能模块,明确各模块的功能、时间顺序和相互关系,如系统管理、数据与信息采集、报警处理、误差处理、标度变换、数据处理、输出控制等;列出详细的资源划分表,确定各模块的出口和入口状态;建立必要的数学模型,正确描述出系统中输入和输出间的数学关系;画出各程序模块的详细流程图;根据流程图逐一编写程序;最后将各个模块连接成完整的程序。

(1) 软件设计的基本原则。

① 程序整体结构清晰、简洁、流程合理,主程序尽可能简单明了。

② 各种功能的实现应采用模块化、子程序化,以便于编制、阅读、连接、移植、修改和调试。

③ 对各子程序的入口、出口条件,占用的资源要明确,以便于分析、调试和共享。

④ 程序存储区、数据存储区、寄存器区、位寻址区、堆栈区应规划合理,做到既节约资源又不会发生相互间的冲突。

⑤ 运行状态标志化管理,对各功能程序的运行结果、操作状态应设置状态标志,以便查询和实现运行控制。

⑥ 运用软件或软硬件相结合等方法抑制干扰,提高系统的抗干扰能力。 ⑦ 必要时可结合硬件采取加密措施。

(2) 模块化程序结构。

① 主程序MAIN:完成系统初始化,包括时钟参数及初始标识的设定;I/O口、定时/计数器初始状态的设定;键盘和时钟显示的监控管理。

② 时钟参数修改子程序FTION0:关定时器,;时钟修改位置记录值加1,根据记录

5

值将对应的时钟时、分、秒修改标识置1。

③ 加1键修改子程序CUM:根据修改(或设置)标识将时钟(或闹钟)相应单元内容加1。

④ 键盘测试子程序KEYTEST:判断是否有键按下。 ⑥ 查键号子程序SERCH:若有键按下,则确定键号。

⑥ 显示子程序DISPLAY:根据显示单元首地址显示时钟时间。 ⑦ 定时修正时钟参数中断服务子程序CLOCK:定时修改时钟参数。

6、资源分配

选用定时/计数器T0,定时方式2工作,每隔50 ms溢出中断一次。

表1-3 单片机内部RAM部分资源分配表

地址分配 08H 用 途 时钟秒单元内容修改标识位,(1表示允许修改,0表示不允许) 时钟分单元内容修改标识位(1表示允许修改,0表示不允许) 时钟时单元内容修改标识位(1表示允许修改,0表示不允许) 名 称 SECBIT 初始化值 0 09H MINBIT 0 0AH HOURBIT 0

表1-4 单片机内部RAM部分资源分配表 时钟参数修改记忆单元,按一次时钟修改30H 功能键,单元内容加1,根据记忆次数将21H单元中对应的时钟参数修改标识位置1 TIMDATA 00H 34H 35H 36H 40H 41H 42H 43H 44H 45H 60H~6FH 时钟显示缓冲区秒单元 时钟显示缓冲区分单元 时钟显示缓冲区时单元 保存秒个位数字 保存秒十位数字 保存分个位数字 保存分十位数字 保存时个位数字 保存时十位数字 堆栈区 SEC MIN HOUR 00H 00H 00H 00H 00H 00H 00H 00H 00H

三、软件的设计方案 1、流程图设计

1)、主程序流程图

6

开始时钟单元、标识位初始化定时器、中断初始化时钟显示单元首地址送B调用键入测试子程序有键入吗?N调用显示子程序Y调用显示子程序延时间去抖Y是抖动吗?N调用查键号子程序是时钟修改功能键吗?Y调用时钟修改功能程序N是加1功能键吗?Y调用加1修改功能程序 N

图1.8主程序MAIN流程框图

2)、其它程度模块的设计。

7

开始关定时器设置时钟秒单元为显示首地址时钟修改记录加1记录值为1吗?Y将时钟秒修改标识置1N记录值为2吗?Y将时钟分修改标识置1N记录值为3吗?Y将时钟小时修改标识置1N时钟单元修改位置记录值清零开定时器子程序返回图1.9 时钟修改功能子程序FTION0流程框图

8

开始时钟秒修改标识为1否?NY秒单元内容加1,十进制调整到60S否?Y清零N时钟分修改标识为1否?Y分单元内容加1,十进制调整NN到60min否?Y清零时钟小时修改标识为1否?NY小时单元内容加1,十进制调整N到24h否?Y清零子程序返回

图1.10 加1键修改子程序CUM流程框图

9

开始关中断,保护现场到1s否?NY秒单元内容加1到1min否?NY秒单元内容清零分单元内容加1到1h否?NY分单元内容清零小时单元内容加1到24h否?NY小时单元内容清零恢复现场开中断中断返回10

图1.11 时钟修正中断服务子程序CLOCK流程框图

2、程序编写:(略)

1)、显示器检测程序 2)、按键检测程序 3)、时钟源程序

四、调试方法与步骤

1) 输入源程序

输入源程序时,应以西文方式输入字母和符号,且中文注释前要加分号。 2) 对源程序进行汇编和纠错

根据汇编提供的错误信息逐条纠正错误,直至汇编信息提示“错误(0)”、“汇编结束”。 3) 确定调试方案

在调试程序前一定要认真分析源程序,明确各功能程序运行的预期结果。然后结合源程序应达到的结果,确定出如何通过某些关键参数和实验现象检验程序运行结果正确与否。例如:程序运行过程中路径的变化、累加器A内容的变化、其他特殊寄存器内容的变化等。并针对具体的分析和观察对象选择较合适的调试方法。如单步运行、跟踪运行、连续运行、快速运行至光标处、设置断点等调试方法。

4) 调试程序

(1) 调试主程序。主程序运行后,在无任何按键输入时观察有无显示,时钟是否工作,其时、分、秒显示的变化过程是否正确。若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。例如:若定时/计数器的初始化出错,则时钟将不能工作;若显示程序出错,则将不能正确显示时钟单元内容;若定时/计数器中断服务子程序出错,则其显示数据的变化规律将不正常。(2) 调试子程序。在调试主程序时,必然要调用相关的功能子程序。因此,首先应明确子程序的具体功能,通过对子程序的分析,确定子程序的入口、出口参数及相关标识位的状态,然后在满足入口条件的状态下,设法检查从主程序进入子程序,再由子程序返回到主程序的运行过程。可采用跟踪运行或运行至光标处的方法,检查从主程序进入子程序内部的运行过程,再通过单步运行等方法检查子程序内部的运行情况和返回主程序的过程。

通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目

的。

5) 脱机运行

将调试已通过的程序写入单片机内部(或外部)程序存储器中,再将写好程序的单片机(或存储器)插入已设计好的单片机用户板上,把仿真系统与用户板脱离开来,最后将所设计的单片机应用系立通电运行。

五、分析与总结

(1) 以数字钟为例,引入单片机应用系统设计、分析与调试的一般方法。一个单片机应用系统的设计与制作,一般要经过对被控对象的需求进行调研、根据系统的功能和技术指标选择控制方案、提出系统的总体构思、硬件设计、印制板制作、元器件安装、软件设计、软硬件仿真调试、固化程序、脱机运行、整机调试等几个阶段,如图1.12所示。

11

图1.12 应用系统开发流程框图 (2) 在上述过程中,难点是如何构建出程序设计的整体框架,包括主程序流程框图和子程序流程框图的构建、各功能模块之间的组合关系。前面提供的各

开始项目可行性调研根据系统功能技术指标选择控制方案、完成总体设计单片机选型,内部资源划分:I/O口数目,存储器容量;外部资源扩展划分软硬件权衡分配,确定软硬件功能系统硬件工作系统软件工作系统硬件框图设计系统接口电路、扩展部件选择与设计印制板设计与组装系统软件功能模块划分功能模块框图设计程序设计、编辑与调试硬件电路检查汇编通过否?Y系统硬件故障测试YN有故障吗?N功能模块软件调试Y有错误吗?N各功能模块程序链接调试Y软硬件修改符合要求吗?N程序固化,脱机运行开发结束功能模块流程框图和参考程序只是针对完成实训项目基本要求而提出的一种设计方案。

(3) 主程序是负责应用系统整体的管理与协调,包括单片机资源的调配、初始参数与标识位的设定、可编程部件的初始化及系统各主要部分(如键盘、显示)初始状态的管理等。构建主程序时应做到简单明了,对各种操作功能实现模块化管理,即尽可能多的采用子程序结构,方便分析与调试。

(4) 采用模块化、子程序化的优点是便于连接和移植,特别是重复使用时尤为方便。但使用者必须预先明确各子程序的入口参数、出口参数和所占用的资源,合理利用堆栈,避免主程序与子程序之间、子程序与子程序之间所占用的资源发生冲突。

(5) 运行状态采用标志化管理可使程序结构更加简化。在上述程序中,对各按键的操作过程和状态都采用标识位来描述,如时钟参数(时、分、秒)修改哪一位、。

12

(6) 在调试程序前,一定要预先将源程序分析透彻,在此基础上训练如何通过实验现象分析和判断产生故障的原因及故障可能存在的大致范围;灵活运用开发系统所提供的各种调试方法,快速有效地排查和缩小故障范围。通过反复调试,不断地分析和排除故障,调试软件和硬件的能力及速度。

(7) 调试程序时,要结合能反映故障存在与否的参数变化、运行路径变化、显示内容变化等,选择合适的观测点和观测对象,再运用适当的调试方法,快速地检验调试结果,由此分析和判断故障点。

(8) 在实际设计中应从性能技术指标和价格等方面合理选择整体方案。

思考题:

课后小记:

13

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务