基本8位单片机的软件平台设计方案(2)
8位单片机结构

8位单片机结构8位单片机是一种常见的嵌入式微控制器,它具有8位宽的数据总线和地址总线,适用于各种控制和嵌入式系统。
本文将介绍8位单片机的结构,包括其组成部分和功能。
一、概述8位单片机由中央处理器(CPU)、存储器、输入输出(I/O)接口、定时器和串行通信接口等组成。
它可以执行各种指令,控制外围设备的操作,并处理数据。
二、中央处理器8位单片机的中央处理器通常采用精简指令集计算机(RISC)架构,具有较小的指令集和较短的指令周期。
它包括指令寄存器、程序计数器、算术逻辑单元(ALU)和状态寄存器等组件。
三、存储器8位单片机的存储器包括程序存储器和数据存储器。
程序存储器用于存储程序代码,数据存储器用于存储数据。
它们可以是闪存、EPROM、RAM等不同类型的存储器。
四、输入输出接口8位单片机的输入输出接口可以连接各种外围设备,如按键、LED、LCD、温度传感器等。
它们通过引脚与外围设备进行通信,并提供数据输入和输出的功能。
五、定时器8位单片机的定时器用于生成精确的时间延迟和定时事件。
它可以用于计时、脉冲宽度调制(PWM)、频率测量等应用。
定时器通常包括计数器和控制寄存器。
六、串行通信接口8位单片机的串行通信接口用于与其他设备进行通信,如串口通信、SPI(串行外围接口)通信、I2C(两线制串行通信)通信等。
它可以实现数据的发送和接收。
七、应用领域8位单片机广泛应用于各种控制和嵌入式系统,如家电控制、工业自动化、电子仪器、车载电子等。
它具有体积小、功耗低、成本低等优点,适合于资源受限的应用场景。
八、发展趋势随着技术的不断发展,8位单片机的性能不断提升,功能越来越强大。
同时,它也面临着来自32位单片机和ARM处理器等竞争对手的挑战。
总结:8位单片机是一种常见的嵌入式微控制器,具有8位宽的数据总线和地址总线。
它由中央处理器、存储器、输入输出接口、定时器和串行通信接口等组成。
它广泛应用于各种控制和嵌入式系统,并具有体积小、功耗低、成本低等优点。
8位竞赛抢答器课程设计

目录1. 原理分析(by 张潇) (2)1.1 设计任务 (2)1.2 性能指标 (2)1.3 工作原理 (2)2. 方案选择(by 张潇) (3)2.1 方案设定 (3)2.2 方案比较 (3)2.3 方案选择 (3)3. 电路原理图绘制及仿真(by 王倩) (3)3.1 所需元器件型号及数量 (3)3.2 电路原理图 (4)3.3 电路仿真结果 (5)4. Pcb图绘制(by 朱文广) (5)4.1 pcb绘制步骤 (5)4.2 pcb绘制原则 (5)4.3 8路抢答器pcb图 (7)5. 综合调试(by 朱文广) (7)5.1 软件调试 (7)5.2 硬件调试 (9)6. 总结(by 王倩) (10)附录1:电路仿真图 (11)附录2: 8路抢答器完整程序 (12)1.1 设计任务以单片机为核心,设计一个8位竞赛抢答器,同时供8名选手或8个代表队比赛。
设置一个系统清除和抢答控制开关S,开关由主持人控制。
抢答器具有锁存与显示功能。
即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
抢答器具有定时抢答功能,且一次抢答的时间可由主持人设定。
参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
1.2 性能指标电源电压:直流5V±10%选手组数:2-8组初始抢答倒计时:20s初始回答倒计时:30s倒计时范围:1-99s可设倒计时提示时间:最后5s1.3 工作原理八路数字抢答器原理框图如图1所示,其工作原理为:接通电源后,主持人未按下开始抢答,抢答器处于禁止状态,数码管显示“----”;主持人宣布“开始”同时按下开始抢答按键,抢答倒计时开始计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。
项目二:8位流水灯的单片机控制讲解

内部总线 1 写锁存器
DQ
1
CK /Q
0
1
读引脚 =1
截 引脚P1.X 止
P1口控制流水灯(8个发光二极管)电路
发光二极管的连接方法:若 将它们的阴极连接在一起,阳 极信号受控制,即构成共阴极 接法,如图a所示;若将它们的 阳极连接在一起,阴极信号受 控制,则构成共阳极接法,如 图b所示。由于P1口引脚输出 高电位时电压大约是5V,为保 证发光二极管的可靠工作,必 须在发光二极管和单片机输出 引脚间连接一只限流电阻。
三 、程序PROTUES仿真与调试
人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
DJNZ R7,D0
RET
;子程序返回指令
END
;程序结束标记
知识点链接
在本项目中,利用P1口实现8个发光二极管的流水灯控制,主要利 用了送数指令,将要显示的现象对应的数据通过P1口送出。在编写控制 程序时,应首先将每个对应现象分析清楚,比如:要让L3亮,其余发光 二极管灭,则P1口的数据应为11110111B;要让L7亮,则P1口的数据 应为01111111B。然后找到能实现此操作的指令即可。下面使用我们在 本项目中学习的移位指令编写程序如下:
R7,D0
;L6亮
指令意义(注释)
; L7亮 ;将立即数FEH送累加器A,L0亮 ;重复执行本条指令(程序结束) ; 延时程序从0F00H开始 ;将立即数10送通用寄存器R7 ;将立即数100送通用寄存器R6 ;将立即数200送通用寄存器R5 ;根据R5减1后的内容判断程序执行方向 ;根据R6减1后的内容判断程序执行方向
项目2---8位流水灯的单片机

二、编程及问答:
1、要使得本项目中发光二极管的闪烁速度加快,程序如何修 改?若变慢呢?
2、试编写两段延时时间不同的子程序,并分别调用。 3、汇编程序的书写格式和注意事项是什么?
项目2个发光二极管的顺序点亮, 学会使用MCS-51单片机芯片的P1口进行输出控 制,进一步学习汇编程序的分析方法,并能熟练 运用RR、RL等基本指令。
项目任务
要求应用AT89C51芯片,控制8个发光 二极管的有序亮灭,呈现流水灯的效果。 设计单片机控制电路并编程实现此功能。
(二)程序编写
ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV P1,#0FEH LCALL YS MOV P1,#0FDH LCALL YS MOV P1,#0FBH LCALL YS MOV P1,#0F7H LCALL YS MOV P1,#0EFH LCALL YS MOV P1,#0DFH LCALL YS
项目分析
利用单片机P1口连接8个发光二极管, 利用各引脚输出电位的变化,控制发光二 极管的亮灭。P1口各引脚的电位变化可以 通过指令来控制,为了清楚地分辨发光二 极管的点亮和熄灭,在P1口输出信号由一 种状态向另一种状态变化时,编写延时程 序实现一定的时间间隔。
项目实施
一、硬件电路设计 二、控制程序的编写
MOV P1,#0BFH LCALL YS MOV P1,#7FH LCALL YS LJMP MAIN ORG 0100H YS:MOV R7,#2 L1:MOV R6,#0FFH L2:MOV R5,#0FFH L3:DJNZ R5,L3 DJNZ R6,L2 DJNZ R7,L1 RET END
DJNZ R7,D0
LJMP XH
第二章 Freescale 8位单片机概述

第二章Freescale 8位单片机概述2.1 08系列MCU的概述Freescale的08系列单片机型号有一百多种。
在这些不同型号的单片机中,资源各不相同,即使是同一种型号的单片机,也有多种封装形式,其I/O口数目也不相同。
表4-1表现了几种08系列单片机的资源差异情况。
表4-1 08系列单片机的资源差异情况表从表4-1可以看出08系列单片机内置资源差异很大,内存容量(RAM)最大的达到4K字节,而最少的只有128个字节;最多的I/O口数有56个,最少的只有6个;闪存(FLASH)最大的达到了60K字节,而最少的只有1.5K字节。
这种差异非常适合于各种不同的应用系统。
在实际应用开发过程中,选择合适的单片机是非常重要的。
HC08系列MCU有很多类型,各种类型除了拥有HC08系列的共同特点外,又具有其自身的特点,可以满足特定的实际需求,如表4-2所示。
表4-2 MC68HC08系列MCU的类型及特点2.2 MC68HC908QY4 MCU的性能概述MC68HC908QY4是MC68HC08 微控制器系列中的产品,MC68HC08 是一种高性能的8位单片机系列,具有速度快、功能强、价格低等特点。
采用高性能的MC68HC08中央处理器与MC68HC05指令代码完全向上兼容5V或3V的工作电压(VDD)5V工作电压时内部总线频率最高为8MHZ,3V时内部总线频率最高为4MHZ8位字节可调整的内置振荡器,可产生3.2MHZ的总线频率,可调范围±5%由STOP状态可以自动唤醒通过CONFIG寄存器可以对MCU进行配置,包括低电压禁止(LVI)设置具有片内FLASH,具有FLASH存储器在线编程功能和保密功能(FLASH编程/擦除的电压由芯片内部电荷泵产生)MC68HC908QY4的FLASH的存储器大小为4096字节128字节的片内ROM双通道16位定时器模块(TIM)MC68HC908QY4具有4路8位模数转换器(ADC)13个双向I/O口,一个单向输入口:所有I/O口都具有很强的吸电流和放电流能力所有I/O口内部上拉电阻6位键盘中断,具有唤醒的特点低电压禁止模块(LVI)具有软件可选的特点,由CONFIG寄存器进行设置系统保护特性:设计算机工作正常(COP)复位低电压检测复位非法指令码检测复位非法地址检测复位IRQ),此引脚与通用输入引脚复用带有内部上拉的外部异步中断引脚(复位引脚(RST),与通用I/O复用上电复位RST和IRQ引脚的内部上拉可以降低外围路的复杂性存储器映射I/O寄存器WAIT和STOP低功耗模式MC68HC908QY4 具有以下封装:16引脚PDIP、SOIC、TSSOP2.3内部结构简图MC68HC908QY4系列结构框图如图2-1所示。
基于STM8系列单片机的开放式实践教学平台设计

∗海南热带海洋学院2017年度校级教育教学改革项目(RDJGb2017-04)单片机类课程实践性非常强,单片机相关技术更新也非常快,在传统的高校教学中常用Intel 公司早期推出的MCS-51内核单片机作为讲解对象,多数51内核单片机片上资源单一,教学实验箱上外设器件缺乏新颖性、扩展性局限且与实际工程应用脱节,最终导致实践教学多以验证性实验为主,实践教学效果欠佳,很难激发学生的创造力和综合项目的设计能力。
基于以上实际情况,本文从以往教学中总结经验并梳理需求,经过师生交互与多次改版,最终设计了该款开放式实践教学平台,并将其运用在学科竞赛、课程综合设计、毕业设计中,均收到了良好的效果。
STM8系列单片机是意法半导体公司推出的一款8位微控制器产品,该系列的单片机产品拥有高性能8位内核和丰富的外设资源,STM8系列单片机采用意法半导体专有的130nm 嵌入式非易失性存储器技术制造而成,具备增强型堆栈指针操作、高级寻址模式和新增的指令,让用户能够实现快速、安全的开发。
丰富的产品线路为实践教学提供了支持,考虑单片机资源的丰富程度,本文选定了STM8S 系列中的STM8S208MB 单片机作为实践教学平台的主控核心[1-2]。
1实践教学平台硬件设计1.1硬件外设资源及组成开发平台应满足单片机实践教学基本需求,并在基础实验之上拓展功能外设,使得学生在使用平台时可以自行设计高阶实验巩固理论知识并扩展和创新。
该平台构建了多种功能资源和接口,分别是:CH340T 芯片USB 转TTL 串口通信单元、LDO 电源配置单元、光敏电阻模拟信号单元、热敏电阻模拟信号单元、可调电位器模拟信号单元、DS1302实时时钟单元、4路发光二极管单元、复位单元、SWIM 调试接口单元、图形/点阵型12864液晶接口、字符型1602液晶接口、AT24Cxx 系列I 2C 接口EEPROM 单元、华邦W25Qxx 系列SPI 接口FLASH 单元、超声波测距接口、无线模块接口、8键独立按键单元、NE555频率/占空比可调发生器单元、双74HC595串行8位数码管接口、2路1-Wire 单总线单元、无源蜂鸣器驱动单元、TJA1050芯片CAN 总线收发电路单元、A /B /C 多功能接口组、基础版本TTS 语音合成单元、38kHz 红外遥控信号接收接口、PS /2标准计算机接口单元、单片机最小系统单元和外部石英晶体振荡器单元。
单片机的实施方案

单片机的实施方案单片机作为一种微型计算机,广泛应用于各种电子设备中,如家电、汽车电子、工业控制等领域。
在实际应用中,单片机的实施方案是至关重要的,它直接影响着产品的性能、稳定性和成本。
因此,本文将围绕单片机的实施方案展开讨论,探讨如何选择合适的单片机、搭建有效的硬件平台和设计高效的软件系统。
首先,选择合适的单片机是实施方案的关键。
在选择单片机时,需要考虑产品的功能需求、性能要求、成本控制等因素。
针对不同的应用场景,可以选择不同性能的单片机,如低端的8位单片机、中端的16位单片机或高端的32位单片机。
同时,还需要考虑单片机的外设资源、开发工具支持、供应稳定性等因素,以确保单片机能够满足产品的需求,并且具有良好的可扩展性和可维护性。
其次,搭建有效的硬件平台是实施方案的重要环节。
在硬件设计中,需要充分考虑单片机与外围器件的连接方式、时序控制、电源管理、信号完整性等问题。
同时,还需要考虑抗干扰能力、温度适应能力、结构稳定性等方面,以确保硬件平台能够稳定可靠地工作。
此外,还需要考虑硬件的成本控制、生产制造、维护维修等因素,以确保硬件平台具有良好的经济性和可制造性。
最后,设计高效的软件系统是实施方案的关键环节。
在软件设计中,需要充分发挥单片机的性能优势,合理分配系统资源,优化算法设计,提高系统的响应速度和稳定性。
同时,还需要考虑软件的可移植性、可扩展性、可维护性等因素,以确保软件系统具有良好的灵活性和可维护性。
此外,还需要考虑软件的测试验证、版本控制、异常处理等方面,以确保软件系统能够稳定可靠地运行。
综上所述,单片机的实施方案涉及到单片机的选择、硬件平台的搭建和软件系统的设计三个方面。
通过合理选择单片机、搭建有效硬件平台和设计高效软件系统,可以实现单片机应用产品的功能需求、性能要求和成本控制,从而提高产品的竞争力和市场占有率。
希望本文能够对单片机的实施方案有所启发,为单片机应用产品的开发提供一些参考和借鉴。
单片机课程设计题目大全_2精选全文

(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均 由功能键K1、K2完成。
2. 工作原理 本设计采用市场上流行的时钟芯片DS1302进行制作。
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含 一个实时时钟/日历和31字节静态RAM,可以通过串行 接口与计算机进行通信,使得管脚数量减少。实时时钟/ 日历电路能够计算2100年之前的秒、分、时、日、星期 、月、年的,具有闰年调整的能力。 DS1302时钟芯片的主要功能特性:
15
复位”按键按下,程序将TR0置为0,同时将存储时间的变 量清零,从而中断停止,并实现复位。
本题目采用专用数码管显示控制芯片MAX7219。 MAX7219是美国MAXIM公司生产的串行输入/输出共 阴极显示驱动器,该芯片最多可驱动8位7段数字LED显 示器或个LED和条形图显示器。其引脚图及引脚功能参 见有关参考资料。
28
用4个按键操作来设置当前想要倒计数的时间。一旦按下键 则开始倒计数,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下 操作键K1~K4动作如下。
K1—可调整倒计数的时间1~60分钟。 K2—设置倒计数的时间为5分钟,显示“0500”。 K3—设置倒计数的时间为10分钟,显示“1000”。 K4—设置倒计数的时间为20分钟,显示“2000”。 复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1 键,
“Program File”栏中添加上面编译好的目标代码文件 “keil-5.hex”;在“Clock Frequency”栏中输入晶振频 率为11.0592MHz。 启动仿真如下页图所示,当闹钟到达时,可以听见蜂鸣器演 奏的乐曲。再次提示,本题目必须选用蜂鸣器SOUNDER ,否则不能发出声音。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
举例:盖房子
本平台要提供一个房子的框架结构(固
定好是砖混结构),并定好门、窗、阳 台的位置,但具体的内部装修并不固定, 可由程序人员自由组合 同时提供多种门、窗及装修材料(模块) 供程序人员使用,并且这些材料都是经 过测试没有问题的,保证工程的质量 当地基改变后,只需动与地面相连的地 方即可,上层全可以不动
基本软件架构
主循环 时间中断 外部中断
* 三者是并行的关系 * 本质上单片机是顺序执行,只有在中断发生的时候才 会进入中断执行,中断内容执行完毕后返回到主循环中 * 事实上程序中的大部分代码都是无硬件无关的,因此 我们为提高程序的可移植性,提出分层设计的思想
软件工程中的分层设计
应用程序 操作系统 驱动程序 硬件抽象层
模块划分原则:按文件划分
主程序(main.c) (对下面的函数进行调用) •硬件无关 通过函数与 驱动文件相 连 流程相关文件 通用函数文件 与硬件相关 内容 算法文件 包括滤波、控制算法 其他与硬件有关 的文件 设备驱动文件 蜂鸣器驱动 与硬件有关的内容 (.h文件)
显示相关文件
按键处理相关文件
EEP_hardware.h
从上面可以看出,当更换芯片时,驱动
程序的内容完全不动,只需更改 EEP_hardware.h里的内容即可
程序初始化流程
开始 (Main) 硬件SFR初始化 (f_InitSFR) 软件预处理 (f_Predeal) 基本数据初始化 (f_InitData) EEPROM中保存数据读取 (f_ReadEEPData) 检测跳线 (f_CheckJumper) 系统自检 (f_SelfTest) 主循环 While (1)…
sfr_r82b.h
调用关系说明
所有的驱动程序只包含一个与硬件有关
的.h文件,更改硬件时只更改此.h文件即 可 所有驱动程序间没有任何的联系,但驱 动程序可能会调用Hardware.c中的函数 CommFunc.c相当于一个标准库,其中的 函数可由任何文件调用 MainStruct.h文件可以由任何文件包含 Hardware.c负责与硬件相关的操作 Io_define.h负责普通IO口的定义,可由任 何文件包含
举例:main.c
外部中断的处理
外部中断要考虑到干扰的影响,一般会
有滤波措施 必要时嵌入汇编实现
举例:CheckFlux.c
通信模块的处理
定义通信协议时必须有头码,有校验码 处理通信接收时必须有异常处理
以主从方式进行通信时注意从端无应答
时的处理 因与时间有关,尽量使用中断来实现通 信信号的输出和接收 调试速率的选择 CRC16和CRC32校验
其他基本注意事项
缓冲区的设立:通讯发送和接收都需要
设置连续的缓冲区,方便程序书写和调 试 可以使用表格的方式尽量使用表格,可 以使程序量大大减少,同时方便修改。 需要在设计的阶段就考虑到。 节省RAM区的使用,因为C语言是以堆 栈为基础的,因此一定要保留足够的堆 栈大小
IO口定义文件
硬件平台
我们的分层设计
基本软件平台 不随硬 件更改 而更改 应用程序 通用程序 负责程 序的时 间片分 配
驱动程序 硬件抽象层
随硬件 更改而 更改
硬件平台
改变思路
一个源文件解决所有:可以,但可移植性和可
读性不好。可以说把c程序做成一个文件的还 停留在汇编程序设计的思路上,他只是换了种 语言工具而已,而非改变了设计思路。 以后的系统会越来越复杂,使用成熟的代码等 于站在巨人的肩膀上 从系统角度考虑问题:没有最好的,只有最适 合的(不要迷信规格书),事实上很多系统工程 师也不知道怎么做才是最好的 软件只是系统的一部分,但是是灵魂所在,尤 其在涉及到控制算法的时候
设计思想
为8位单片机软件设计提供一个可参考的
平台,程序设计人员按照此平台可以轻 松,可靠地设计出高质量的产品 一些成熟的模块标准化,提供长时间测 试没有问题的模块新的芯 片系统。而且这些改动不会影响到系统 的可靠性 提供一个可以检测软件代码编写是否符 合设计规范的测试平台
基本8位单片机的软件平台 设计方案(2)
基本平台架构设计及模块划分
平台设计目标
规范性:做到从变量命名、函数命名到模块划分全 部有规范可依,使非编程本人也可以正确、快速、 无误地修改软件 硬件无关性:与硬件有关的函数单独处理,而主程 序则通过调用这些函数来对MCU端口进行操作,这 样无论使用什么MCU,只要支持C语言,都可以很 快地将程序移植过来,使软件不再受MCU的控制; 可扩展性:流程确定后,如果有新的模块加入,不 会改动整个系统流程,只需在程序中加入此模块的 调用,修改与此模块有关的函数即可; 模块化:将整个软件程序分为若干个模块,模块之 间通过函数相连,只要确定了模块的输入/出变量以 及模块流程,此模块在经过详细测试后便可保证不 再出错,如有新的程序需要编写,只需编写新的模 块即可,真正使软件错误不会重复出现; 可移植性:本方案中所定义的模块可以嵌入至任意 一个系统,在编制一个新的系统前,首先将与系统 有关的函数调用过来即可
设备驱动文件 LCD驱动 与硬件有关的内容 (.h文件)
设备驱动文件 按键检测 硬件抽象层 (.h文件)
主芯片
硬件抽象层的实现
Hardware.c文件:负责整个MCU的初始
化,PWM输出,检测AD等函数的实现 举例:Hardware.c
.h文件:负责与驱动程序的接口 举例:与EEPROM的接口
主程序基本框架
main.c 主程序框架中包含对各分文件的模块调用及系统基本
流程的实现
主时间中断函数也在主程序中实现 Main.h中实现全局变量的定义 在主程序里处理时间时必须保证主程序一次循环时间
开销必须小于一个最基本的时间中断,即一个基本的 时间节拍(所以基本时间节拍一般选择10ms)。
基本文件划分方式
所有与中断、时序、算法有关的单独使用一个文件。
如
– LCD 6024驱动:和时序有关,负责根据规格书定义的时序驱 动6024,主程序调用时即可以不需知道6024内部时序,直接 将要显示的内容发送给接口函数即可 – EEPROM驱动:和时序有关 – BUZZER驱动:单独做成一个文件提高可移植性 – 脉冲宽度或个数检测:如水流量脉冲检测,一般会涉及到滤 波算法,故单独使用一个文件 – 风机控制:既使用了中断,又需要控制风机,会涉及到滤波 算法和控制算法,必须单独一个文件 – 通讯:与时序有关,单独一个文件,与主程序只有一个缓冲 区的接口,方便排错 – 按键检测:与算法相关,需要滤波,单独一个文件,在移植 的时候会方便很多 – 温度检测:一般涉及到滤波算法,单独一个文件 – 控制算法:涉及到算法效率及控制性能,单独一个文件实现
MainStruct.h文件:负责结构体的定义
举例:MainStruct.h 只包含定义,不包含具体变量的实现,
也就是说,不为此文件分配任何RAM区
时间中断的处理
要求代码少,效率高 除了必须使用的扫描等功能,其他和时间有关
的只是设置变量标志位,并不做任何处理,所 有的处理均放在主程序中处理 必要时嵌入汇编实现 实现时注意优化代码,编译后使用反汇编程序 来查看对应的汇编代码 注意有些芯片计时是不准确的,所以要有定时 检测方法(可通过定时控制IO口输出之后通过 示波器检测)
举例Uart.c
调试模块的使用
如果UART发送口没有被占用,建议将其
用做调试监视使用 定期向UART口发送主要的变量数据,可 通过连接到电脑显示曲线,通过曲线可 看出当前数据的正确与否,适合于不能 使用仿真器仿真的情况下
Io_define.h文件:负责基本输入输出IO口
的定义
举例:io_define.h 如果硬件更改了IO口的位置,则只更改
此文件即可,其他文件内容都不变
Const.h定义文件
Const.h文件:负责常量的定义
举例:MainConst.h 此文件包含的是一些常量的定义
MainStruct.h定义文件
注:
并不是所有的模块都是必须的 括号内的内容为模块名称; 软件预处理为一段延时,等待芯片复位后各端口均稳定下来;
主循环流程图
系统框图.doc
基本文件划分方式
Main.c: 主文件,程序的入口(注意并不一定是
芯片复位后的入口),负责所有文件间的调度 Main.h: 主文件头文件,包含全局变量的定义, 以及外部变量和外部函数的声明 Hardware.c:硬件相关文件,负责与硬件相关 的函数定义,如MCU的特殊寄存器定义模块 (f_InitSFR),AD检测函数f_CheckADVaule(), PWM输出函数等 Io_define.h:IO口定义头文件 MainConst.h:常数定义文件 MainStruct.h:结构定义文件,包含可能用到的 所有结构定义,不包含变量 通用函数CommFunc.c:与硬件无关的通用函 数,如BCD码转16进制码等函数
设计控制器前需了解整机系统
控制板的控制目标:一定要弄清楚负载
是什么,控制负载的电控元件是什么, 此元件的优缺点。如继电器、可控硅、 比例阀等等 控制板的精度:如温度控制会同时涉及 到采样和控制的精度问题 这样做是最可靠的方式吗? 这样做是对用户最来说是最方便的方式 吗? 一定要注意回差问题:如通过水流量判 断开关机,通过温度判断风机转速等等
注意需要精确时间的地方的处理方式
几个主要的变量
nSysState: 系统状态,其具体值在
MainConst.h中定义,其值的变化表示了 整个系统的状态变化过程 tError: 故障变量,结构变量,如果系统 发生了故障则设置其中一个位为1,如果 tError.byte的值不为0则表示有故障发生 tRelay: 继电器控制输出变量,在中间的 过程中只修改此变量的值,在调用 OutControl()函数的时候根据此变量的值 对MCU端口进行输出