版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机应用系统设计实例和程序单片机应用系统设计实例和程序12.1.1 单片机应用系统开发的基本过程一系统需求与方案调研 系统需求与方案调研的目的是通过市场或用户了解用户对拟开发应用系统的设计目标和技术指标。通过查找资料,分析研究,解决以下问题:1)了解国内外同类系统的开发水平、器材、设备水平、供应状态;对接收委托研制项目,还应充分了解对方技术要求、环境状况、技术水平,以确定课题的技术难度。2)了解可移植的硬、软件技术。能移植的尽量移植,以防止大量低水平重复劳动。3)摸清硬、软件技术难度,明确技术主攻方向。4)综合考虑硬、软件分工与配合方案。单片机应用系统设计中,硬、软件工作具有密切的相关性。单
2、片机应用系统设计实例和程序 可行性分析的目的是对系统开发研制的必要性及可行性作出明确的判定结论。根据这一结论决定系统的开发研制工作是否进行下去。 可行性分析通常从以下几个方面进行论证:1)市场或用户的需求情况。2)经济效益和社会效益。3)技术支持与开发环境。4)现在的竞争力与未来的生命力。二可行性分析单片机应用系统设计实例和程序 系统功能设计包括系统总体目标功能的确定及系统硬、软件模块功能的划分与协调关系。 系统功能设计是根据系统硬件、软件功能的划分及其协调关系,确定系统硬件结构和软件结构。 系统硬件结构设计的主要内容包括单片机系统扩展方案和外围设备的配置及其接口电路方案,最后要以逻辑框图形式
3、描述出来。 系统软件结构设计主要完成的任务是确定出系统软件功能模块的划分及各功能模块的程序实现的技术方法,最后以结构框图或流程图描述出来。三系统功能设计单片机应用系统设计实例和程序12.12.1 单片机应用系统的硬件组成被控对象单片机光电隔离A/D光电隔离光电隔离D/A扩展存储器 显示器 键盘接口功能芯片接口数字量输入模拟量输入开关量输入开关量输出模拟量输出输入输出接口I/O接口单片机应用系统设计实例和程序 系统详细设计与制作就是将前面的系统方案付诸实施,将硬件框图转化成具体电路,并制作成电路板,软件框图或流程图用程序加以实现。四系统详细设计与制作 系统调试是检测所设计系统的正确性与可靠性的必
4、要过程。单片机应用系统设计是一个相当复杂的劳动过程,在设计、制作中,难免存在一些局部性问题或错误。系统调试可发现存在的问题和错误,以便及时地进行修改。调试与修改的过程可能要反复多次,最终使系统试运行成功,并达到设计要求。五系统调试与修改单片机应用系统设计实例和程序 硬件调试是利用开发系统、基本测试仪器(万用表、示波器等),通过执行开发系统有关命令或测试程序,检查用户系统硬件中存在的故障。它又可分为静态调试和动态调试两步: 静态调试即用户系统未工作时的一种硬件检查。一般采用目测、万用表测试、加电测试等方法对印制电路板及各芯片、器件进行检查。 动态调试是在用户系统工作时发现和排除硬件故障的一种硬件
5、检查。其一般方法是先进行各单元电路调试再进行全系统调试。 什么是硬件调试?仿真调试 仿真调试分硬件调试、软件调试和系统联调三个阶段。(1)硬件调试单片机应用系统设计实例和程序(2)软件调试 软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。 软件调试的一般方法是先独立后联机、先分块后组合、先单步后连续。什么是软件调试?(3)系统联调 系统联调是指让用户系统的软件在其硬件上实际运行,并进行软、硬件联合调试。单片机应用系统设计实例和程序4程序固化及独立运行5文件编制阶段 文件应包括:任务描述;设计的指导思想及设计方案论证;性能测定及现场试用报告与说
6、明;使用指南;软件资料(流程图、子程序使用说明、地址分配、程序清单);硬件资料(电路原理图、元件布置图及接线图、接插件引脚图、印制线路板图、注意事项等)。单片机应用系统设计实例和程序 系统硬件、软件调试通过后,就可以把调试完毕的软件固化在EPROM中,然后脱机(脱离开发系统)运行。如果脱机运行正常,再在真实环境或模拟真实环境下运行,经反复运行正常,开发过程即告结束。 六生成正式系统或产品单片机应用系统设计实例和程序12.2 单片机应用系统的硬件设计12.2.1 硬件系统设计原则 一个单片机应用系统的硬件电路设计包括三个部分内容:一是单片机芯片的选择,二是单片机系统扩展,三是系统配置。一、单片机
7、芯片的选择二、单片机系统扩展 单片机系统扩展是指单片机内部的功能单元(如程序存储器、数据存储器、I/O口、定时器/计数器、中断系统等)的容量不能满足应用系统的要求时,必须在片外进行扩展,这时应选择适当的芯片,设计相应的扩展连接电路;系统配置是按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D转换器、D/A转换器等,设计相应的接口电路。 单片机应用系统设计实例和程序单片机的选型原则1.单片机的系统适应性 所谓系统适应性是指能否用这个单片机完成对应用系统的控制任务。 主要考虑以下几点: 是否有所需的I/O端口数 是否有所需的中断源及定时器 是否有所需的外围端口部件 是否有合适的计算处理能
8、力 是否有足够的极限性能单片机应用系统设计实例和程序2单片机的可开发性(1)开发环境 包括汇编程序、编译、连接程序。 (2)调试工具 包括在线仿真器、逻辑分析工具、调试监控程序。(3)在线BBS服务 包括实时执行、应用案例、缺陷故障报告、实用软件、样本源码。(4)应用支持 包括是否存在专职的应用支持机构?是否存在应用工程师及销售人员的支持?支持人员的学识水平如何?是否有便利的通信工具,是否及时得到支持?单片机应用系统设计实例和程序3制造商历史及可购买性 产品的性价比以及是否可靠? 购买途径是否顺畅? 供货量是否充足稳定? 是否停产? 是否在改进之中? 总结依据上述三个原则进行单片机的选型,应可
9、以选择出最能适用于具体应用系统的单片机,同时可以保证应用系统具有高可靠性、高性价比、高使用寿命及可升级换代性。单片机应用系统设计实例和程序三、系统扩展和配置设计遵循的原则(1)尽可能选择典型通用的电路,并符合单片机的常规用法。(2)系统的扩展与外围设备配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。(3)硬件结构应结合应用软件方案一并考虑。(4)整个系统中相关的器件要尽可能做到性能匹配。(5)可靠性及抗干扰设计是硬件设计中不可忽视的一部分。(6)单片机外接电路较多时,必须考虑其驱动能力。单片机应用系统设计实例和程序12.2.2 硬件设计一程序存储器二数据存储
10、器三I/O接口四译码电路五总线驱动器六抗干扰电路单片机应用系统设计实例和程序12.3 单片机应用系统的软件设计 一个应用系统中的软件一般是由系统监控程序和应用程序两部分构成的。其中: 应用程序是用来完成诸如测量、计算、显示、打印、输出控制等各种实质性功能的软件; 系统监控程序是控制单片机系统按预定操作方式运行的程序,它负责组织调度各应用程序模块,完成系统自检、初始化、处理键盘命令、处理接口命令、处理条件触发和显示等功能。单片机应用系统设计实例和程序 软件设计时,应根据系统软件功能要求,将软件分成若干个相对独立的部分,并根据它们之间的联系和时间上的关系,设计出软件的总体结构,画出程序流程框图。画
11、流程框图时还要对系统资源作具体的分配和说明。根据系统特点和用户的了解情况选择编程语言,现在一般用汇编语言和C语言。 汇编语言编写程序对硬件操作很方便,编写的程序代码短,以前单片机应用系统软件主要用汇编语言编写; C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,现在单片机应用系统开发很多都用C语言来进行开发和设计。单片机应用系统设计实例和程序12.3.1 软件设计的特点一个优秀的应用系统的软件应具有以下特点:(1)软件结构清晰、简捷、流程合理。(2)各功能程序实现模块化,系统化。这样,既便于调试、连接,又便于移植、修改和维护。(3)程序存储区、数据存储区规划合理,
12、既能节约存储容量,又能给程序设计与操作带来方便。(4)运行状态实现标志化管理。各个功能程序运行状态、运行结果以及运行需求都设置状态标志以便查询,程序的转移、运行、控制都可通过状态标志来控制。单片机应用系统设计实例和程序(5)经过调试修改后的程序应进行规范化,除去修改“痕迹”。规范化的程序便于交流、借鉴,也为今后的软件模块化、标准化打下基础。(6)实现全面软件抗干扰设计。软件抗干扰是计算机应用系统提高可靠性的有力措施。(7)为了提高运行的可靠性,在应用软件中设置自诊断程序,在系统运行前先运行自诊断程序,用以检查系统各特征参数是否正常。单片机应用系统设计实例和程序12.3.2 资源分配一程序存储器
13、ROM/EPROM资源的分配 在这些资源分配中,定时/计数器、中断、串行口等分配比较容易,这里介绍程序存储器和数据存储器的分配。 程序存储器ROM/EPROM用于存放程序和数据表格。按照MCS-51单片机的复位及中断入口的规定,002FH以前的地址单元作为中断、复位入口地址区。在这些单元中一般都设置了转移指令,用于转移到相应的中断服务程序或复位启动程序。当程序存储器中存放的功能程序及子程序数量较多时,应尽可能为它们设置入口地址表。一般的常数、表格集中设置在表格区。二次开发,扩展部分尽可能放在高位地址区。单片机应用系统设计实例和程序 RAM分为片内RAM和片外RAM。片外RAM的容量比较大,通常
14、用来存放批量大的数据,如采样结果数据;片内RAM容量较少,应尽量重叠使用,比如数据暂存区与显示、打印缓冲区重叠。 对于MCS-51单片机来说,片内RAM是指00H7FH单元,这128个单元的功能并不完全相同,分配时应注意发挥各自的特点,做到物尽其用。二数据RAM资源分配单片机应用系统设计实例和程序12.3.3 单片机应用系统开发工具 一个单片机应用系统经过总体设计,完成硬件开发和软件设计,就进行硬件安装。硬件安装好后,把编制好的程序写入存储器中,调试好后系统就可以运行了。但用户设计的应用系统本身并不具备自开发的能力,不能够写入程序和调试程序,这必须借助于单片机开发系统才能完成这些工作。单片机开
15、发系统是能够模拟用户实际的单片机,并且能随时观察运行的中间过程和结果,从而能对现场进行模仿的仿真开发系统。通过它能很方便的对硬件电路进行诊断和调试,得到正确的结果。 单片机应用系统设计实例和程序 目前国内使用的通用单片机的仿真开发系统很多,如复旦大学研制的SICE系列、启东计算机厂制造的DVCC系列、中国科大研制的KDV系列、南京伟福实业有限公司的伟福E6000以及西安唐都科教仪器公司的TDS51开发及教学实验系统。它们都具有对用户程序进行输入、编辑、汇编和调试的功能。此外,有些还具备在线仿真功能,能够直接将程序固化到EEPROM中。一般都支持汇编语言编程,有的可以通过开发软件,支持C语言编程
16、。例如可通过Keil C51软件来编写C语言源程序,编译连接生成目标文件、可执行文件,仿真、调试、生成代码并下载到应用系统中。 单片机应用系统设计实例和程序12.4 单片机应用系统的抗干扰设计 1. 干扰源及干扰途径 单片机系统中的干扰有多种类型。 一种是来自空间辐射的干扰。可控硅逆变电源、变频调速器、发射机等特殊设备在工作时会产生很强的干扰,在这种环境中单片机系统难以正常运行; 另一种是来自电源的干扰。各种开关的通断、火花干扰、大电机启停等现象在工业现场很常见,这些来自交流电源的干扰对单片机系统的正常运行危害极大; 还有一种就是来自信号通道的干扰。在实际的应用系统中,测控信号的输入/输出是必
17、不可少的。在工业现场中,这些I/O信号线、控制线有时长达几百米,不可避免地会把干扰引入到系统中。如果受控对象是强干扰源,如可控硅、电焊机等,则单片机系统根本就无法运行。 单片机应用系统设计实例和程序2、硬件抗干扰措施 根据干扰的产生及传输特点,在硬件上可以采取以下措施:(1)硬件屏蔽。将系统安装在对电磁辐射干扰具有屏蔽作用的金属机箱中,并进行正确接地,可以有效地抑制强电设备产生的空间辐射干扰。(2)光电隔离。对于开关量信号用光电耦合器隔离以后再进行输入/输出,对于模拟量信号可选用光电隔离器或变压器隔离后再进行输入/输出,并使用双绞线或屏蔽线进行信号传输,这样就可以有效地克服信号传输通道带来的干
18、扰。(3)电源滤波。对于来自电源的干扰,可采用低通滤波器以及带有屏蔽层的电源变压器来进行抑制。单片机应用系统设计实例和程序(4)电源去耦。对于系统中每一片集成电路,在电源和地之间都加上去耦电容,既是本芯片的蓄能电容,还能抑制高频噪声。(5)在满足要求的前提下尽量用较低的时钟频率和低频的器件。(6)合理布置元件在线路板上的位置,把模拟电路、高速数字电路和产生噪声的功率驱动部分合理地分开,各部件之间的引线尽量短,对各种输入/输出线分类打把,以减少寄生电容的干扰。(7)系统中芯片的未用端不要悬空,应根据实际情况接到电源端、地端或已用端。(8)尽量不用IC插座,而将集成电路直接焊接在电路板上。 单片机
19、应用系统设计实例和程序3、软件抗干扰措施(1)在程序中插入空操作指令实现指令冗余。系统在工作时容易因干扰而使PC指向程序存储器的非代码区,从而导致“死机”。为此可以在程序中插入一些单字节的空操作指令NOP,失控的程序遇到该指令后得到调整而转入正常。(2)对未用的中断向量进行处理。在程序中对未用的中断都编写出相应的错误处理程序,若因干扰触发了这些中断,则执行完简单的出错处理程序后可以正常返回。(3)采用超时判断克服程序的死锁。在系统的数据采集部分,如A/D转换结果采用查询方式读取,若因干扰使A/D转换结束标志无效,程序就会进入死循环。针对类似情况,可在程序中采用超时判断,若系统在一定的时间内采不
20、到有效的标志,就自动放弃本次采样,从而避免程序死锁的发生。单片机应用系统设计实例和程序(4)采用软件陷阱。当程序因干扰而“跑飞”时,可在非程序区设置陷阱,强迫PC进入一个指定的地址,执行一段专门对死机进行处理的程序,使系统恢复正常。软件陷阱可安排在未使用的中断区和未使用的大片ROM空间,可由以下三条指令构成:NOPNOPLJMP ERR单片机应用系统设计实例和程序(5)采用看门狗。当程序“跑飞”而前述方法又没有捕捉到时,可以用看门狗来恢复系统的正常运行。具体设计时可以用软件实现,也可以用专用的看门狗芯片如MAX693、X25045等来实现。软件方法利是用单片机中未用的定时器进行定时,在主程序每
21、一次循环的特定时刻刷新定时器的时间常数,若定时器因系统死机而得不到刷新,就会产生溢出而引起中断,在其中断服务程序中进行出错处理后转入正常运行。看门狗芯片也相当于定时器,系统在每一次循环中用一根口线使芯片复位,若芯片因系统异常而得不到复位,其接到MCU复位端的溢出信号就能使系统恢复正常运行。单片机应用系统设计实例和程序(6)采用数字滤波。为了提高数据采集的可靠性,减小虚假信息的影响,可以采用数字滤波的方法,如程序判断滤波、中值滤波、滑动平均值滤波、防脉冲干扰平均值滤波、一阶滞后滤波等。也可以对数据进行非线性补偿和误差修正,提高数据精度。单片机应用系统设计实例和程序单片机系统的故障诊断 (1)同类
22、比较法。(2)分段检查法。(3)隔离压缩法。(4)故障跟踪法。(5)振动加固法。(6)拉偏检测法。(7)直接查找法。单片机应用系统设计实例和程序系统级故障诊断 在单片机系统的电气连接没有问题的条件下,可以进一步利用程序存储器中固化的系统自检程序对系统进行预定的几项检查。对系统故障进行检查时,一个十分有效的办法是利用系统本身的自检功能,包括指令系统自检、数据存储器自检、程序存储器自检、I/O接口自检、传感器装置自检、调节机构自检等。自检手段不仅可用自检软件,而且还可以配置一定的自检硬件电路来实现系统自检。尤其是对于控制系统的末级部分,利用硬件手段效果更好。单片机应用系统设计实例和程序12.5 设
23、计实例:多功能数字钟12.5.1 设计要求 设计制作具有下列功能的数字钟:l 自动计时,由6位LED显示器显示时、分和秒;l 具备校准功能,可以直接由0-9数字键设置当前时间;l 具备定时闹钟功能。单片机应用系统设计实例和程序12.5.2 设计方案1. 计时方案 利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分和秒的计时。2. 键盘/显示方案 设计方案中采用43键盘实现输入设置,采用动态显示方式实现LED显示,如图所示。单片机应用系统设计实例和程序3、控制方案(1)时间显示 上电后系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间。(2)时间调整 按下C/R
24、键(时间设定/启动计时键),系统停止计时,进入时间设定状态,系统保持原有显示,等待键入当前时间,按下09数字键可以顺序设置时、分和秒,并在相应的LED上显示设置值,6位设置完毕后系统将从设定后的时间开始计时显示。单片机应用系统设计实例和程序(3)闹钟设置 按下ALM键(闹钟设置/启闹/停闹键),系统继续计时,显示00:00:00,进入闹钟设置状态,等待键入启闹时间,按下0-9数字键可以顺序进行相应的时间设置,并在相应的LED上显示设置值,6位设置完毕后系统启动定时启闹功能,并恢复时间显示。定时时间到,蜂鸣器鸣叫,直至重新按下ALM键停闹,并取消闹钟设置。单片机应用系统设计实例和程序12.5.3
25、 硬件原理 数字钟电路由单片机、可编程I/O接口芯片8155、43键盘输入电路、6位LED显示输出电路及蜂鸣器启闹电路组成,如图125所示为系统电路原理图。 12.单片机:选用89C51可满足要求。 2I/O接口电路: 采用8155作为键盘/显示接口电路,其中8155的A口作为6位LED显示的位选口(低电平有效),B口作为段选口(高电平有效),C口的低3位为键盘输入口,对应02行,A口同时用做键盘的列扫描口。由系统电路原理图可知:单片机应用系统设计实例和程序 8155的地址分配如下: 控制寄存器:8000H,定义为PORT A口:8001H,定义为PORTA B口:8002H,定义为PORTB
26、 C口:8003H,定义为PORTC单片机应用系统设计实例和程序 3 43键盘输入电路: 采用43键盘,包括09十个数字键(键号为00H09H)、C/R键(时间设定/启动计时键,键号为0AH)和ALM键(闹钟设置/启闹/停闹键,键号为0BH)。 4 LED数码显示电路: 采用共阴极数码管实现时钟显示,6位LED从左到右依次显示时、分和秒,采用24小时计时。 5 蜂鸣器启闹电路: 由89C51的控制驱动蜂鸣器(低电平有效)。单片机应用系统设计实例和程序图125 数字钟硬件电路图 单片机应用系统设计实例和程序12.5.4 程序设计1.系统资源分配 定时器T0按照定时方式1工作,片内RAM及标志位的
27、分配与定义见表121。地 址功 能名 称初始值30H-35H显示缓冲区,时、分、秒(高位在前)DISP0-DISP500H3CH-3FH计时缓冲区,时、分、秒、100msHOUR,MIN,SEC,MSEC00H40H-42H闹钟值寄存区,时、分、秒AHOUR,AMIN,ASECFFH50H-7FH堆栈区PSW.5计时显示允许位(1:禁止,0:允许)F00PSW.1闹钟标志位(1:正在闹响,0:未闹响)F10单片机应用系统设计实例和程序2主要程序设计(1)主程序 实现初始化与键盘监控,流程图如图126所示。(2)定时器T0中断服务程序 实现计时功能,同时刷新计时缓冲区。流程图如图127所示。 定
28、时器T0每隔100 ms溢出中断一次(设系统使用6 MHz晶振,定时器T0工作在方式1的定时器初值为3CB0H,即TH0=3CH,TL0=0B0H),每循环中断10次则延时时间为1s,重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:00:00。单片机应用系统设计实例和程序图126 主程序流程图 图127 计时流程图单片机应用系统设计实例和程序(3)时间设置与闹钟设置子程序 实现当前时间及定时启闹时间的键盘输入设置。流程图如图128所示。 图128 时间设置/闹钟定时流程图 其功能是用键盘设置子程序将键入的6位时间值送入键盘设置缓冲区,用合字子程序将键盘设置缓冲区中的6
29、位BCD码合并为3位压缩BCD码,送入计时缓冲区或闹钟值寄存区。若键盘输入的小时值大于23,分和秒值大于59,则不合法,将取消本次设置,清零重新开始计时。单片机应用系统设计实例和程序(4)键盘扫描子程序 图129 键盘扫描程序流程图 作用: 判断是否有键按下,无键按下则循环等待,有键按下则求取键号后返回。流程图如图129所示。单片机应用系统设计实例和程序图1210 显示程序流程图(5)显示子程序 实现显示缓冲区的6位BCD码的动态扫描方式显示。单片机应用系统设计实例和程序(6)定时比较子程序 实现当前时间(计时缓冲区的值)与预设的启闹时间(闹钟设置寄存区的值)的比较,若二者完全相同时,启动蜂鸣
30、器鸣叫并置位闹钟标志位。当重新按下ALM键时,停闹并清零闹钟标志。流程图如右图所示。单片机应用系统设计实例和程序(7)其它辅助功能子程序 键盘设置子程序:将键入的6位时间值送入键盘设置缓冲区,流程图见图1212所示。 拆字子程序:将3字节计时缓冲区中时、分和秒压缩BCD码拆分为6字节BCD码并刷新显示缓冲区。 合字子程序:将键盘设置缓冲区中6位BCD码合并为3位压缩BCD码,送入计时缓冲区或闹钟值寄存区,同时检测时间值的合法性。单片机应用系统设计实例和程序图1212 键盘设置子程序流程图 单片机应用系统设计实例和程序3源程序清单主程序:ORG0000HAJMP MAINORG 000BHAJM
31、P CLOCKORG 0030HPORT EQU 8000HPORTA EQU8001HPORTB EQU8002HPORTCEQU 8003H DISP0 EQU 30HDISP1 EQU 31H单片机应用系统设计实例和程序DISP2 EQU 32HDISP3 EQU 33HDISP4 EQU 34HDISP5 EQU 35HHOUR EQU 3CHMIN EQU 3DHSEC EQU 3EHMSEC EQU 3FHAHOUR EQU 40HAMINEQU 41HASEC EQU 42HF1 BIT PSW.1 单片机应用系统设计实例和程序MAIN:MOV SP,#50H ;设置堆栈区 MO
32、VX DPTR,#PORT ;8155初始化 MOVA,#03H MOVX DPTR,A CLR F1 ;清零闹钟标志位 CLRF0 ;允许计时显示 MOV AHOUR,#0FFH ;闹钟值寄存区置初值 MOV AMIN,#0FFH MOV ASEC,#0FFH MOV R7,#10H ;显示缓冲区、计时缓冲区清零 MOV R0,#DISP0 CLR A单片机应用系统设计实例和程序LOOP: MOV R0,A INCR0 DJNZ R7,LOOP MOV TMOD,#01H ;定时器T0初始化 MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 ;启动定时器 SETB EA
33、 ;开中断 SETB ET0BEGIN:ACALLALARM ;调用定时比较 ACALLKEYSCAN;调用键盘扫描 CJNEA,#0AH,NEXT1;是C/R键否? CLR TR0 ;暂时停止计时 单片机应用系统设计实例和程序 MOV R1,#HOUR ;地址指针指向计时 缓冲区首地址 AJMPMODNEXT1:CJNE A,#0BH,BEGIN;是ALM键否? JBF1,NEXT2;闹钟正在闹响否? MOV R1,#AHOUR;地址指针指向闹钟值寄存区 首地址MOD: SETBF0;禁止显示计时时间 ACALL MODIFY ;调用时间设置/闹钟定时程序 SETBTR0 ;重新开始计时 C
34、LR F0 ;恢复显示计时时间 AJMP BEGIN单片机应用系统设计实例和程序NEXT2: SETBP12.0 ;闹钟正在闹响,停闹 CLRF1;清零闹钟标志 AJMPBEGIN 定时器T0中断服务子程序:CLOCK:PUSHPSWPUSHACC;保护现场MOV TL0,#0B7H MOVTH0,#3CH;重装初值,时间校正 INCMSECMOVA,MSECCJNEA,#0AH,DONEMOVMSEC,#00H单片机应用系统设计实例和程序 MOVA,SEC INCA DAA;二十进制转换 MOVSEC,A CJNEA,#60H,DONE MOVSEC,#00H MOVA,MIN INCA D
35、AA MOVMIN,A CJNEA,#60H,DONE单片机应用系统设计实例和程序 MOVMIN,#00HMOVA,HOURINCADAAMOVHOUR,ACJNEA,#24H,DONEMOVHOUR,#00HDONE:POPACCPOPPSW RETI 单片机应用系统设计实例和程序时间设置/闹钟定时子程序:MODIFY:ACALL KEYIN;调用键盘设置子程序 ACALL COMB ;调用合字子程序 RET键盘设置子程序: KEYIN:PUSHPSW ;保护现场 PUSH ACC SETB RS1 MOVR0,#DISP0 ;R0指向显示 MOVR7,#06H ;设置键盘输入次数 L1:
36、CLR RS1 ACALL KEYSCAN ;调用键盘扫描程序取按下键号 SETBRS1 单片机应用系统设计实例和程序 CJNEA,#0AH,L2;键入数合法性检测(是否大于9)L2: JNC L1 ;大于9,重新键入 MOVR0,A ;键号送显示缓冲区 INCR0 DJNZ R7,L1 ;6位时间输入完否?未完继续 CLR RS1 ;恢复现场 POPACC POPPSW RET单片机应用系统设计实例和程序 键盘扫描子程序:KEYSCAN: ACALLTEST ;调判按键是否按下子程序TEST JNZ REMOV ;有键按下调消抖延时 ACALLDISPLAY ACALLALARM AJMPK
37、EYSCAN ;无键按下继续判是否按键 REMOV: ACALL DISPLAY ;调用显示子程序延时消抖 ACALLTEST ;再判是否有键按下 JNZ LIST ;有键按下转逐列扫描 ACALLDISPLAY ACALL ALARM AJMPKEYSCAN ;无键按下继续判是否按键 LIST: MOVR2,#0FEH ;首列扫描字送R2 MOVR3,#00H ;首列键号送R3单片机应用系统设计实例和程序 LINE0: MOVDPTR,#PORTA ;DPTR指针指向 ; 8155的A口 MOV A,R2 ;首列扫描字送R2 MOVX DPTR,A ;首列扫描字送8155的A口 MOV DP
38、TR,#PORTC ;DPTR指针指向8155的C口 MOVX A,DPTR ;读入C口的行状态 ,LINE1 ;第0行键无键按下,转第1行 MOVA,#00H ;第0行有键按下,行首键号送A AJMPTRYK ;求键号LINE1: ,LINE2 ;第1行键无键按下,转第2行 MOV A, #04H ;第1行有键按下,行首键号送A AJMPTRYK ;求键号LINE2: ,NEXT ;第2行键无键按下,转下一列 MOV A,#08H ;第2行有键按下,行首键号送A单片机应用系统设计实例和程序 AJMPTRYK ;求键号NEXT: INCR3 ;扫描下一列 MOV A,R2 ;列扫描字送A,EX
39、IT ;4列扫描完,重新进行下一轮扫描 RL A ;4列未扫描完,扫描字左移扫描下一列 MOV R2,A ;扫描字送A AJMP LINE0 ;转向扫描下一列 EXIT: AJMP KEYSCAN ;等待下一次按键TRYK: ADDA, R3 ;按公式计算键码,求得键号 PUSH ACC ;键号入栈保护LETK: ACALLTEST ;等待按键释放 JNZ LETK ;按键未释放,继续等待 POP ACC ;按键释放,键号出栈 RET单片机应用系统设计实例和程序TEST: MOVDPTR,#PORTA ;DPTR指针指向8155的A口 MOV A,#00H MOVX DPTR,A ;全扫描字0
40、0H送8155的A口 MOVDPTR,#PORTC ;DPTR指针指向8155的C口 MOVXA,DPTR ;读入C口行状态 CPL A ;A取反,以高电平表示有键按下 ANL A,#07H ;屏蔽高5位 RET单片机应用系统设计实例和程序 显示子程序:DISPLAY:JB F0,DISP ;允许时间显示标志F0=1转DISP ACALL SEPA ;否则调用SEPA刷新显示缓冲区 DISP:PUSHPSW ;动态扫描显示子程序 PUSH ACC SETB RS0 MOV DPTR,#PORTA ;关显示 MOV A,#0FFH MOVX DPTR,A MOV R0,#DISP0 MOV R7,#00H MOV R6,#06H MOV R5,#0FEHDI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026高中化学教资面试答辩经典例题含解析
- 2026初中物理教资面试试讲高频题含解析
- 井下采煤工岗后能力考核试卷含答案
- 假山工安全生产能力考核试卷含答案
- 考古勘探工风险评估强化考核试卷含答案
- 无机化学反应生产工班组安全能力考核试卷含答案
- 酶制剂制备工岗前情绪管理考核试卷含答案
- 宝剑工操作评估评优考核试卷含答案
- 年产200万套汽车车灯配件扩建建设项目可行性研究报告模板-备案审批
- 三年级上册语文园地知识点
- 江苏南京市七校联合体2026-2027学年第一学期10月联合调研试题高三化学试题(含答案)
- 2026危险化学品行业安全隐患排查对标手册
- Unit4 A better me Speed up教学课件2026-2027外研版五上英语
- 2026语文新教材 六年级上册第3课 古诗词三首 教学课件
- 河南农商行审计考试试题及答案
- 启发式教学思想和其案例解读培训课件
- 2026年上海市公务员录用考试《行测》《申论》试题+完整解析
- 2025年南宁市社区工作者招聘考试《综合能力》真题及答案
- 第二章新民主主义革命理论(版)
- 局密码电报管理工作制度
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
评论
0/150
提交评论