ImageVerifierCode 换一换
格式:PPT , 页数:110 ,大小:2.02MB ,
资源ID:2437731      下载积分:20 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2437731.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(xnm[理学]附录A--一个单片机应用项目.ppt)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

xnm[理学]附录A--一个单片机应用项目.ppt

1、单片机单片机原理与应用原理与应用附录附录A 一个单片机的应用项目一个单片机的应用项目 自动打铃机的设计自动打铃机的设计 A.1项目任务项目任务A.2硬件设计硬件设计A.3软件设计软件设计A.4项目实验项目实验A.5项目仿真项目仿真END1单片机单片机原理与应用原理与应用A.1 项目任务项目任务A.1.0设计要求设计要求A.1.1基本要求基本要求A.1.2强化要求强化要求2单片机单片机原理与应用原理与应用A.1.0设计要求设计要求项目的任务是利用单片机作为核心控制电路,设计一项目的任务是利用单片机作为核心控制电路,设计一个自动打铃机。基本要求如下:个自动打铃机。基本要求如下:(1)要求所设计的单

2、片机自动打铃机具有准确的计时功)要求所设计的单片机自动打铃机具有准确的计时功能,能够像电子钟一样按时、分、秒格式显示实时时间。能,能够像电子钟一样按时、分、秒格式显示实时时间。(2)能根据用户要求的时间点自动按时打铃,该项目以)能根据用户要求的时间点自动按时打铃,该项目以大学的自动打铃控制为例,除要求自动打铃外,还要求大学的自动打铃控制为例,除要求自动打铃外,还要求能自动播放音乐和早操、课间操节目。具体控制时间如作能自动播放音乐和早操、课间操节目。具体控制时间如作息时间表所示(见表息时间表所示(见表A.1)。)。(3)设置两个时间调校(校时和校分)按键,分别用来设置两个时间调校(校时和校分)按

3、键,分别用来调校时和分,以保证自动打铃机的时间与标准时间相符。调校时和分,以保证自动打铃机的时间与标准时间相符。3单片机单片机原理与应用原理与应用表表A.1A.1 大学作息时间表大学作息时间表 4单片机单片机原理与应用原理与应用A.1.1基本要求基本要求如果读者只是把这个项目作为单如果读者只是把这个项目作为单片机课程的综合实训的话,只要求能片机课程的综合实训的话,只要求能在单片机开发装置(或单片机实验箱)在单片机开发装置(或单片机实验箱)上按设计要求成功完成实验则可。对上按设计要求成功完成实验则可。对于没有单片机开发设备的读者,只要于没有单片机开发设备的读者,只要求能利用仿真软件(求能利用仿真

4、软件(Proteus)成功成功完成仿真即可。完成仿真即可。5单片机单片机原理与应用原理与应用A.1.2强化要求强化要求如果读者有兴趣把这个项目做成一个实际样如果读者有兴趣把这个项目做成一个实际样机的话,则要求读者在能成功完成实训或仿真调机的话,则要求读者在能成功完成实训或仿真调试的基础上,再增加电源电路、实际的驱动电路、试的基础上,再增加电源电路、实际的驱动电路、机壳等,设计出印刷电路板机壳等,设计出印刷电路板PCB,并完成并完成PBC的的制作和元器件安装,用带有制作和元器件安装,用带有FPROM且与且与MCS-51系列兼容的单片机(如系列兼容的单片机(如AT89C52)代替实验用的代替实验用

5、的单片机,并用编程器将源程序写入单片机的单片机,并用编程器将源程序写入单片机的FPROM中,与其他元件一起安装到电路板上,中,与其他元件一起安装到电路板上,配上机壳,构成独立的自动打铃机,达到可以投配上机壳,构成独立的自动打铃机,达到可以投入实际应用的目的。入实际应用的目的。6单片机单片机原理与应用原理与应用A.2 硬件设计硬件设计A.2.1总体设计总体设计A.2.2实时时钟电路设计实时时钟电路设计A.2.3显示电路设计显示电路设计A.2.4控制电路设计控制电路设计7单片机单片机原理与应用原理与应用A.2.1 总体设计总体设计首先需要利用单片机设计一个实时时钟,首先需要利用单片机设计一个实时时

6、钟,然后根据控制时间(即作息时间)建立一个然后根据控制时间(即作息时间)建立一个数据区作为控制字码表,存放在数据区作为控制字码表,存放在ROM中。在中。在此基础上,设计控制程序,在时钟每计时此基础上,设计控制程序,在时钟每计时1秒秒钟时查看一遍数据区,检查数据区中所设置钟时查看一遍数据区,检查数据区中所设置的时间是否与需要控制打铃或广播的时间点的时间是否与需要控制打铃或广播的时间点相同,若相同,则通过单片机的相同,若相同,则通过单片机的I/O端口输出端口输出控制信号。控制信号。8单片机单片机原理与应用原理与应用A.2.2实时时钟电路设计实时时钟电路设计选择通过选择通过MCS-51内部定时器内部

7、定时器T0产生中断来产生中断来实现计时。设定定时器实现计时。设定定时器T0工作在定时工作方式工作在定时工作方式1,每,每100ms(0.1s)产生一次中断,每产生一次产生一次中断,每产生一次T0中断,就利用软件将基准中断,就利用软件将基准0.1s时间计数单元进时间计数单元进行累加计数一次。当定时器行累加计数一次。当定时器T0产生产生10次中断时,次中断时,就获得了就获得了1s信号,这时秒计数单元加信号,这时秒计数单元加1,同理,同理,由软件对分计数单元和时计数单元进行时间计数,由软件对分计数单元和时计数单元进行时间计数,从而得到秒、分、时的时间值,并通过从而得到秒、分、时的时间值,并通过LED

8、数码数码管显示电路显示出来。管显示电路显示出来。9单片机单片机原理与应用原理与应用定时器初值的确定定时器初值的确定选择单片机的晶振频率为选择单片机的晶振频率为fosc=6MHz,则时钟周期为则时钟周期为1/6 s,机器周期为机器周期为2 s。所以定时器所以定时器T0工作在方式工作在方式1下产生下产生0.1s的的定时,所需的定时器初值为定时,所需的定时器初值为3CB0H,为了为了确保确保T0能准确定时能准确定时0.1s,在在T0中断服务程中断服务程序中重装定时器初值时,修正为序中重装定时器初值时,修正为3CBDH,在运行中可根据误差情况进一步调整。在运行中可根据误差情况进一步调整。10单片机单片

9、机原理与应用原理与应用A.2.3显示电路设计显示电路设计为了按时、分、秒的格式显示实时时间,为了按时、分、秒的格式显示实时时间,需要使用需要使用6只只LED数码显示管(本项目采用数码显示管(本项目采用共阴极共阴极LED数码管)。为了减少硬件开销,数码管)。为了减少硬件开销,提高系统可靠性和降低成本,选择提高系统可靠性和降低成本,选择LED数数码管的显示方式为动态扫描显示。由于驱码管的显示方式为动态扫描显示。由于驱动动LED数码管需要一个字形口和一个字位数码管需要一个字形口和一个字位口,为此,采用并行口,为此,采用并行I/O接口芯片接口芯片8155对单对单片机进行片机进行I/O口扩展。口扩展。1

10、1单片机单片机原理与应用原理与应用选择选择8155的的B口作为字形口,将口作为字形口,将B口经口经74LS07和所有和所有LED的的a、b、c、d、e、f、g、h引线相连;引线相连;8155的的A口作为字位口,口作为字位口,其中的其中的6个引脚经个引脚经74LS07分别和分别和6个个LED的的控制端控制端G相连。单片机工作时通过相连。单片机工作时通过8155的的B口输出字形码,再通过口输出字形码,再通过A口输出字位码以控口输出字位码以控制被选中的一个制被选中的一个LED点亮。当与时、分、点亮。当与时、分、秒对应的字形码轮流输出时,相应的字位秒对应的字形码轮流输出时,相应的字位码从左到右轮流选中

11、码从左到右轮流选中LED,打铃机的实时打铃机的实时时间就可以逐次在时间就可以逐次在LED上动态显示。上动态显示。12单片机单片机原理与应用原理与应用A.2.4控制电路设计控制电路设计1 1时间调校电路时间调校电路2 2输出控制电路输出控制电路3 3自动打铃机硬件接线图自动打铃机硬件接线图4 4自动打铃机硬件接线图说明自动打铃机硬件接线图说明5 5图图A.1A.1中中81558155的端口地址分析的端口地址分析13单片机单片机原理与应用原理与应用1 1时间调校电路时间调校电路选择采用外部中断请求来进行时间调校。选择采用外部中断请求来进行时间调校。将将“校时校时”按键和按键和“校分校分”按键分别接

12、到单按键分别接到单片机的(片机的(P3.3)和(和(P3.2)引脚,每当用户引脚,每当用户按下一次时间调校按键,便会产生一次外部按下一次时间调校按键,便会产生一次外部中断请求,单片机响应中断后,在中断服务中断请求,单片机响应中断后,在中断服务程序中对相应的计时单元进行加程序中对相应的计时单元进行加1。若加至。若加至超过计时基制,通过程序控制计时单元清超过计时基制,通过程序控制计时单元清0,这样只用加,这样只用加1控制就可以进行校时。控制就可以进行校时。14单片机单片机原理与应用原理与应用2输出控制电路输出控制电路选取单片机的选取单片机的P1.0引脚用于连接电铃驱动引脚用于连接电铃驱动电路,电路

13、P1.4引脚用于连接广播设备驱动电路。引脚用于连接广播设备驱动电路。在项目实验调试阶段,电铃和广播设备用发光在项目实验调试阶段,电铃和广播设备用发光二极管代替,将发光二极管的负端与输出引脚二极管代替,将发光二极管的负端与输出引脚连接,使用低电平驱动。连接,使用低电平驱动。连接连接P1.0的发光二极管(绿色)亮表示打的发光二极管(绿色)亮表示打铃,灭则表示不打铃。铃,灭则表示不打铃。连接连接P1.4的发光二极管(红色)亮表示打的发光二极管(红色)亮表示打开广播设备,灭则表示停止广播。开广播设备,灭则表示停止广播。15单片机单片机原理与应用原理与应用3 自动打铃机硬件接线图自动打铃机硬件接线图

14、图图A.1 自动打铃机硬件接线图自动打铃机硬件接线图 16单片机单片机原理与应用原理与应用4 自动打铃机硬件接线图说明自动打铃机硬件接线图说明在图在图A.1中,所用的单片机型号为中,所用的单片机型号为8031,因为采,因为采用单片机开发实验装置进行试验时,所加载的源程序用单片机开发实验装置进行试验时,所加载的源程序是存放在实验装置的是存放在实验装置的RAM存储器中的,无需用到单存储器中的,无需用到单片机的片内片机的片内ROM,所以在项目设计实验阶段只要使所以在项目设计实验阶段只要使用无用无ROM型的型的8031单片机即可。单片机即可。实验成功后,需要做成实用的打铃机时,若仍采实验成功后,需要做

15、成实用的打铃机时,若仍采用用8031,则需要给,则需要给8031扩展片外扩展片外ROM,现在由于具现在由于具有片内有片内ROM(EPROM、E2PROM或或FPEROM)的的单片机价格不高,因此,实际应用时,通常直接选用单片机价格不高,因此,实际应用时,通常直接选用与与MCS-51兼容的具有片内兼容的具有片内FPROM的单片机(如的单片机(如AT89C51、AT89C52等)。等)。17单片机单片机原理与应用原理与应用5 图图A.1中中8155的端口地址分析的端口地址分析当当IO/=1时,单片机选择时,单片机选择8155作为作为I/O口,口,8155的的端口地址为:端口地址为:8000H命令命

16、令/状态口状态口8001HA口(字位口)口(字位口)8002HB口(字形口)口(字形口)8003HC口(未使用)口(未使用)8004H定时器定时器/计数器低字节(未使用)计数器低字节(未使用)8005H定时器定时器/计数器高字节(未使用)计数器高字节(未使用)8008HFFFDH 8155重叠重叠I/O地址地址18单片机单片机原理与应用原理与应用5 图图A.1中中8155的端口地址分析的端口地址分析当当IO/=0时,单片机选择时,单片机选择8155中的中的RAM存存储器工作,储器工作,RAM的地址为:的地址为:0000H00FFH8155基本基本RAM地址地址0100H7FFFH8155重叠重

17、叠RAM地址地址在该应用项目中,只用到在该应用项目中,只用到8155其中的其中的命令命令/状态口、状态口、A口和口和B口。未使用口。未使用8155中的中的RAM存储器存储器。19单片机单片机原理与应用原理与应用A.3 软件设计软件设计A.3.1程序的总体设计程序的总体设计A.3.2程序流程图设计程序流程图设计A.3.3源程序设计源程序设计20单片机单片机原理与应用原理与应用A.3.1程序的总体设计程序的总体设计程序的总体设计主要是根据通过硬件设计所程序的总体设计主要是根据通过硬件设计所确定的硬件电路以及编程需要,进行单片机的确定的硬件电路以及编程需要,进行单片机的资源分配、引脚定义以及设计出控

18、制字、控制资源分配、引脚定义以及设计出控制字、控制码等。包括如下内容:码等。包括如下内容:1 1设计时间控制字设计时间控制字2 2ROMROM资源分配资源分配3 3RAMRAM资源分配资源分配21单片机单片机原理与应用原理与应用1 1设计时间控制字设计时间控制字为了能在控制程序中识别出应在何时进行何种控制,为了能在控制程序中识别出应在何时进行何种控制,时间控制字可采用如图时间控制字可采用如图A.2所示的格式。所示的格式。图图A.2时间控制字的格式时间控制字的格式每个控制字的字长为每个控制字的字长为4个字节,以每两个控制字为一个字节,以每两个控制字为一组,每组需要占用组,每组需要占用8个个ROM

19、存储单元。控制字中的时、分、存储单元。控制字中的时、分、秒为需要做出控制(启动或关闭装置)的时间点,控制码秒为需要做出控制(启动或关闭装置)的时间点,控制码则用于指示该做何种控制。则用于指示该做何种控制。22单片机单片机原理与应用原理与应用由于在硬件设计时,选取单片机的由于在硬件设计时,选取单片机的P1.0用作电用作电铃的开启和关闭,铃的开启和关闭,P1.4用作广播的开启和关闭,用作广播的开启和关闭,电铃和广播用发光二极管代替,而且使用低电平电铃和广播用发光二极管代替,而且使用低电平驱动,所以只要从驱动,所以只要从P1.0引脚输出低电平引脚输出低电平0,就可以,就可以开启电铃;输出高电平开启电

20、铃;输出高电平1,就可以关闭电铃。,就可以关闭电铃。于是启动电铃和关闭电铃的控制码可以分别设于是启动电铃和关闭电铃的控制码可以分别设计为计为FEH(11111110B)和和FFH(11111111B)。)。同理,启动广播设备和关闭广播设备的控制码可同理,启动广播设备和关闭广播设备的控制码可以分别设计为以分别设计为EFH(11101111B)和和FFH(11111111B),),如表如表A.2所示。所示。控制码的设计控制码的设计23单片机单片机原理与应用原理与应用表表A.2A.2控制码的定义及其功能控制码的定义及其功能 24单片机单片机原理与应用原理与应用根据作息时间表(见表根据作息时间表(见表

21、A.1)的具体控制时间,的具体控制时间,按图按图A.2的格式和表的格式和表A.2的定义,编出所有的控制字,的定义,编出所有的控制字,并依照控制时间的先后为顺序依次存入并依照控制时间的先后为顺序依次存入ROM的数据的数据区中,构成由控制字组成的控制字码表,控制码为区中,构成由控制字组成的控制字码表,控制码为00H时,表示数据区的结束。时,表示数据区的结束。时间控制字的设计时间控制字的设计例如:例如:“6:20起起床,启动电铃持续响铃床,启动电铃持续响铃15秒秒”的时间控制字为:的时间控制字为:FE062000 FF06201525单片机单片机原理与应用原理与应用2 2ROMROM资源分配资源分配

22、由于单片机初始或复位时,程序计数器由于单片机初始或复位时,程序计数器PC的内的内容为容为0000H,所以所以ROM的的0000H应作为主程序的入应作为主程序的入口地址。又由于项目中需用到外部中断口地址。又由于项目中需用到外部中断0、外部中断、外部中断1和和T0中断,因此,需要将中断,因此,需要将ROM的的0003H、0013H和和000BH留作相应的中断入口。留作相应的中断入口。为此,主程序安排跳转到为此,主程序安排跳转到ROM的的0050H以后的单以后的单元。数据区的入口地址,可以在整个程序编写完成,元。数据区的入口地址,可以在整个程序编写完成,并进行汇编后,再视已经占用多少并进行汇编后,再

23、视已经占用多少ROM单元而定。单元而定。对于本应用项目,估计不含数据区的程序空间小于对于本应用项目,估计不含数据区的程序空间小于1000H,因此,将数据区的起始地址设定为因此,将数据区的起始地址设定为1010H。如若不然,再根据实际情况加以调整。如若不然,再根据实际情况加以调整。26单片机单片机原理与应用原理与应用2 2ROMROM资源分配资源分配对于本应用项目,估计不含数据区对于本应用项目,估计不含数据区的程序空间小于的程序空间小于1000H,因此,将数据因此,将数据区的起始地址设定为区的起始地址设定为1010H。如若不然,如若不然,再根据实际情况加以调整。按照表再根据实际情况加以调整。按照

24、表A.1及及表表A.2编写出的数据表以及数据区在编写出的数据表以及数据区在ROM中所分配的地址如表中所分配的地址如表A.3所示。所示。27单片机单片机原理与应用原理与应用表表A.3A.3时间控制字数据区时间控制字数据区 28单片机单片机原理与应用原理与应用表表A.3A.3时间控制字数据区(续)时间控制字数据区(续)29单片机单片机原理与应用原理与应用3 3RAMRAM资源分配资源分配程序中所用到的单片机片内程序中所用到的单片机片内RAM数据存储单数据存储单元分配如下。元分配如下。26H:0.1s计数单元计数单元27H:秒计数单元秒计数单元28H:分计数单元分计数单元29H:时计数单元时计数单元

25、2AH:计时单元指针初值计时单元指针初值2BH:存放秒计数基制存放秒计数基制2CH:存放分计数基制存放分计数基制 2DH:存放时计数基制存放时计数基制2EH:数据区地址暂存单元数据区地址暂存单元3AH:控制码存储单元控制码存储单元3BH、3CH:数据暂存单元数据暂存单元4AH4FH:显示缓冲区显示缓冲区5AH:堆栈栈底堆栈栈底30单片机单片机原理与应用原理与应用A.3.2程序流程图设计程序流程图设计1 1主程序流程图主程序流程图2 2中断服务程序流程图中断服务程序流程图3 3显示子程序流程图显示子程序流程图4 4T0T0中断服务程序流程图中断服务程序流程图5 5控制子程序流程图控制子程序流程图

26、31单片机单片机原理与应用原理与应用1 1主程序流程图主程序流程图图图A.3主程序流程图主程序流程图32单片机单片机原理与应用原理与应用主程序中主要完成的初始化工作主程序中主要完成的初始化工作(1)8155初始化:初始化:主要是向主要是向8155写入命令字,写入命令字,将将8155的的A口、口、B口的工作方式设置为基本口的工作方式设置为基本I/O口,口,并将它们均设置为输出,因此,需要写入并将它们均设置为输出,因此,需要写入8155的命令字为的命令字为03H。(2)设置堆栈指针设置堆栈指针:单片机堆栈指针的初始值:单片机堆栈指针的初始值为为07H,如果不作改变,堆栈将占用第如果不作改变,堆栈将

27、占用第1组工作组工作寄存器的区域,为了方便编程时使用该组工作寄寄存器的区域,为了方便编程时使用该组工作寄存器,并且避免与位寻址区和已经分配了的存器,并且避免与位寻址区和已经分配了的RAM单元冲突,决定将堆栈指针初始值设为单元冲突,决定将堆栈指针初始值设为5AH。33单片机单片机原理与应用原理与应用(3)设置定时器工作方式)设置定时器工作方式:在实时时钟设计:在实时时钟设计时,已选定定时器时,已选定定时器T0为工作方式为工作方式1,所以应写,所以应写入定时器工作方式寄存器入定时器工作方式寄存器TMOD的控制字为的控制字为01H。(4)设置定时器初值及启动定时器设置定时器初值及启动定时器:根据前:

28、根据前面的分析,定时器初值为面的分析,定时器初值为3CB0H。在主程序在主程序中只要将中只要将3CH送入送入TH0,B0H送入送入TL0则可。则可。送完定时初值后,只要令定时器控制寄存器送完定时初值后,只要令定时器控制寄存器TCON中的中的TR0位为位为1,便可以启动,便可以启动T0工作。工作。主程序中主要完成的初始化工作主程序中主要完成的初始化工作34单片机单片机原理与应用原理与应用(5)设置中断允许方式:)设置中断允许方式:在本项目中用到在本项目中用到T0中断和中断和、这两个外部中断,为了这两个外部中断,为了开放它们,应向中断允许控制寄存器写入的控开放它们,应向中断允许控制寄存器写入的控制

29、字为制字为87H。、用于通过用于通过“校时校时”按键和按键和“校分校分”按键进行时间调校,因此,中断方式应按键进行时间调校,因此,中断方式应选择为电平触发方式。由于位于中断标志寄存选择为电平触发方式。由于位于中断标志寄存器器TCON中的中断触发方式控制位的缺省值为中的中断触发方式控制位的缺省值为0,即已选择为电平触发方式,所以无需改变,即已选择为电平触发方式,所以无需改变TCON的内容。的内容。主程序中主要完成的初始化工作主程序中主要完成的初始化工作35单片机单片机原理与应用原理与应用、图图A.4 A.4 、中断服务程序流程图中断服务程序流程图2 2 中断服务程序流程图中断服务程序流程图36单

30、片机单片机原理与应用原理与应用设计中断服务程序的注意事项:设计中断服务程序的注意事项:(1)由于)由于 、的中断入口地的中断入口地址分别为址分别为0003H和和0013H,它们之间的它们之间的空间无法放下相应的中断服务程序,所空间无法放下相应的中断服务程序,所以编程时需要在上述地址安排长转移指以编程时需要在上述地址安排长转移指令跳转到各自的中断服务程序实际存放令跳转到各自的中断服务程序实际存放地址。地址。37单片机单片机原理与应用原理与应用(2)进入中断服务程序后,首先需要关中断,)进入中断服务程序后,首先需要关中断,目的是保证用户每按一次时间调校按键,相应目的是保证用户每按一次时间调校按键,

31、相应计时单元的计时值只递增一次而不是多次。这计时单元的计时值只递增一次而不是多次。这是因为是因为、这两个外部中断的中这两个外部中断的中断方式选择为电平触发方式,在此方式下,断方式选择为电平触发方式,在此方式下,CPU响应中断后,如果外部中断源不能及时撤响应中断后,如果外部中断源不能及时撤除它在除它在或或上的低电平,就会使上的低电平,就会使相应中断标志位相应中断标志位IE0或或IE1保持为保持为1,从而导致,从而导致CPU错误地重复响应中断,因此,进入中断服错误地重复响应中断,因此,进入中断服务程序时,需要先暂时关闭中断。务程序时,需要先暂时关闭中断。设计中断服务程序的注意事项:设计中断服务程序

32、的注意事项:38单片机单片机原理与应用原理与应用(3)消除按键抖动的目的是为了准确识别)消除按键抖动的目的是为了准确识别用户的按键动作,确认用户按下并释放按键用户的按键动作,确认用户按下并释放按键后,才算是一次按键动作,如果用户按住按后,才算是一次按键动作,如果用户按住按键不放,就一直等待。由于键不放,就一直等待。由于“校时校时”和和“校校分分”按键是与单片机的按键是与单片机的P3.3和和P3.2引脚连接引脚连接的,所以编程时,可使用如下指令实现等待的,所以编程时,可使用如下指令实现等待按键释放:按键释放:JNBP3.3,$或或JNB P3.2,$设计中断服务程序的注意事项:设计中断服务程序的

33、注意事项:39单片机单片机原理与应用原理与应用(4)程序在完成对相应计时单元进行加)程序在完成对相应计时单元进行加1或加或加至超过计时基制对相应的计时单元清至超过计时基制对相应的计时单元清0的工作的工作后,及时调用显示子程序的目的是使用户能即后,及时调用显示子程序的目的是使用户能即时看到校时的结果。时看到校时的结果。(5)程序在中断返回前开中断是为了把进入)程序在中断返回前开中断是为了把进入中断服务程序时,关中断了的中断服务程序时,关中断了的或或中中断重新打开,为响应用户下一次的时间调校做断重新打开,为响应用户下一次的时间调校做准备。准备。设计中断服务程序的注意事项:设计中断服务程序的注意事项

34、40单片机单片机原理与应用原理与应用3显示子程序流程图显示子程序流程图 图图A.5 显示子程序流程图显示子程序流程图41单片机单片机原理与应用原理与应用设计显示子程序需要考虑的问题设计显示子程序需要考虑的问题(1)需要显示的实时时间数值,存放)需要显示的实时时间数值,存放在在29H(时计数单元)、时计数单元)、28H(分计数单元)分计数单元)和和27H(秒计数单元)秒计数单元)3个计时单元中,每个计时单元中,每个计时单元为两个个计时单元为两个BCD数。为了便于显示数。为了便于显示时读取这些数据,显示子程序首先需要将时读取这些数据,显示子程序首先需要将3个计时单元中的个计时单元中的BCD数逐一

35、分开,并按时、数逐一分开,并按时、分、秒的顺序分别存入分、秒的顺序分别存入4AH4FH共共6个单个单元中的显示缓冲区中。元中的显示缓冲区中。42单片机单片机原理与应用原理与应用(2)本项目使用共阴极)本项目使用共阴极LED数数码管,为了将待显示的时间值转换码管,为了将待显示的时间值转换为相应的字形码,需要事先在为相应的字形码,需要事先在ROM中建立好一个共阴中建立好一个共阴LED字形码表。字形码表。从显示缓冲区读出的待显示数据通从显示缓冲区读出的待显示数据通过查表指令转换成字形码。过查表指令转换成字形码。设计显示子程序需要考虑的问题设计显示子程序需要考虑的问题43单片机单片机原理与应用原理与应

36、用(3)采用动态显示方式。显示一遍时、分、)采用动态显示方式。显示一遍时、分、秒的过程是:按秒的过程是:按4AH4FH的顺序逐一读出显的顺序逐一读出显示缓冲区中的数据,转换成字形码后,逐个从示缓冲区中的数据,转换成字形码后,逐个从8155的字形口(的字形口(B口)送至口)送至LED的字形码输入的字形码输入脚,每送出一个字形码便从脚,每送出一个字形码便从8155的字位口(的字位口(A口)送出相应的字位码,于是被字位码选中的口)送出相应的字位码,于是被字位码选中的LED就会显示出相应的字形。字位码设计成从就会显示出相应的字形。字位码设计成从左到右轮流选中左到右轮流选中LED数码管,这样便可以将时、

37、数码管,这样便可以将时、分、秒从左到右显示在分、秒从左到右显示在6个个LED数码管上。每数码管上。每个的显示控制过程相同,因此,在程序中采用个的显示控制过程相同,因此,在程序中采用循环结构来编程。循环结构来编程。设计显示子程序需要考虑的问题设计显示子程序需要考虑的问题44单片机单片机原理与应用原理与应用(4)由于各个)由于各个LED数码管是逐位轮数码管是逐位轮流点亮的,如果轮流点亮的过程太快,流点亮的,如果轮流点亮的过程太快,人眼无法看清。所以每点亮一个人眼无法看清。所以每点亮一个LED数数码管,都需要适当延时一小段时间才行,码管,都需要适当延时一小段时间才行,程序中选择的延时时间为程序中选择

38、的延时时间为1ms。设计显示子程序需要考虑的问题设计显示子程序需要考虑的问题45单片机单片机原理与应用原理与应用(5)考虑到考虑到6个个LED的字形码输入脚的字形码输入脚是一一对应并接在一起的,所以当第是一一对应并接在一起的,所以当第1个个LED显示完后,在送第二个字形码但尚显示完后,在送第二个字形码但尚未送出第二个字位码时,会导致该字形未送出第二个字位码时,会导致该字形码在第码在第1个个LED上显示。为了避免发生这上显示。为了避免发生这种现象,保证显示的准确性,在每个种现象,保证显示的准确性,在每个LED显示之前都进行显示之前都进行“关显示关显示”操作。操作。设计显示子程序需要考虑的问题设计

39、显示子程序需要考虑的问题46单片机单片机原理与应用原理与应用4 4T0T0中断服务程序流程图中断服务程序流程图图图A.6 T0中断服务程序流程图中断服务程序流程图47单片机单片机原理与应用原理与应用设计设计T0中断服务程序注意事项中断服务程序注意事项(1)进入)进入T0中断服务程序时必须首先进行现场保护,中断服务程序时必须首先进行现场保护,对主程序中的累加器和有关的工作寄存器的内容加以保对主程序中的累加器和有关的工作寄存器的内容加以保护,在中断返回时,再予以恢复。护,在中断返回时,再予以恢复。(2)由于)由于T0中断服务程序是因为中断服务程序是因为T0产生计数溢出才产生计数溢出才执行的,因此,

40、为了保证执行的,因此,为了保证T0能不断产生能不断产生0.1S基准时间基准时间信号,每次进入信号,每次进入T0中断服务程序时,都要重装中断服务程序时,都要重装T0的定的定时初值,而且这时重装的应是修正过的初值,如前所述,时初值,而且这时重装的应是修正过的初值,如前所述,在本项目中,此值为在本项目中,此值为3CBDH。(3)每当计时每当计时1s,就要调用一次控制子程序,以实就要调用一次控制子程序,以实现每隔现每隔1s就通过控制子程序查看一遍由时间控制字组成就通过控制子程序查看一遍由时间控制字组成的数据区,使打铃控制误差不会超过的数据区,使打铃控制误差不会超过1s。48单片机单片机原理与应用原理与

41、应用5 5控制子程序流程图控制子程序流程图 图图A.7 控制子程序流程图控制子程序流程图控制子程控制子程序的主要功能序的主要功能是每调用一次,是每调用一次,就查看一遍存就查看一遍存放时间控制字放时间控制字的数据区,检的数据区,检查每个控制字查每个控制字所设置的时间所设置的时间是否与现行时是否与现行时间相同,若相间相同,若相同,则通过同,则通过P1口输出控制信口输出控制信号。号。49单片机单片机原理与应用原理与应用A.3.3源程序设计源程序设计起始程序起始程序主程序主程序中断服务程序中断服务程序中断服务程序中断服务程序显示子程序显示子程序T0中断服务程序中断服务程序控制子程序控制子程序字形码表字

42、形码表控制字码码表控制字码码表50单片机单片机原理与应用原理与应用起始程序起始程序;起始程序:起始程序:;编号编号指令指令注释注释1ORG0000H2LJMPMAIN;转主程序转主程序3ORG0003H4LJMPBREAK0;转转中断中断5ORG000BH6LJMPCLOCK;转定时器转定时器T0中断中断7ORG0013H8LJMPBREAK1;转转中断中断注:注:其中的编号是为了便于书中引用说明而加,其中的编号是为了便于书中引用说明而加,编译源程序时应把它们去掉。编译源程序时应把它们去掉。51单片机单片机原理与应用原理与应用主程序主程序;主程序:主程序:9ORG0050H10MAIN:MOV

43、A,#03H;8155初始化命令字初始化命令字11MOV DPTR,#8000H;8155命令口地址命令口地址12MOVXDPTR,A;向向8155写入命令字写入命令字13MOVSP,#5AH;栈底移至栈底移至5AH14MOV2BH,#60H;秒计数基制秒计数基制15MOV2CH,#60H;分计数基制分计数基制16MOV2DH,#24H;时计数基制时计数基制17MOVTMOD,#01H;定时器工作方式定时器工作方式118MOVTH0,#3CH;置置T0初值初值19MOVTL0,#0B0H20MOVIE,#87H;允许中断允许中断21SETBTR0;启动定时器启动定时器T022LOOP:LCAL

44、LDISP;调用显示子程序调用显示子程序23LJMP LOOP;循环循环52单片机单片机原理与应用原理与应用中断服务程序中断服务程序;中断服务程序中断服务程序:24BREAK0:CLREX0;关闭关闭中断中断25JNB P3.2,$;消除按键抖动消除按键抖动,等待按键释放等待按键释放26INC 28H;分单元加分单元加127MOVA,28H;十进制调整十进制调整28ADD A,#00H29DAA30MOV28H,A31SUBBA,#60H;不等于计数基制转不等于计数基制转NEXT132JCNEXT133MOV28H,#00H;相等相等,分单元清分单元清034NEXT1:LCALL DISP;调

45、用显示子程序调用显示子程序35SETB EX0;开放开放中断中断36RETI;中断返回中断返回53单片机单片机原理与应用原理与应用中断服务程序中断服务程序;中断服务程序中断服务程序:37BREAKl:CLREXl;关闭关闭中断中断38JNB P3.3,$;消除按键抖动消除按键抖动,等待按键释放等待按键释放39INC29H;时单元加时单元加140MOVA,29H;十进制调整十进制调整41ADD A,#00H42DAA43MOV29H,A44SUBBA,#24H;不等于计数基制转不等于计数基制转NEXT245JCNEXT246MOV29H,#00H;相等相等,时单元清时单元清047NEXT2:LC

46、ALL DISP;调用显示子程序调用显示子程序48SETBEXl;开放开放中断中断49RETI;中断返回中断返回54单片机单片机原理与应用原理与应用显示子程序显示子程序;显示子程序显示子程序:50DISP:MOVR0,#4FH;准备向缓冲区放数准备向缓冲区放数51MOV A,27H;取秒值取秒值52ACALLPUTT;放秒值放秒值53MOV A,28H;取分值取分值54ACALLPUTT;放分值放分值55MOV A,29H;取小时值取小时值56ACALLPUTT;放小时值放小时值57MOV R0,#4AH;指向显示缓冲区首地址指向显示缓冲区首地址58MOV R2,#0DFH;从左边第一位开始显

47、示从左边第一位开始显示59DISP1:MOVDPTR,#8002H;字形口地址字形口地址60MOV A,#00H;熄灭码熄灭码61MOVXDPTR,A;关显示关显示55单片机单片机原理与应用原理与应用显示子程序显示子程序60MOV A,#00H;熄灭码熄灭码61MOVXDPTR,A;关显示关显示62MOV A,R0;取显示缓冲区中的数取显示缓冲区中的数63MOV DPTR,#SEGTAB;指向字形码表首指向字形码表首64MOVCA,A+DPTR;查表查表,找字形码找字形码65MOV DPTR,#8002H;字形口地址字形口地址66MOVXDPTR,A;送出字形码送出字形码67MOV A,R2;

48、取字位码取字位码68MOV DPTR,#8001H;字位口地址字位口地址69MOVXDPTR,A;显示一位数字显示一位数字70MOV R3,#00H;计数延时初值计数延时初值71DISP2:DJNZR3,DISP2;延时一段时间(延时一段时间(1ms)56单片机单片机原理与应用原理与应用显示子程序显示子程序71DISP2:DJNZR3,DISP2;延时一段时间(延时一段时间(1ms)72INCR0;修改显示缓冲区指针修改显示缓冲区指针73RRA;为显示下一位做准备为显示下一位做准备74MOV R2,A;存字位码存字位码75JBACC.7,DISPl;不到最后一位不到最后一位,则继续则继续76R

49、ET;显示完显示完6位位,返回返回77PUTT:MOVRl,A;暂存暂存78ACALLPUTTl;低低4位先放入缓冲区位先放入缓冲区79MOV A,R1;取出原数取出原数80SWAPA;高高4位放入低位放入低4位中位中81PUTT1:ANLA,#0FH;屏蔽高屏蔽高4位位82MOV R0,A;放进显示缓冲区放进显示缓冲区83DECR0;缓冲区地址指针减缓冲区地址指针减184RET57单片机单片机原理与应用原理与应用T0中断服务程序中断服务程序;T0中断服务程序中断服务程序:85CLOCK:PUSHPSW;保护现场保护现场86PUSHACC87SETBRS0;选择工作寄存器组选择工作寄存器组18

50、8MOVTH0,#3CH;重装定时器重装定时器T0初值初值89MOVTL0,#0BDH90INC 26H;0.1s单元加单元加191MOVA,26H;取取0.1s单元内容单元内容92CJNEA,#0AH,DONE1;不等于不等于10,转转DONE193MOV26H,#00H;等于等于10,则清则清094MOVR0,#27H;指向秒计数单元指向秒计数单元95MOV R1,#2BH;指向秒计数基制单元指向秒计数基制单元96MOVR3,#03H;循环循环3次次(秒、分、时秒、分、时)97CLOCK1:MOVA,R0;取计时单元的值取计时单元的值58单片机单片机原理与应用原理与应用T0中断服务程序中断

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服