版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告实验目的1.学习单片机内部定时/计数器的使用和编程方法;2. 进一步掌握中断处理程序的编程方法.实验器材1. 2. 3. 4. 5.G6W仿真器一台MCS51实验板 一台PC机 一台 电 源一台信号发生器一台实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对 P3.4 (T0)引脚进行计数,使用8051的T1作定时器,50ms 中断一次,看TO内每50ms来了多少脉冲,将计数值送显(通 过LED发光二极管8421码来表示),1秒后再次测试.实验说明1.本实验中内部计数器其计数器的作用,外部事件计 数器脉冲由P3.
2、4引入定时器TOo单片机在每个机器周期采样一次输入波形, 因此单片机至少需要两个机器周期才能检测到一次跳变,这 就要求被采样电平至少维持一个完整的机器周期,以保证电 平在变化之前即被采样,同时这就决定了输入波形的频率不 lword格式支持编辑,如有帮助欢送下载支持.文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢送下载支持.能超过机器周期频率.2.计数脉冲由信号发生器输入从 TO端接入.3, 计数值通过发光二极管显示,要求:显示两位,十 位用L4L1的8421码表示,个位用L8L5的8421码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计 算出每分钟脉搏跳动次数并显
3、示实验框图见下页程序源代码 ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD, #15H MOV 20H,#14H MOV TL1,#OBOH MOV TH1, #3CHMOV TLO,#00H;T0的中断入口地址;设置T1做定时器,TO做计数 器,都于方式1工作;装入中断次数;装入计数值低8位; 装入计数值高8位MOV THO,#00HSETB TRI ;启动定时器T1 SETB TRO ;启动计数器TO SETB ET1 ;允许 T1 中断 SETB EA ;允许 CPU 中断 SJMP $; 等待中断MAI
4、N1: PUSH PSW PUSH ACC CLR TROCLR TRI MOV TL1,#OBOH MOV TH1, #3CHDJNZ 20H,RETUNT MOV 20H , #14HSHOW: MOV RO, THO MOV R1,TLOMOV A,R1 MOV B, #OAH DIV ABMOV C, ACC. 3MOV Pl. 0, C MOV C, ACC. 2 MOV Pl. 1, C MOVC, ACC. 1 MOV Pl. 2, C MOV C, ACC. 0 MOV Pl. 3, CMOV A, B MOV C, ACC. 3MOV Pl. 4, C MOV C, ACC.
5、 2 MOVPl. 5, C MOV C, ACC. 1 MOV Pl. 6, C MOV C, ACC. 0MOV Pl. 7,C ;保护现场;装入计数值低8位;装入计数值高8位,50ms;允许T1中断;未到Is,继续计时口s到重新开始;显示计数器T0的值;读计数器当前值;将计数值转为 十进制;显示局部,将A中保存的十位赋给L0L3将B中保存 的各位转移到A中;将个位的数字显示在L4L7上. 9RETUNT:MOV TLO, #00H;将计数器 TO 清零 MOV THO, #00HSETB TROSETB TRIPOP ACCPOP PSWRET I ;中断返回在频率为1000HZ时,L0
6、L7显示为50;频率为300HZ时,L(fL7显示为15,结果正确,程序可以正确运行.思 考与小结:有了前面的定时器实验做根底,定时器计数器的选择以 及初始化已经不再是难点,本次试验的重点是写入两个中断 判断程序和十六进制到十进制的转化和显示.MOV TL1, #0B0H ;装入计数值低8位MOV TH1,#3CH;装入计数值高8位,50msMOV 20H, #14H ;未到 Is,继续计时 DJNZ 20H, RETUNT; Is 到重新开始RETUNT:MOV TLO,#OOH;将计数器 TO 清零 MOV THO, #00H由于书上详细解释了设置中断时间的问题,所以中断程 序并没有什么太
7、大的难点,主要是要思考一下程序的执行顺 序问题.十六进制到十进制的转化和显示使我们这次实验遇到 的比拟大的困难,刚开始采用的是DA指令,由于没有搞清 楚它的实质错误的使用了 DAo DA用于十六进制到BCD的转 换,不能用于十六进制到8421的转换,于是我们思考了很 久.后来终于找到了比拟简单的方法用除数,十位放在A中, 个位也就是余数放在B中.MOV RO, TH0 ;读计数器当前值MOV Rl, TLOMOV A,R1 MOV B, #0AHDIV AB;将计数值转为十进制由于这次的数字比拟小而且要显示在L0L7上,所以可 以用这种方法,如果是数字比拟大的话这种方法也不奏效, 需要写一段通
8、用代码来实现.后面的问题可谓是一只强大的拦路虎,可能是根底只是 不过关的缘故,我们一直在数字的显示顺序上纠结万分,用 了左循环但是没有到达预期目的,在老师的指导之下才知道 原来可以直接位赋值.以后一些使用的知识和技巧一定要掌 握.MOV C, ACC. 3 ;显示局部,将A中保存的十位赋给L0L3 MOV Pl. 0, C MOV C, ACC. 2 MOV Pl. 1, CMOV C, ACC. 1 MOV Pl. 2, C MOV C, ACC. 0 MOV Pl. 3, CMOV A, B;将B中保存的各位转移到A中MOV C, ACC. 3 ; 将个位的数字显示在L4L7上MOV Pl
9、. 4, C MOV C, ACC. 2 MOV Pl. 5, C MOV C, ACC. 1 MOV Pl. 6, C MOV C, ACC. 0MOV Pl. 7,C篇二:51单片机定时器实验电子信息工程学系实验报告课程名称:单片机原理实验工程名称:51定时器实验 实验时间:XX-U-27班级:测控081姓名:学号:2实验目的:熟悉keil仿真软件、伟福仿真器的使用和C51定时程 序的编写.了解51单片机中定时、计数的概念,熟悉51单 片机内部定时/计数器的结构与工作原理.掌握中断方式处 理定时/计数的工作过程,掌握定时/计数器在C51中的设置 与程序的书写格式以及使用方法.实验原理:定时
10、分类及原理1 .软件定时:即让机器执行一个程序段,这段程序本身 没有具体的执行目的,只是为了磨时间.执行这段程序所需 要的时间就是延时时间.这种程序前面已设计过.这种方法 定时占用CPU执行时间,降低了 CPU利用率.此次实验使用 的是MCS-51系列单片机.2, 数字电路硬件定时:采用小规模集成电路器件如555, 外接定时部件电阻和电容构成.这样的定时电路简单,但 要改变定时范围,必须改变电阻和电容,这种定时电路在硬 件连接好以后,修改不方便.3. 可编程定时/计数器:是为方便微型计算机系统的设 计和应用而研制的,它是硬件定时,又很容易地通过软件来 确定和改变它的定时值,通过初始化编程,能够
11、满足各种不 同的定时和计数要求,因而在嵌入式系统的设计和应用中得 到广泛的应用.8051型单片机有两个十六位定时/计数器TO、T1,有四 种工作方式,跟定时/计数器相关的特殊功能存放器有这样 几个:方式限制存放器TM0DMl、M0的状态决定定时器的工作方式,定时和外部事件 计数方式选择位C/T, GATE与TRO、TR1配合决定定时/计数 器的启停.加法计数存放器THO、TH1 高八位TLO、TL1 低八 位;定时/计数到标志TFO、TF1 中断限制存放器TCON; 定时/计数器启停限制位TRO、TRI TCON;定时/计数器中断允许位ETO、ET1 中断允许存放IE; 定时/计数器中断优先级
12、限制位PTO、PT1 中断优IP.定 时/计数器的工作方式MCS-51的定时器有方式0、方式1、 方式2和方式2这3种工作方式.1.方式0当M1M0二00时,定时器工作于方式0.方式0为13位的计数器,由TLO的低5位和TH0的8 位组成,TLO低5位计数溢出时向THO进位,THO计数溢出 时 置位溢出标志TF0.假设T0工作于定时方式,设计数初值 为a,晶振频率为12MHz,那么TO从初值开始计数到溢出的定 时时间为t= 213-a XlnSo 2.方式1当M1MO=O1时,定时器工作于方式loT1工作于方式1时,由TH1作为高8位,TL1作为低8 位,构成一个十六位的计数器.假设T1工作于
13、定时方式1,计 数初值为a,晶振频率为12MHz,那么T1从计数初值计数到溢 出的定时时间为t=216-a uSo3.方式2M1MO=1O时,定时器/计数器工作于方式2,方式2为 自动恢复初值的8位计数器.TL1作为8位计数器,TH1作为计数初值存放器.t = (28a) uSo单片机内部的定时计数模块,在定时时,对工作频率的 12分频进行计数,先记入TL后记入TH,直到溢出为止,根 据TL、TH内的初值不同可以定出不同的时间;在计数工作 方式时,对TO (T1)引脚的输入脉冲进行计数,将计数值记 入TL、THo当定时/计数溢出时,会引起中断.设置适宜的计数初值,以产生期望的定时间隔.由于定
14、时/计数器在方式0、方式1和方式2时的最大计数间隔取决 于使用的晶振频率fosc,如下表所示,当需要的定时间隔较 大时,要采用适当的方法,即将定时间隔分段处理.计数初值与定时时间的关系为:T=12 X (T_all - a) /fosc定时间隔为T,计数初值为私所以有计数初值a =- TXfosc/12, THx = a / 256, TLx = a % 256.定时器均有 一个最大定时时间,对于长时间的定时需要,可以将定时间 隔为固定的较小时间,通过另设一全局变量ahi用于计数, 累加固定的较小定时时间来进行.确定定时/计数器工作于查询方式还是中断方式,假设工 作于中断方式,那么在初始化时开
15、放定时/计数器的中断及总 中断:ET0 = 1; EA = 1;还需要编写中断效劳函数:void T0_srv (void) interrupt 1 using 1TLO = a % 256; THO=a / 256;中断效劳程序段)4. 启动定时器:TRO (TR1)二lo实验设备与器件硬件:微机、WAVE单片机仿真器、单片机实验板、跳帽 假设干软件:KEIL C51单片机仿真调试软件,伟福V系列仿 真调试软件实验内容:利用实验板上的一位LED数码管做显示,利用中断法编 写定时程序,限制单片机定时器进行定时,所定时间为1S. 刚开始LED数码管显示0,每过1S数码管的显示值增加1, 当显示到
16、59时返回0,依此反复.实验的程序代码如下:#includevoid mDelay (unsigned int Delay) (unsigned int b; for(;Delay0;Delay-) for(b=0;b int i, j, k, a; i二T; j=0; k=0;unsignedcharcodetab10 = 0xc0, 0xf9, 0xa4, OxbO, 0x99, 0x92, 0x82, 0xf8, Ox 80, 0x90) ; void main() TMOD=0x01;a二-0.1*6*1000000/12; TH0=a/256; TL0=a%256;EA=1; ET0
17、二1; TRO=1: while(1); )void tO( )interrupt 1 THO二a/256; TL0=a%256; k+; if (k=10) (k=0; i+;if (i=10) i二0; j+; if(j=6) (i=0; j=0; (P2=0xfe; P0=tabi; mDelay(6000); P2二(P2 实验结果及分 析:此题实验的记数结果如下:实验分析如下:本实验是通过定时器来达成在LED数码管从00秒到59 秒的显示过程的.首先,利用定时器先实现定时100ms,在 累计记数到10次后就得到了 1秒的效果,接着在LED数码 管上相应的显示01,当到09时把十位记上
18、1,以此类推得 到在LED数码管上从00显示到59,最后,再置00.这样就 到达了实验效果.实验心得:通过本次LED数码管进行51定时器实验,让我知道了 对教材应该熟悉,由于教材是根底的,只有把根底的搞好了 才能够进行其它层次的学习.其次此次试验我还懂得了有时 候可以通过软件的仿真来验证书上的一些理论行的东西.通 过C语言的编程,对LED灯的限制及51定时器的应用让我 对单片机理解更加明了.附录:延时函数:void mDelay (unsigned int Delay) ( unsigned int i ; for (;Delay0:Delay-) ( for (i=0; i 篇三:单片机定时
19、器 实验报告定时器实验报告实验目的1.掌握单片机内部计数器的使用和编程方法;2.掌 握中断处理程序的编程方法.实验器材1. 2. 3. 4. 5.G6W仿真器一台MCS51实验板 一台PC机 一台电 源一台示波器一台实验内容及要求1.在使用12MHz晶振的条件下,由8051内部定时器1 按方式1工作,即作为16位定时器使用,每0. 05秒钟T1 溢出中断一次.P1 口的P1.0-P1.7分别接发光二极管的 LlL8o (用连线连接J2、J3)o要求:编写程序模拟一循环彩灯.彩灯变化把戏为: LI、L2、L8依次点亮;LI、L2、L8依次熄灭;L1、 L2、L8全亮、全灭.各时序间隔为0.5秒.
20、让发光二极管 按以上规律循环显示下去.2.编写一个救护车警笛声程序, 要求:上下两种音调交替出现,交替周期11.5S.实验框图循环彩灯代码ORG 0000H LJMP MAINORG 000BH ; TO的中断入口地址MAIN:MOV SP, #60HMOV TMOD, #01H;设置T1工作于方式一 MOV20H, #0AH ;装入中断次数MOV TLO, #OBOH ;装入计数值低 8位MOV THO, #3CH;装入计数值高8位SETB TRI ;启动定时 器 T1 SETB ET1 SETB EA SJMP $CAIDENG: PUSH PSWPUSH ACCMOV TLO, #OBO
21、H MOV THO, #3CH JUDGE:DJNZ 20H,RETUNT MOV 20H, #0AHHUAYANG1:MOV RO, S08HM0V Pl,ttOOHMOV A, #01H LOOP:MOV Pl, ALCALL DELAY LCALL DELAY LCALL DELAY RL ADJNZ RO,LOOPNEXT1:MOV TLO,#OBOH MOV THO,#3CH JUDGE1:DJNZ 20H, NEXT1MOV 20H,OAH;允许T1中断;允许CPU中断;等待中断;保护现场;装入计数值低8位;装入计数值高8位;0.5秒未到, 返回;重置中断次数;把戏一;设置把戏一循环次数;装入本文来自:小草范文网: 单片机定时器计数器实验报告计数值低8位;装入计数值 高8位;0. 5秒未到,返回HUAYANG2:;把戏二MOV RO, #08H ;设置把戏二循环次数 MOV Pl, #0FFH MOV A, #OFEH LOOP 1:MOVP1, A LCALL DELAY LCALL DELAY LCALL DELAYRL ADJNZ RO,LOOP1NEXT2:MOV TLO, #OBOHMOV THO,#3CH JUDGE2:DJNZ 20H, NEXT2 MOV 20H,OAHHUAYANG3:MOV Pl,#00H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 叉车维修施工合同协议2026年规范版
- 客户满意度调查分析工作指引
- 噪声危害个体防护用品标准
- 现场作业人员安全行为规范手册
- 体态评估体态分析指南
- 滴灌带堵塞排查维修作业指引
- 骨密度检测骨质疏松诊断指南
- 蔬菜大棚根结线虫病防控方案
- 婴幼儿家庭早教互动游戏方案
- 会员转介绍激励服务方案
- 组织学与胚胎学习题
- 买卖合同范本:二手房交易
- 电网工程设备材料信息参考价(2024年第四季度)
- 彩铅画水果课件
- 中央企业境外投资监督管理办法
- 2019年全国统一高考数学试卷(理科)(新课标Ⅰ)(含解析)
- KTV消防安全管理制度
- SCARA工业机器人手臂设计
- 新疆兵团建设工程标准化手册最终版
- 离婚协议书下载电子版完整离婚协议书下载
- 探究古代闽剧人物造型的转变
评论
0/150
提交评论