单片机实验3中断、定时器计数器实验解决方案.doc

单片机实验3中断、定时器计数器实验解决方案.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  PAGE 2 西南科技大学 实验报告 课程名称: 单片机原理及应用A 实验名称: 中断、定时器/计数器实验 姓 名: 学 号: 班 级: 生医1401 指导教师: 雷华军 西南科技大学信息工程学院制 PAGE  PAGE 10 实验题目 数码管动态扫描显示驱动、键盘动态扫描驱动 实验目的 熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操 作,会使用HEX文件进行单片机的仿真。 了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和 计数,利用定时器进行延时等。 进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将0~1000的数字进行显示。 掌握利??单片机产生矩形方脉冲的相关原理。 实验原理 定时器结构和原理 图 ① 上图 ① 为定时器T0、T1的结构,其中振荡器经12分频后作为定时器的时钟脉冲,T为外部计数脉冲输入端,通过开关K1选择。反相器,或门,与门共同构成启/停控制信号。TH和TL为加1计数器,TF为中断标志。每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON。 2、定时器工作方式? 定时器共有四种工作方式分别为方式0——方式3。? 方式0:13位计数器,最大计数值为213个脉冲。? 方式1:16位计数器,最大计数值为216个脉冲。? 方式2:8位自动重装计数器。该方式下,TL进行计数工作,TH用于存放计数初值,当产生 溢出中断请求时会自动将TH中的初值重新装入TL,以使计数器继续工作。? 方式3:仅限于T0计数器,在方式3下,T0计数器被分成两个独立的8为计数器TL0和TH0。 定时器间隔1ms产生一个脉冲 利用单片机1 P3.0口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低电平变换。就可以实现一个占空比为50%的矩形脉冲输出。对于定时器的定时功能实现,需要进行定时器模式选择,定时器初值设定。 利用中断进行脉冲的计数 将单片机1 P3.0口输出的脉冲连接到单片机2的中断INT0口P3.2,通过脉冲的高低电平变换触发中断0,进行脉冲个数的计数。 实验步骤 (一)实验详细步骤 1、启动KEIL建立一个空白工程,然后命名文件。? 2、新建源程序文件,输入程序代码并保存,然后进行综合编译。若在编译过程中发现错误, 则找出并更正错误,直至编译成功为止。? 3、通过设置生成HEX文件,保存。? 4、启动Protues建立一个空白工程,然后命名文件 5、进行电路的原理图连接并输入HEX文件进行仿真。 (二)实验仿真原理图 图 ② 图③ 如图 ② 为单片机1的脉冲产生系统,通过定时的定时控制,让P3.0口输出脉宽为1ms的方脉冲, 对于定时器程序的初始化。TMOD = (TMOD0XF0)|0X00; // 定时器模式0的选择 s = 8192-11059.2/12;TH0 = s/32;TL0 = s%32; // 定时器的初值的设定 如图 ③ 为单片机2的电路连接原理,单片机②通过接受单片机1的方脉冲信号触发中断进行计数,没来一个脉冲记一次数,再通过数码管显示出来。 实验结果及分析 图④ 通过按下按键开始进行脉冲的产生和计数,如图④左边为单片机1产生脉冲并通过数码管显示脉冲产生数,右边为单片机2接受脉冲同时也通过数码管显示脉冲接受数字。当按下按键时开始产生并传送脉冲,通过一个VSM counter timer进行计数验证的准确与否。 按下按键后发现两个多位数码管同时显示并跳转同样的数字,并且计数器也显示同样的数字。如图⑤所示。 图⑤ 最后通过示波器验证观察所产生的脉冲是否正确,通过调节示波器上的时间和幅度旋钮可以观察到矩形方波的产生。如图⑥所示 图⑥ 问题一:运行电路时,数码管乱码? 解决的方法:检查电路,发现程序中扫描信号端口错误,将扫描信号的端口顺序调换,重新运行。? 问题二:定时器的时间设置问题? 解决的方法:检查程序,发现是是定时器的初始化设置问题,在改动后,重新编译后在次运行电路,电路正常显示,符合要求。 通过本次实验,通过实验我切身实际的进行代码的编写以及电路的

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档