预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

真诚为您提供优质参考资料,若有不当之处,请指正。 西南科技大学 实验报告 课程名称:单片机原理及应用A 实验名称:中断、定时器/计数器实验 姓名: 学号: 班级:生医1401 指导教师:雷华军 西南科技大学信息工程学院制 1/10 真诚为您提供优质参考资料,若有不当之处,请指正。 实验题目 数码管动态扫描显示驱动、键盘动态扫描驱动 一、实验目的 1、熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操 作,会使用HEX文件进行单片机的仿真。 2、了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和 计数,利用定时器进行延时等。 3、进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将0~1000的数字进行显示。 4、掌握利用单片机产生矩形方脉冲的相关原理。 二、实验原理 1、定时器结构和原理 图① 上图①为定时器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。 2/10 真诚为您提供优质参考资料,若有不当之处,请指正。 3、定时器间隔1ms产生一个脉冲 利用单片机1P3.0口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低 电平变换。就可以实现一个占空比为50%的矩形脉冲输出。对于定时器的定时功能实现,需要 进行定时器模式选择,定时器初值设定。 4、利用中断进行脉冲的计数 将单片机1P3.0口输出的脉冲连接到单片机2的中断INT0口P3.2,通过脉冲的高低电 平变换触发中断0,进行脉冲个数的计数。 三、实验步骤 (一)实验详细步骤 1、启动KEIL建立一个空白工程,然后命名文件。 2、新建源程序文件,输入程序代码并保存,然后进行综合编译。若在编译过程中发现错误, 则找出并更正错误,直至编译成功为止。 3、通过设置生成HEX文件,保存。 4、启动Protues建立一个空白工程,然后命名文件 5、进行电路的原理图连接并输入HEX文件进行仿真。 (二)实验仿真原理图 图②图③ 如图②为单片机1的脉冲产生系统,通过定时的定时控制,让P3.0口输出脉宽为1ms的方脉冲, 对于定时器程序的初始化。TMOD=(TMOD&0XF0)|0X00;//定时器模式0的选择 s=8192-11059.2/12;TH0=s/32;TL0=s%32;//定时器的初值的设定 如图③为单片机2的电路连接原理,单片机②通过接受单片机1的方脉冲信号触发中断进行计数, 没来一个脉冲记一次数,再通过数码管显示出来。 3/10 真诚为您提供优质参考资料,若有不当之处,请指正。 四、实验结果及分析 图④ 通过按下按键开始进行脉冲的产生和计数,如图④左边为单片机1产生脉冲并通过数码管显示脉冲产 生数,右边为单片机2接受脉冲同时也通过数码管显示脉冲接受数字。当按下按键时开始产生并传送脉冲, 通过一个VSMcountertimer进行计数验证的准确与否。 按下按键后发现两个多位数码管同时显示并跳转同样的数字,并且计数器也显示同样的数字。如图⑤ 所示。 图⑤ 最后通过示波器验证观察所产生的脉冲是否正确,通过调节示波器上的时间和幅度旋钮 可以观察到矩形方波的产生。如图⑥所示 4/10 真诚为您提供优质参考资料,若有不当之处,请指正。 图⑥ 问题一:运行电路时,数码管乱码 解决的方法:检查电路,发现程序中扫描信号端口错误,将扫描信号的端口顺序调换, 重新运行。 问题二:定时器的时间设置问题 解决的方法:检查程序,发现是是定时器的初始化设置问题,在改动后,重新编译后在次 运行电路,电路正常显示,符合要求。 通过本次实验,通过实验我切身实际的进行代码的编写以及电路的仿真连接从中发现问 题,解决问题,再而收获知识,获取经验。 五、体会 通过本次的实