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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验3 中断定时器计数器实验Word文件下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验3 中断定时器计数器实验Word文件下载.docx

1、一、实验目的1、熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操 作,会使用HEX文件进行单片机的仿真。2、了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和 计数,利用定时器进行延时等。3、进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将01000的数字进行显示。4、掌握利用单片机产生矩形方脉冲的相关原理。二、实验原理1、定时器结构和原理 图 上图 为定时器T0、T1的结构,其中振荡器经12分频后作为定时器的时钟脉冲,T为外部计数脉冲输入端,通过开关K1选择。反相器,或门,与门共同构成启/停控制信号。TH和TL为加1计数器,TF为中

2、断标志。每接收到一个脉冲,加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。3、定时器间隔1ms产生一个脉

3、冲利用单片机1 P3.0口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低电平变换。就可以实现一个占空比为50%的矩形脉冲输出。对于定时器的定时功能实现,需要进行定时器模式选择,定时器初值设定。4、利用中断进行脉冲的计数将单片机1 P3.0口输出的脉冲连接到单片机2的中断INT0口P3.2,通过脉冲的高低电平变换触发中断0,进行脉冲个数的计数。 三、实验步骤(一)实验详细步骤1、启动KEIL建立一个空白工程,然后命名文件。2、新建源程序文件,输入程序代码并保存,然后进行综合编译。若在编译过程中发现错误, 则找出并更正错误,直至编译成功为止。3、通过设置生成HEX文件,保存。4、启动

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的方脉冲信号触发中断进行计数,没来一个脉冲记一次数,再通过数码管显示出来。四、实验结果及分析图通过按下按键开始进行脉冲的产生和计数

5、,如图左边为单片机1产生脉冲并通过数码管显示脉冲产生数,右边为单片机2接受脉冲同时也通过数码管显示脉冲接受数字。当按下按键时开始产生并传送脉冲,通过一个VSM counter timer进行计数验证的准确与否。按下按键后发现两个多位数码管同时显示并跳转同样的数字,并且计数器也显示同样的数字。如图所示。 图最后通过示波器验证观察所产生的脉冲是否正确,通过调节示波器上的时间和幅度旋钮可以观察到矩形方波的产生。如图所示图问题一:运行电路时,数码管乱码解决的方法:检查电路,发现程序中扫描信号端口错误,将扫描信号的端口顺序调换,重新运行。问题二:定时器的时间设置问题检查程序,发现是是定时器的初始化设置问

6、题,在改动后,重新编译后在次运行电路,电路正常显示,符合要求。通过本次实验,通过实验我切身实际的进行代码的编写以及电路的仿真连接从中发现问题,解决问题,再而收获知识,获取经验。五、体会通过本次的实验,在前三个实验的基础上让我复习了知识点,也让我在次掌握了新的知识。在完成这次实验后,让我更加熟悉数码管的显示功能代码的实现。并且还学会了定时器中断的运用,学会了用更加精确的方式去进行定时延时操作。我觉得这次的课程实验让我知道,一次次的失败,并不会让我放弃去追求,相反它会引领着我去发现问题,从而解决问题,完成更深入的探索。也让我明白理论知识的重要性,并且与实际相结合,多动手,在实践中成长。所以我会很重

7、视每一次的实验。我坚信:每次实验都会给我自身很大帮助。慢慢的积累点滴的知识,到最后就会多的。六、附录1、单片机1脉冲产生代码#includeunsigned char code ET10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned int AT,s;unsigned int a,b,c,d;void delay(int counter) int i,j; for(i = 0;i 10;i+) for(j =0;j 10) count = 0; P30=P30; /高低电平取反 if(P30 = 0) AT+; if(AT

8、 9999) AT = 0; void main () TMOD = (TMOD& /模式0选择 /初值设定 TR0 = 0; ET0 = 1; IT0 = 1; EX0 = 1; EA = 1; /定时器的初始化 while (1) if(AT a=AT; P2 = 0xff; /消除鬼影 P1 = 0xf7; P2 = ETa; else if(AT100) a=AT%10; P2 = 0xff; P1 = 0xf7; P2 = ETa; delay(2); b=AT/10; P1 = 0xfb; P2 = ETb; 1000) a=AT%100%10; b=AT%100/10; c=AT/100; P1 = 0xfd; P2 = ETc;10000) a=AT%1000%100%10; b=AT%1000%100/10; c=AT%1000/100; d=AT/1000; P1 = 0xfe; P2 = ETd; / 数码管进行数字显示部分 2、单片机2接受脉冲代码unsigned int AT;void anjian(void) interrupt 0 /中断函数,触发一次计数一次 AT+; /中断0初始化

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1