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