单片机自编程及Bootloader设计

单片机自编程及Bootloader设计
单片机自编程及Bootloader设计

?Bootloader是在单片机上电启动时执行的一小段程序。也称作固件,通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用应用程序准备好正确的环境。

Boot代码由MCU启动时执行的指令组成。这里的loader指向MCU的Flash中写入新的应用程序。因此,Bootloader是依赖于特定的硬件而实现的,因此,在众多嵌入式产品中目前还不可能实现通用Bootloader。

Bootloader的最大优点是:在不需要外部编程器的情况下,对嵌入式产品的应用代码进行更新升级。它使得通过局域网或者Intemet远程更新程序成为可能。例如,如果有5 000个基于MCU的电能表应用程序需要更新,电能表制造商的技术人员就可以避免从事对每一个电能表重新编程的巨大工作量,通过使用Bootloader的功能,由控制中心通过电能表抄表系统网络,远程对5 000个电表重新编程。可见,Bootloader功能对于嵌入式系统的广泛应用具有十分重要的意义。

1 78K0/Fx2系列单片机简介

78K0/Fx2系列是带CAN控制器的8位单片机,该系列单片机广泛应用于汽车电子,智能仪表等领域。其内置POC(可编程上电清零电路)/LVI(可编程低电压指示器),单电压自编程闪存,引导交换功能(闪存安全保护),具有低功耗、宽电压范围、超高抗干扰等性能。

78K0系列单片机支持自编程(Self-programming)。所谓自编程,是指用Flash存储器中的驻留的软件或程序对Flash存储器进行擦除/编程的方法。通过单片机的自编程功能,可以设计Bootloader程序,通过串口等通信接口实现对产品重新编程、在线升级的功能。

以μPD78F0881为例。μPD78F0881为78KO/Fx2系列中的一款44管脚单片机,内置32 KB Flash ROM,2 KB RAM,自带2个串行通信接口。其内部Flash结构如图1所示。为了方便实现擦除和编程,人为地将整个Flash分成若干个block,每个block 大小为1 KB。block为自编程库函数中空白检测、擦除、校验的最小单位。blockO从地址0000H开始,程序都从0000H开始执行。block0~block3共4 KB存储空间为

Bootloader程序存储区域。block4~block31为应用程序存储区域。

为了防止Bootloader自身的升级失败,设计了引导交换功能。该功能定义2个簇,即Boot cluster0和Boot cluster1。Boot clustee0为block0~block3的4 KB存储空间,Boot cluster1为block4~block7的4 KB存储空间。因此,实际运用过程中,一般把应用程序的开始定义在2000H,也就是从block8开始。

Flash地址为0000H~FFFFH。7FFFFH~FFFFH存储空间为保留区域以及特殊功能寄存器区域等,用户无法对其进行编程。

2 自编程

2.1 自编程环境

2.1.1 硬件环境

FLMDO引脚是78KO/Fx2系列单片机为Flash编程模式设置的,用于控制MCU进入编程模式。在通常操作情况下,FLMDO引脚下拉到地。要进入自编程模式,必须使FLMDO引脚置成高电平。因此,通过一个普通I/O接口控制FLMD0引脚的电平。如图2所示。

2.1.2 软件环境

1)使用通用寄存器bank3,自编程库函数,需要调用通用寄存器bank3。因此,在自编程时,不能对通用寄存器bank3操作。

2)使用100 B RAM(入口RAM)作为隐藏ROM中函数的工作区,入口RAM,是Flash存储器自编程样例库所使用的RAM区域。用户程序需要保留着块区域,当调用库时,需要指定这片区域的起始地址。入口RAM地址可以指定在FB00h~FE20h之间。

3)4~256 B RAM作为数据缓冲区,必须是FE20H~FE83H以外的内部高速RAM 区域。

4)最大39 B RAM作为隐藏ROM函数的堆栈。

5)隐藏ROM中的函数被0000H~7FFFH中的应用程序调用。

2.2 自编程流程

自编程功能利用自编程软件库完成用户程序对Flash内容的重新编程。如果在自编程的过程中有中断发生,那么自编程将暂停来响应中断。中断结束,自编程模式恢复后,自编程过程将继续进行。采用汇编语言编写78K0/Fx2自编程软件库,如表1所示。

自编程操作流程如图3所示,当单片机收到自编程执行信号时,开始进入自编程模式。将FLMDO引脚设置成高电平,初始化入口RAM,为自编程库函数开辟空间。当确认FLMD0为自编程状态时,开始检查需要编程区域是否为空白区域。当被编程区域不是空白区域时,先将其擦除,然后在此区域进行编程。编程结束后进行校验。若校验无误,则将FLMDO引脚设置成低电平,退出自编程模式。

3 引导交换(boot swap)

产品程序的升级包括应用程序的升级和引导程序(Bootloader自身)的升级。为了防止引导程序在升级的过程中发生错误,从而导致MCU无法启动,设计了引导交换功能。以图4说明引导交换的实现过程。

1)旧的Boot程序首先将新的Boot程序编程到交换引导簇1(Boot cluster 1),然后设置启动交换标志位,并强迫看门狗复位。

2)复位启动后,MCU看到交换标志位,便从交换引导簇1处开始启动。交换引导簇1处的新Boot程序将检查交换标志位。如果交换标志位被置1,则新的Boot程序将擦除交换引导簇0(Boot cluster 0)区域,并将自身复制到交换引导簇O,然后将交换标志位清零,强迫看门狗复位。

3)复位启动后,MCU看到交换标志位被清零。又从交换引导簇0处开始执行。这样就完成了boot程序自身的升级。即使在升级过程中遇到断电等异常情况,在重新上电后也能重新完成Boot程序升级。有效地防止在升级过程中出现断电等等异常情况而导致升级失败,MCU无法启动的问题,使Boot程序的升级变得安全可靠。

4 Bootloadler设计

4.1 简单的Bootloader

一个简单的Bootload包括5个元素。

1)启动Bootloader的信号Bootloader程序是在执行应用程序之前所执行的一小段程序,当Bootloader程序把控制权转交给应用程序后,在MCU复位前,Bootloader 程序将不再执行。因此,需要产生一个信号触发MCU开始Bootloader程序。该信号可以是中断,也可以通过串口传送的一条指令,或者是别的程序触发的信号。

2)执行Bootloader的信号单片机程序启动时,MCU是装载新的应用程序还是执行已经存在的程序取决于外部信号。该信号可以是上电时的一个端口信号,用来控制MCU装载新程序还是执行旧程序,也可以是从串口接收到的指令等。

3)将新的代码传送给MCU 通过RS485、I2C、CAN或者USB传送新的应用程序数据。因为要传送的代码一般会超过MCU的RAM容量,因此需要一些控制数据流量的措施。一般使用XON/XOFF软件握手协议,传送代码的格式一般选择Intel hex格式。

4)Flash新代码的自动编程每次MCU接收到一批新的数据,就要将其编程到正确的Flash地址。如果该地址非空白,MCU在编程前必须先擦除。一般在编程中或者编程后还需要检查存储器的内容。

5)将控制权转移给有效的应用程序在接收和编程了新的代码后,Bootloader写一个校验和或者其他唯一字节序列到一个固定的存储单元。Bootloader检测该值,如果该值存在,Bootloader就将控制权传给应用程序。

4.2 Intelhex格式

在线升级的程序代码采用编译器输出的Intel hex格式文件。Intel hex文件常用来保存单片机或其他微处理器的程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。Intel hex文件记录中的数字都是十六进制格式。在InteI hex 文件中,每一行包含一个HEX记录。Intel hex文件通常用于传输将被存于Flash或者EEPROM中的程序和数据。Intel hex由任意数量的十六进制记录组成。每个记录包含5个域,它们按照图5所示格式排列。

每一个部分至少由2个十六进制编码字符组成。它们构成1个字节。每一个部分的意义如下所述:

1)每个Intel hex记录都由冒号开头,自编程的过程中以此判断一个Intel hex记录的开始。

2)数据长度代表当前记录中数据字节的数量。

3)地址代表当前记录中数据在存储区域中的起始地址。

4)HEX记录类型有如下4种:00-数据记录;01-文件结束记录;02-扩展段地址记录;03-转移地址记录。NEC编译器输出的Intel hex文件中。只包含数据类型00和01。其中O1作为自编程过程中数据结束的判定标志。

5)数据域分用于存储需要写入Flash中的内容,一个记录可以有许多数据字节。记录中的数据字节数量必须与数据长度中的值相符。

6)校验和是取记录中从数据长度到数据域最后一个字节的所有字节总和的2的补码。

根据以上说明,必须在程序中对接收到的Inter hex文件进行解码,获取数据以及数据地址,并对收到的数据进行校验,然后将接收正确的数据编程到Flash相应的地址上。

4.3 Bootloader设计思路

单片机收到启动信号后,重新启动程序。启动的时候首先执行Boot代码,Boot代码检查是否收到执行升级信号。如果需要升级程序,则通过串口或者其他通信接口接收新的应用程序,loader程序向单片机Flash中写入新的应用程序代码。最后通过检查校验位检测程序是否有效。如果有效,则Bootloader将CPUMCU控制权交给应用程序。整个升级过程完成。Bootloader执行过程如图6所示。

需要注意的是Bootloader自身的更新和应用程序的更新还需区别处理。通过辨别接收到数据的编程地址来判断是Bootloader更新还是应用程序更新。若编程地址从0000H 开始,则为Bootloader更新。Bootloader更新则需要执行引导交换(boot swap)功能;若为应用程序更新,自编程结束后,直接将CPU交给应用程序。

5 结束语

本文探讨了78KO/FC2系列μPD78F0881单片机的自编程功能以及Bootloader的设计方法。具体描述了通过单片机串口对相应的应用程序通过Bootloader进行升级。此版本的Bootloader使用晶振20 MHz,通过串口Uart60,设置波特率为115 200,在μPD78F0881单片机上成功实现了用户应用程序的升级更新。在接下来的工作中,Bootloader的设计应当面向更多的通信接口。例如,通过CAN总线接口升级,通过USB 接口升级等等。

CAM编程的基本实现过程

CAM编程的基本实现过程 数控(简称NC)编程技术包含了数控加工与编程、金属加工工艺、CAD/CAM软件操作等多方面的知识与经验,其主要任务是计算加工走刀中的刀位点(简称CL点)。根据数控加工的类型,数控编程可分为数控铣加工编程、数控车加工编程、数控电加工编程等,而数控铣加工编程又可分为2.5轴铣加工编程、3轴铣加工编程和多轴(如4轴、5轴)铣加工编程等。3轴铣加工是最常用的一种加工类型,而3轴铣加工编程是目前应用最广泛的数控编程技术。 提示:本书中所提及的数控加工和编程,如无特别注明,均指2.5轴铣数控加工和编程或3轴铣数控加工和编程。 数控编程经历了手工编程、APT语言编程和交互式图形编程三个阶段。交互式图形编程就是通常所说的CAM软件编程。由于CAM软件自动编程具有速度快、精度高、直观性好、使用简便、便于检查和修改等优点,已成为目前国内外数控加工普遍采用的数控编程方法。因此,在无特别说明的情况下,数控编程一般是指交互式图形编程。交互式图形编程的实现是以CAD技术为前提的。数控编程的核心是刀位点计算,对于复杂的产品,其数控加工刀位点的人工计算十分困难,而CAD技术的发展为解决这一问题提供了有力的工具。利用CAD技术生成的产品三维造型包含了数控编程所需要的完整的产品表面几何信息,而计算机软件可针对这些几何信息进行数控加工刀位的自动计算。因此,绝大多数的数控编程软件同时具备CAD 的功能,因此称为CAD/CAM一体化软件。 由于现有的CAD/CAM软件功能已相当成熟,因此使得数控编程的工作大大简化,对编程人员的技术背景、创造力的要求也大大降低,为该项技术的普及创造了有利的条件。事实上,在许多企业从事数控编程的工程师往往仅有中专甚至高中的学历。 目前市场上流行的CAD/CAM软件均具备了较好的交互式图形编程功能,其操作过程大同小异,编程能力差别不大。不管采用哪一种CAD/CAM软件,NC编程的基本过程及内容可由图1-1表示。 .1 获得CAD模型 CAD模型是NC编程的前提和基础,任何CAM的程序编制必须有CAD模型为加工对象进行编程。获得CAD模型的方法通常有以下3种: (1)打开CAD文件。如果某一文件是已经使用MasterCAM进行造型完毕的,或是已经做过编程的文件,那么重新打开该文件,即可获得所需的CAD模型。 (2)直接造型。MasterCAM软件本身就是一个CAD/CAM软件,具有很强的造型功能,可以进行曲面和实体的造型。对于一些不是很复杂的工件,可以在编程前直接造型。 (3)数据转换。当模型文件是使用其他的CAD软件进行造型时,首先要将其转换成MasterCAM专用的文件格式(MC9文件)。通过MasterCAM的数据转换功能,MasterCAM可以读取其他CAD软件所做的造型。MasterCAM提供了常用CAD软件的数据接

阐述对BootLoader的理解和分析

` 物理与电子工程学院 《嵌入式系统设计》 设计性实验报告 题目阐述对BootLoader的理解和分析 系别 年级专业 班级学号 学生姓名 指导教师 实验时间

目录 课题要求 ................................................................ 错误!未定义书签。 1.本课题的目的.............................. 错误!未定义书签。 2.运行环境.................................. 错误!未定义书签。正文 . (2) 一.BootLoad简介 (2) 二.系统设计 (5) 三.技术实现问题 (7) 四.总结与体会 (8) 设计性实验报告成绩:指导教师签名: (10)

摘要 在嵌入式系统中,由于不具有自举开发的能力,其BootLoader除了引导操作系统之外,还要担负辅助开发的责任,如与主机通信、与用户交互、更新系统等功能。 虽然嵌入式系统不可能实现通用的BootLoader,但是各系统的BootLoader依然具有一定的相同性,因此,嵌入式系统中常用的BootLoader也都具有可移植性,可以在大部分代码不更改的情况下,根据本系统的情况,通过修改具体硬件相关的代码并进行相应的配置来使用。 关键字:概述,作用,操作模式,分类,基本原理。 正文 一.BootLoad简介 1.1 BootLoader的概述 BootLoader是操作系统和硬件的纽带,它负责初始化硬件,引导操作系统内核,检测各种参数给操作系统内核使用。事实上,一个功能完备的大型BootLoader,就相当于一个小型的操作系统。在嵌入式领域中,操作系统移植的关键在于BootLoader的移植以及操作系统内核与硬件相关部分的移植。Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而将系统软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Bootloader是严重依赖于硬件而实现的,特别是在嵌入式世界里,嵌入式产品型号众多,硬件环境复杂,建立一个通用的Bootloader几乎是不可能的。尽管如此,仍然可以对Bootloader归纳出一些通用的概念来,以指导特定的Bootloader设计与实现。因此,正确进行Linux移植的条件是具备一个与Linux配套、易于使用的Bootloader,它能够正确完成硬件系统的初始化和Linux的引导。 Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于两块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种结构的嵌入式系统。通常它们能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。

单片机课程设计报告

《单片机原理及接口技术》课程设计题目:简易计算器设计 级:电子1547 名:苏丹丹、李静、齐倩 号:05号、17号、11号

导教师:张老师 间:2013年12月 西安航空学院电气学院

目录 一、选题的背景和意义-------------------1 1.1选题的背景-------------------------------------1 1.2选题的意义-------------------------------------1 二、总体设计-------------------------------1 2.1设计任务---------------------------------------1 2.2方案选择---------------------------------------1 三、硬件设计-------------------------------2 3.1 元器件名称--------------------------------------------------------2 3.2 计算器按键介绍--------------------------------------------------2 3.3硬件系统框图、单元电路--------------------------3 四、软件设计-------------------------------3 4.1 软件调试步骤-----------------------------------------------------3 4.2软件设计流程图---------------------------------------------------4 五、结束语------------------------------------5 六、参考文献--------------------------------5 七、附录---------------------------------------6

STC12C5A60S2单片机课程设计报告

一、课程设计基本情况介绍 1.1课程设计的基本目的与任务 本课程设计旨在驾驭本专业学生理论指导实践能力以及电子产品工程设计与开发能力。本实践课所要达到的主要目的是: 1、通过本次课程设计,是对学生综合能力的检,提高学生综合运用专业知识,强化单片机 应用系统设计与防震能力。 2、本次课程设计是在生产实习所完成的“单片机核心板+电子钟模块+MP3模块+RFID模块+无线传输模块+GPS模块+脉搏传感模块”的基础上设计该硬件系统的工作程序。 1.2课程设计的基本内容 1、在生产实习设计单片机硬件系统的基础上,设计相应的应用软件系统。 2、在LCD1602上显示学号程序设计。 3、基于DS1302的实时时钟软件设计。 4、基于DS18B20的温度测量软件设计。 5、基于TL1838A的红外遥控解码软件设计。 6、设计应用软件系统框图和流程图,完成所设计软件的调试。 1.3课程设计的教学要求 1、通过资料查阅及学习了解单片机应用系统的软件设计方法及单片机编程、软硬件联机调 试技巧。 2、独立设计并编写下列应用程序: (1)LCD1602学号显示程序; (2)DS1302实时时钟程序; (3)DS18B20温度测量程序; (4)TL1838A红外遥控解码程序; 3、独立完成所设计程序与硬件系统的联机仿真。 二、整机系统框图(硬件、软件) 该设计方案是以STC12C5A60S2单片机为核心,采用LCD液晶屏幕显示模块、实时时钟模块、温度测量模块、红外遥控解码等模块所构建的系统,能在LCD1602液晶屏上显示当前的日期(年、月、日)、时间(时、分、秒)数据、当前环境温度值和红外遥控解码值。用户可通过遥控器或单片机核心板上的按键来进行日期和时间的设置。本系统设计大部分功能由软件来实现,电路简单明了,系统稳定性也得到大大提高。 1、总体硬件设计框架图: 2、总体软件设计框架图 /////// 三、整机硬件电路原理图(见99SE图) 1、核心板电路原理图 2、蜂鸣器驱动电路 3、按键电路 4、单片机复位电路 5、LCD1602液晶显示电路 6、电子钟模块接口电路 四、软件系统设计思想 //////////// 五、系统软件资源分配表(调试程序、工作程序) ////////////// 六、显示学号的调试程序流程图、程序源代码

Stm8s_IAP_Bootloader设计

项目实践2:Bootloader 1.项目介绍 在之前的例程和实践中,我们都是使用st-link调试下载的方式进行程序烧录。大家可能已经认识到这种烧录方式的弊端了。因为这种烧录方式首先必须要有以下几个工具或者软件: 1.烧录工具(不能芯片支持的工具不一样,有ST-Link,JTAG等) 2.已经安装了IDE(IAR或者SVD或者CCS等)或者与烧录工具匹配的烧录软件的电脑 3.烧录前后需要物理上电掉电(不建议ST-Link进行热插拔),即开/关电源. 也许大家会觉得,对于学习而言,这些都能忍受。但是如果真正做成产品,如果还是用这种方式进行升级,那代价就太大。举个例子吧,我之前的工作是开发和维护大功率的UPS(不间断电源),主要客户是一些大型企业,例如银行的数据中心,中国移动网络中心。UPS内 部有许多ARM芯片,DSP芯片。这类应用场合,即便给程序升级,客户也不会让你断电的,而且因为安全性要求,一般MCU,DSP都是在产品内部,根本无法对外开放烧录盒的烧录 接口。所以绝大部分嵌入式产品,都会开发Bootloader程序。 那么什么是Boot Loader呢?一般来说,嵌入式产品的软件都会分为两部分,第一部分 为Bootloader,第二部分为主程序(Main APP),它们存放在flash的不同区域。Bootloader 是上电或者复位以后先执行的,通过它,我们可以初始化硬件设备、建立内存空间的映射图,检测程序的完整性,判断是否需要从Bootloader跳转到APP或者更新APP。而主程序呢,则是真正用来实现产品面向客户的功能的。 通常呢,在Bootloader会实现一种或者一种以上的IAP方式,可能是UART,SPI,CAN 或者Ethernet等。本次例程呢,就是设计一个Bootloader,允许用户用电脑的串口+超级终 端实现烧录功能

F BOOTROM引导模式和程序

28335使用串口烧写程序 串口烧写是一种相对较方便的烧写方式,相对于仿真器或是CAN烧写,相对于仿真器或是USB转CAN的设备,串口是一种非常廉价的烧写方式,而且也不需要安装专业的集成开发环境CCS等,但是不能实现在线调试,因此也只适用于程序基本不用再调整或大批量的场合。 F28335的存储器映射图如下:

BOOTROM 是一块8K X 16的只读存储器,位于地址空间0x3FE000~0x3FFFFF,片内BOOTROM在出厂时固化了引导加载程序以及定点和浮点数据表,片上BOOTROM的存储映射如下图所示: 1.内BOOT ROM数学表: 在BOOT ROM中保留了4K X 16位空间,用以存放浮点和IQ数据公式表,这些数据 公式表有助于改善性能和节省SARAM空间。 向量表: CPU向量表位于ROM存储器0x3FE000~0x3FFFFF段内,如下图所示。复位后,当VMAP=1,ENPIE=0(PIE向量表禁止)时,该向量表激活。

在内部BOOT ROM引导区中能够调用的唯一向量就是位于0x3FFFC0的复位向量。复位向量在出厂时被烧录为直接指向存储在BOOT ROM空间中的InitBoot函数,该函数用于开启引导过程。然后通过通用I/O引脚上的检验判断,决定具体引导模式。引导模式与控制引脚之间的关系如下图所示: Bootloader特性: Bootloader是位于片上引导ROM中的在复位后执行的程序,用于在上电复位后,将程序代码从外部源转移到内部存储器。这允许代码暂时存储在掉电不丢失数据的外部存储器内,然后被转移到高速存储器中执行。 引导ROM中的复位向量将程序执行重定向至InitBoot函数。执行器件初始化之后,bootloader将检查GPIO引脚的状态以确定您需要执行哪种引导模式。这些选项包括:跳转至闪存、跳转至SARAM、跳转至OTP或调用其中一个片上引导加载例程。

简易信号发生器单片机课程设计报告

课程设计(论文)任务书 电气学院电力系统及其自动化专业12(1 )班 一、课程设计(论文)题目:简易信号发生器设计 二、课程设计(论文)工作自 2015年1 月12 日起至2015 年 1月16 日止。 三、课程设计(论文) 地点:电气学院机房 10-303 四、课程设计(论文)内容要求: 1.课程设计的目的 (1)综合运用单片机原理及应用相关课程的理论知识和实际应用知识,进行单片机应用系统电路及程序设计,从而使这些知识得到进一步的巩固,加深和发展;(2)熟悉和掌握单片机控制系统的设计方法,汇编语言程序设计及proteus 软件的使用; (3)通过查阅图书资料、以及书写课程设计报告可提高综合应用设计能力,培养独立分析问题和解决问题的能力。 2.课程设计的内容及任务 (1)可产生频率可调的正弦波(64个点)、方波、锯齿波或三角波。 (2)显示出仿真波形。 (3)通过按键选择输出波形的种类。 (4)在此基础上使输出波形的幅值可控。

3.课程设计说明书编写要求 (1)设计说明书用A4纸统一规格,论述清晰,字迹端正,应用资料应说明出处。(2)说明书内容应包括(装订次序):题目、目录、正文、设计总结、参考文献等。应阐述整个设计内容,要重点突出,图文并茂,文字通畅。 (3)报告内容应包括方案分析;方案对比;整体设计论述;硬件设计(电路接线,元器件说明,硬件资源分配);软件设计(软件流程,编程思想,程序注释,) 调试结果;收获与体会;附录(设计代码放在附录部分,必须加上合理的注释)(4) 学生签名: 2015年1月16 日 课程设计(论文)评审意见 (1)总体方案的选择是否正确;正确()、较正确()、基本正确()(2)程序仿真能满足基本要求;满足()、较满足()、基本满足()(3)设计功能是否完善;完善()、较完善()、基本完善()(4)元器件选择是否合理;合理()、较合理()、基本合理()(5)动手实践能力;强()、较强()、一般()(6)学习态度;好()、良好()、一般()(7)基础知识掌握程度;好()、良好()、一般()(8)回答问题是否正确;正确()、较正确()、基本正确()、不正确() (9)程序代码是否具有创新性;全部()、部分()、无() (10)书写整洁、条理清楚、格式规范;规范()、较规范()、一般()总评成绩优()、良()、中()、及格()、不及格() 评阅人:

单片机自编程及Bootloader设计

单片机自编程及Bootloader设计 Bootloader是在单片机上电启动时执行的一小段程序。也称作固件,通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用应用程序准备好正确的环境。 Boot代码由MCU启动时执行的指令组成。这里的loader指向MCU的Flash中写入新的应用程序。因此,Bootloader是依赖于特定的硬件而实现的,因此,在众多嵌入式产品中目前还不可能实现通用Bootloader。 Bootloader的最大优点是:在不需要外部编程器的情况下,对嵌入式产品的应用代码进行更新升级。它使得通过局域网或者Intemet远程更新程序成为可能。例如,如果有5 000个基于MCU的电能表应用程序需要更新,电能表制造商的技术人员就可以避免从事对每一个电能表重新编程的巨大工作量,通过使用Bootloader的功能,由控制中心通过电能表抄表系统网络,远程对5 000个电表重新编程。可见,Bootloader功能对于嵌入式系统的广泛应用具有十分重要的意义。 1 78K0/Fx2系列单片机简介 78K0/Fx2系列是带CAN控制器的8位单片机,该系列单片机广泛应用于汽车电子,智能仪表等领域。其内置POC(可编程上电清零电路)/LVI(可编程低电压指示器),单电压自编程闪存,引导交换功能(闪存安全保护),具有低功耗、宽电压范围、超高抗干扰等性能。 78K0系列单片机支持自编程(Self-programming)。所谓自编程,是指用Flash存储器中的驻留的软件或程序对Flash存储器进行擦除/编程的方法。通过单片机的自编程功能,可以设计Bootloader程序,通过串口等通信接口实现对产品重新编程、在线升级的功能。 以μPD78F0881为例。μPD78F0881为78KO/Fx2系列中的一款44管脚单片机,内置32 KB Flash ROM,2 KB RAM,自带2个串行通信接口。其内部Flash结构。为了方便实现擦除和编程,人为地将整个Flash分成若干个block,每个block大小为1 KB。block为自编程库函数中空白检测、擦除、校验的最小单位。blockO从地址0000H开始,程序都从0000H 开始执行。block0~block3共4 KB存储空间为Bootloader程序存储区域。block4~block31为应用程序存储区域。 为了防止Bootloader自身的升级失败,设计了引导交换功能。该功能定义2个簇,即Boot cluster0和Boot cluster1。Boot clustee0为block0~block3的4 KB存储空间,Boot cluster1为block4~block7的4 KB存储空间。因此,实际运用过程中,一般把应用程序的开始定义在2000H,也就是从block8开始。 Flash地址为0000H~FFFFH。7FFFFH~FFFFH存储空间为保留区域以及特殊功能寄存器区域等,用户无法对其进行编程。 2 自编程 2.1 自编程环境 2.1.1 硬件环境 FLMDO引脚是78KO/Fx2系列单片机为Flash编程模式设置的,用于控制MCU进入编程模式。在通常操作情况下,FLMDO引脚下拉到地。要进入自编程模式,必须使FLMDO引脚置成高电平。因此,通过一个普通I/O接口控制FLMD0引脚的电平。。 2.1.2 软件环境 1)使用通用寄存器bank3,自编程库函数,需要调用通用寄存器bank3。因此,在自编程时,不能对通用寄存器bank3操作。

STM32的BOOT概述

STM32的BOOT概述 STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户 闪存= 芯片内置的Flash。2)SRAM = 芯片内置的RAM 区,就是内存啦。3)系统存储器= 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP 程序。这个区域的内容在芯片出厂后没有人 能够修改或擦除,即它是一个ROM 区。 在每个STM32 的芯片上都有两个管脚BOOT0 和BOOT1,这两个管脚在芯 片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。 BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。BOOT1=1 BOOT0=1 从内置SRAM 启动,这种模式可以用于调试。 在系统上电的时候,cpu 首先根据这两个脚来确定是哪种模式的启动,然后 就是把相应模式的起始地址映射到0 地址处,并从0 地址处开始执行。在芯片 出厂时,st 烧写了一个bootloader 到rom 中,也就是system memory。这个bootloader 的主要任务就是通过uart1 下载程序到内置flash 中去。工作流程如下:system memory boot 模式,在执行完成它的任务之后是必须要退出的。这个退出方式是通过一次硬件reset 来实现的。在reset 的时候,必须要配置BOOT[1:0]这两个脚以使cpu 在重启之后进入适当的模式。 要注意的是,一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。多数情况下SRAM 只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM 中诊断板上的 其他电路,或用此方法读写板上的Flash 或EEPROM 等。还可以通过这种方法解除内部Flash 的读写保护,当然解除读写保护的同时Flash 的内容也被自动清

AVR单片机Atmega48程序设计报告——比赛计时计分器

一、设计目的 本设计是基于ATMEGA48单片机的比赛计时计分器,利用8路7段LED数码管作为显示器件,采用3乘3矩阵式键盘作为输入,主要用于各种体育比赛记录分数,在此设计中共接入了2个四位一体7段LED数码管显示器,第一个显示器为一个倒数计时,第二个显示器为两队得分。 本设计中的倒数计时器时间为40分钟,可以进行开始计时、暂停计时的操作,分别通过S3_1、S3_2按钮实现,并通过蜂鸣器表示是否操作成功,时间通过1个四位一体7段LED 数码管显示器显示,前两位为分钟数,后两位为秒数。 本设计中可以对两队得分进行加1分、加2分、加3分操作,分别通过S1_1、S1_2、S1_3、S2_1、S2_2、S2_3按钮实现,并通过蜂鸣器的不同工作方式表示是否操作成功与所加的分值。得分通过1个四位一体7段LED数码管显示器显示,每队得分显示两位数,显示范围为0~99分。 本设计可以进行清零操作,清零后倒计时恢复40分钟,得分均为0,通过S3_3按钮实现,并通过蜂鸣器表示是否操作成功。 二、设计思路 本设计中由AVR核心板、数码管、蜂鸣器、3乘3矩阵键盘四部分组成。电路中PORT_B 端口连接数码管,显示八位,完成倒计时与记录每队得分,PORT_C与3乘3矩阵键盘相连,由按键控制完成初始化、开始与暂停计时以及加分的功能,PORT_D与蜂鸣器端口相连,根据所加得分的不同,开始与暂停计时,初始化,蜂鸣器有不同的应答方式。 本设计中的程序主要分为两个部分,即暂停计时时的显示与开始计时时的显示。暂停计时时与开始计时时都可以对每队加分,初始化。 三、设计电路图 图一接口模块电路

图二蜂鸣器电路 图三 8路7段LED数码管电路

运动控制-M法T法测速单片机程序设计

M法、T法测速单片机程序设计 摘要 本设计为M法、T法测速的单片机程序设计。使用STC89C52单片机作为控制器,使用该单片机的外部中断和定时器对编码器的输出的脉冲进行采样来计算出电机的转速。可以使用按键输入来调整M法、T法测速法中Z、Tc和Tt等参数以及测速方法的选择,以此来增强本设计的适应性。参数选择结果和电机转速计算结果均显示在LCD1602上。 关键字:STC89C52,M法、T法测速,LCD1602,电机转速 Ⅰ

Abstract This design as m, t-law velocity measurement of single-chip computer programming. Using STC89C52 single-chip computer as the controller, using the microcontroller's external interrupts and timers for encoder output pulse is sampled to calculate the speed of the motor. Can be adjusted using touchtone m, t law Velocimetry parameters such as z, Tt and Tc, as well as in speed measurement method of choice, as a way to enhance the adaptability of this design. Parameter selection and calculation of motor speed results are available on LCD1602. Keywords:STC89C52,M、T method, the LCD1602, Motor speed Ⅱ

单片机课程设计报告书模板

. .. . .. .. 西南科技大学 2011级微机原理与接口技术 课程设计报告 课题名称微机原理与接口技术 姓名 学号 院、系、部制造科学与工程学院 专业 指导教师 2014年月日

目录 一、绪言 (1) 二、系统设计 (1) 2.1系统整体流程图 (1) 2.2日历时钟的控制方案论证 (1) 2.3单片机的选择方案论证 (2) 2.4键盘选择方案论证 (2) 2.5显示模块的选择方案论证 (2) 2.6模块的选择方案论证 (2) 三、硬件电路设计 (2) 3.1日历时钟的控制电路图 (2) 3.2行列式键盘的设计 (3) 3.3数码管显示电路的设计 (3) 3.4蜂鸣器驱动电路的设计 (4)

3.5主要元器件选择 (4) 四、程序流程图 (5) 五、c语言程序设计 (5) 六、日历时钟的控制器仿真 (19) 6.1K e i l调试 (19) 6.2P r o t e u s调试 (19) 七、结束语 (20) 八、参考文献 (21) 1、绪言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。本设计采用AT89C51单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

利用单片机AT89C52采用程序设计方法产生锯齿波

1 引言 本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。 2设计方案 2.1系统硬件设计概述 经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。 2.2、设计要求 1)、利用单片机采用软件设计方法产生四种波形 2)、四种波形可通过键盘选择 3)、波形频率可调

4)、需显示波形的种类及其频率 2.1.2方案设计与论证 1.2.1 信号发生电路方案论证 方案一:通过单片机控制D/A,输出四种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。 方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。 方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。但此方案成本高,程序复杂度高。 以上三种方案综合考虑,选择方案一。 1.2.2 单片机的选择论证 方案一:AT89C52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。 方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有

编写程序的步骤 教学设计

编写程序的步骤教学设计 【研究的问题】 在中小学信息技术教学中,程序设计一直是师生倍感头疼的内容。程序设计难教难学,源于计算机语言本身高度的抽象性和严密的逻辑性。虽然,Visual Basic语言较之其它语言要易学好懂一点,但它仍需要必要的抽象思维能力和数学知识作为支撑。如何“蹲下身来让大部分学生能够得着“ ,让学生学得轻松、有效,是我们在本学期一直应关注的问题。 【设计依据】 教材简析: 《编写程序的步骤》位于省编教材的选修部分第一单元《走进程序设计》的第二节。在初中信息技术教学中,程序设计部分始终是教师觉得难教,学生觉得难学的部分,而这一节中的“算法与算法描述“更是这一单元的重中之重。学好这一节,能为整个VB的学习奠定一个良好的基础。 本课是程序设计的第一课时(第1节《程序设计与计算机软件》,我们让学生自学了解,没有占用课时。),起始课的好坏将直接影响整个单元的后继教学。例如一部优秀的电影一般都有一个精彩的开头,一开始就抓住观众的心,使他们有动机、有兴趣往下观赏。 学情分析: 初二的学生虽具备了一定的计算机使用经验,但大多数是与软件的使用和网络应用有关,程序设计对他们是崭新的、具有挑战性的知识。而且这个时期的学生正处于感性思维向理性思维过渡的时期,很多时候仍需要感性思维的支撑。因此在教学中应强调程序设计与生活的关系,注重启蒙和兴趣的培养,并以趣味性的练习、富有引导性的教学语言、明白流畅的教学思路调动学生的情感,在晦涩的程序设计和学生之间架起一座桥梁。 【教学目标】 知识与技能 1、了解利用计算机解决问题的基本过程,认识算法的地位和作用。 2、初步掌握使用自然语言或流程图对算法进行描述。 过程与方法 1、通过实例让学生体会程序设计的基本过程与方法,理解算法思想,会用自然语言或流程图表达一些具体问题的算法。 2、通过对现实问题的分析与解决,让学生认识到生活中到处是程序,而程序解决的往往就是

单片机程序设计报告

单片机系统 课程设计 题目名称:基于89C52的智能交通灯设计 专业班级:测控技术与仪器1304班 学生姓名:田留阳 学号:201323030411 指导教师:郭广灵

单片机系统课程设计任务书

目录 1系统概述 (1) 1.1 课程设计目的 (1) 1.2 设计内容 (1) 1.3 实现目标 (1) 2 方案论证 (1) 2.1 电源提供方案 (2) 2.2 显示界面方案 (2) 3 硬件设计 (3) 3.1系统的原理方框图 (3) 3.2 主电路 (3) 3.3 I/O分配 (6) 3.4I/O接线图 (10) 3.5 元器件选型 (10) 4 软件设计 (11) 4.1 软件设计流程 (12) 4.2梯形图 (13) 4.3 交通灯定时器模块 (14) 5系统调试 (14) 5.1 软件调试 (14) 5.2 硬件调试 (15) 设计心得 (19) 参考文献 (20) 附件一 (21) 附件二 (22) 附件三 (23)

1 系统概述 1.1 课程设计的目的 (1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。 (2)用单片机模拟实现具体应用,使个人设计能够真正使用。 (3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。 (4)提高利用已学知识分析和解决问题的能力。 (5)提高实践动手能力。 1.2 设计内容 本系统采用单片机AT89S52来设计交通灯控制器,实现了能根据实际车流量通过AT89S52芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示。本系统实用性强、操作简单、扩展功能强。 1.3 实现的目标 通过数码管显示实现各个路口车辆通过或者等待的时间,同时控制按键可以实现对紧急事件的处理。从而从一定程度上解决交通拥挤现象。 2 方案论证 本设计以单片机为核心,以LED数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。

tms320c6000系列二次bootloader的设计与实精)

TMS320C6000系列二次Bootloader的设计与实 (精) TMS320C6000系列二次Bootloader的 设计与实现,DSP,二次 Bootloader,Flash存储器,中断向 引言随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。系统上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。由于Flash存储器具有 引言 随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。 系统上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。由于Flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。由于Flash存储器的存取

速度较慢,写入Flash存储器的程序将在系统上电时被DSP装载到快速的存储器中运行,这个过程称为Boot loader。不同的DSP有不同的引导方式。以TI公司TMS320C6000系列芯片为例,自举方式有3种:无自举(No Boot),CPU直接开始执行地址0处的指令;主机自举(Host Boot),系统复位后主机通过CPU的HPI(主程序设计接口)初始化DSP的存储空间;ROM自举(ROM Boot),DMA控制器从CEl 空间复制固定长度程序的地址0处,然后从地址0处开始执行。对于620x/670x DMA,复制64 kB数据从CEl到地址0;而对于621x/671x EDMA,复制1 kB数据从CEl地址开始到地址0。 关于TI公司的C6000芯片二次Bootloader在许多文献都介绍过,包括二次Bootloader的PLL、EMIF的设置和搬移表的设置和Flash存储器的烧写过程,但是对于有中断向量表的二次Bootloader实现的文献很少。本文以TI公司高性能DSP的代表作TMS320C6000系列芯片为例,介绍了一种带中断向量表的二次Bootloader 的新途径,从而为TMS320C6000系列DSP的开发提供了一种新的思路。该方法在实际中得到具体应用,系统运行稳定可靠。 1 二次Bootload的过程 TMS320C6713是TI公司推出的TMS320C67xx系列浮点DSP中最新的一种芯片。TMS320C6713每周期可以执行8条32位指令;支持32/64位数据;具有最高225MHz的运行速度和1800 MIPs(百万次运算每秒)或1350 MFLOPS(百万次浮点运算每秒)的处理能力;同时是有强大的外设支持能力;EMIP(外部存储器接口)可以很方便地与SDRAM、SBSRAM、Flash存储器、SRAM等同步和异步存储器相连,16位EHPI接口可以与各种处理器接口;另外,还有优化的多通道缓存串口和多通道音频串口,这些外部接口使设计人员可以很容易实现自己的应用系统。 在选择ROMBoot方式时,RESET由低变高后,C6713的CPU内核处于复位状态,而C6713的其他部分则开始工作,此时EMIF的CEl空间根据ROM Boot的方式

单片机程序设计方法总结.doc

单片机程序设计方法总结 程序设计是单片机开发最重要的工作程序设计就是利用单片机的指令系统根据应用系统即目标产品的要求编写单片机的应用程序其实我们前面已经开始这样做过了这一课我们不是讲如何来设计具体的程序而是教您设计单片机程序的基本方法不过在讲解之前还是有必要先了解一下单片机的程序设计语言这里的语言与我们通常理解的语言是有区别的它指的是为开发单片机而设计的程序语言如果 您没有学过程序设计可能不太明白我给大家简单解释一下您知道微软的VB VC 吗VB VC 就是为 某些工程应用而设计的计算机程序语言通俗地讲它是一种设计工具只不过这种工具是用来设计计 算机程序的要想设计单片机的程序当然也要有这样一种工具说设计语言更确切些单片机的设计 语言基本上有三类: 1 .完全面向机器的机器语言 机器语言就是能被单片机直接识别和执行的语言计算机能识别什么以前我们讲过--是数字0 或1 所以机器语言就是用一连串的0 或1 来表示的数字比如MOV A 40H 用机器语言来表示就是 11100101 0100000 很显然用机器语言来编写单片机的程序不太方便也不好记忆我们必须想办法 用更好的语言来编写单片机的程序于是就有了专门为单片机开发而设计的语言 2. 汇编语言 汇编语言也叫符号化语言它使用助记符来代替二进制的0 和1 比如刚才的MOV A40H 就是汇编语言 指令显然用汇编语言写成的程序比机器语言好学也好记所以单片机的指令普遍采用汇编指令来编写 用汇编语言写成的程序我们就叫它源程序或源代码可是计算机不能识别和执行用汇编语言写成的程 序啊怎么办当然有办法我们可以通过翻译把源代码译成机器语言这个过程就叫做汇编,汇编工作现在 都是由计算机借助汇编程序自动完成的不过在很早以前它是靠手工来做的. 值得注意的是:汇编语言也是面向机器的,它仍是一种低级语言每一类计算机都有它自己的汇 编语言比如51 系列有它的汇编语言;PIC 系列也有它的汇编语言微机也有它自己的汇编语言它 们的指令系统是各不相同的也就是说不同的单片机有不同的指令系统它们之间是不通用的,这就

单片机课程设计报告

文华学院 单片机原理及应用 课程设计报告 姓名: 学号: 学部(系): 专业年级: 指导老师: 2016年12月5日

目录 一标题 (1) 二设计内容,设计要求 (1) 三设计思路 (1) 四工作原理 (2) 五硬件设计 (3) 六软件设计(含流程图) (5) 七调试 (9) 八改进意见 (10) 九收获及体会 (10) 十源程序(含注释) (11)

一、标题 简易计时器——LED 数码管显示接口技术应用 二、设计内容,设计要求 1、目的 a.通过简易计时器的制作,熟悉LED 数码管与单片机的接口方式; b.定时/计数器、中断技术的综合应用; c.学会简易键盘的使用。 2、明确要完成的任务 a.利用按键构成键盘实现秒表的启动、停止与复位, b.利用LED 数码管显示时间。 c.进行简单的串行通信。 3、用单片机实现任务 a.如何运用单片机实现计时; b.如何显示时间; c.如何利用按键实施对秒表的控制。 d.定时器T0 或Tl 的定时时间作为时钟计时的基准 e.启动与停止定时器工作实现计时。 f.先用两个数码管动态显示时间,时间范围为0-60s g.用三个独立式按键实现秒表的启动、停止和复位功能。 h.A机发送,B机接收 三、设计思路 1、硬件设计思路 a.采用P0 口输出并联控制两个数码管的8 个段选控制端 b.用P2.0、P2.1分别控制两个LED 数码管的位选控制端 c.动态显示电路接法,LED 采用共阳极数码

d.三个按键采用独立式键盘接法, e.两个按键连接到外部中断INT0 、INT1 的输人引脚P3.2和P3.3 f.S4按键接到T1的外部脉冲输入引脚P3.5,以中断方式实现键盘输入状态的扫描 g.其中S2为启动按钮,S3为停止按钮,S4 清零按钮。 h.K1为复位键 2、程序设计思路 a.根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序及中断服务程序结构 b.对各程序模块占用的单片机资源进行统一调配 c.对各模块间的逻辑关系进行细化,优化程序结构 d.设计出各模块程序结构流程图 e.最后依据流程图编制具体程序 f.将整个程序划分为主程序、键盘扫描程序、秒计时程序三大模块 g.其中主程序除完成初始化外,主要由动态显示程序构成 h.秒计时程序由定时器0中断服务子程序构成 i.键盘扫描程序也由各中断服务子程序来实现 四、工作原理 1、计时表 原理图

相关文档
最新文档