实验三 定时器、计数器应用实验二_第1页
实验三 定时器、计数器应用实验二_第2页
实验三 定时器、计数器应用实验二_第3页
实验三 定时器、计数器应用实验二_第4页
实验三 定时器、计数器应用实验二_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、定时器/计数器应用实验二设计性试验2012年11月21日星期三 第三四节课一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性

2、脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。三、电路原理图四、实验程序流程框图和程序清单及实验结果/*设计要求:(1)单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P1.0口线上接示波器观察波形编写:吕小洋时间:2012年11月16日18:09:40*/ORG0000HSTART:LJMPMAINORG0100HMAIN:MOVSP,#2FHCLREA ;关总中断CLRET1 ;禁止定时器1中断MOVTMOD,#01100000B ;设置计数器1为工作方式

3、2MOVTH1,#9CH ;设置计数初值MOVTL1,#9CHSETBTR1 ;启动计数器LOOP:JNBTF1,LOOP ;查询计数是否溢出CPLP1.0 ;输出取反CLRTF1 ;清除计数溢出标志LJMPLOOP ;重复取反END/C语言编程/#include "reg52.h"sbit P1_0=P10;void main()TMOD=0x50; /*T/C1工作在定时器方式1*/TR1=1; /*启动T/C1*/for(;)TH1=(65536-100)/256;/*装载计数初值*/TL1=(65536-100)%256;do/*查询等待TF1置位*/ while(

4、!TF1);P1_0=!P1_0;/*定时时间到P1.0取反*/TF1=0;/*溢出标志清零*/*设计要求:(2)单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态在P1.0口线上接示波器观察波形编写:吕小洋时间:2012年11月16日18:48:04*/ORG0000HSTART:LJMPMAINORG001BHLJMPTTC1ORG0100HMAIN:MOVSP,#2FHSETBEA ;开总中断SETBET1 ;定时器1允许中断MOVTMOD,#60H ;设置T1为工作方式2MOVTH1,#38H ;设置计数初值

5、MOVTL1,#38H SETBTR1 ;启动定时器HERE:LJMPHERE ;等待中断/*中断服务程序*/ORG0200HTTC1:CPLP1.0 ;输出取反RETI ;中断返回END/C语言编程/#include"reg52.h"sbit P1_0=P10;void main()EA=1; /*开总中断*/ET1=1; /*开T/C1中断*/TMOD=0x50; /*T/C1工作在定时器方式1*/TH1=(65536-200)/256; /*装载计数初值*/TL1=(65536-200)%256;TR1=1; /*启动T/C1*/while(1);void timer

6、1() interrupt 3 /*T/C1中断服务程序入口*/P1_0=!P1_0; /*定时时间到P1.0取反*/TH1=(65536-200)/256; /*装载计数初值*/TL1=(65536-200)%256;五、实验总结通过本次试验,我掌握了定时器/计数器定时功能的使用方法,能够利用定时器/计数器以查询、中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数。同时掌握了单片机系统的硬件和软件设计方法。六、思考题1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示

7、波器观察波形。 /*设计要求:利用定时器0,在P1.0口线上产生周期为200us的连续方波利用定时器1,对P1.0口线上波形进行计数,满50个则取反平P1.1口线状态,在P1.1口线上接示波器观察波形编写:吕小洋时间:2012年11月16日20:07:08*/ ORG0000HSTART:LJMPMAIN ORG001BH LJMPTTC1 ORG0100HMAIN:MOVSP,#2FH MOVIE,#88H MOVTMOD,#62H;设置T1为计数功能(方式2)、T0为定时(方式2) MOVTL0,#9CH MOVTH0,#9CH;设置定时100us初值 MOVTL1,#0CEH MOVTH

8、1,#0CEH;设置计数50个初值 SETBTR0;启动定时器 SETBTR1;启动计数器LOOP:JNB TF0,LOOP;查询定时时间是否已到 CPLP1.0;输出取反 CLRTF0;清除计数溢出标志 LJMPLOOPTTC1:CPLP1.1;输出取反 RETI END/C语言编程/#include "reg52.h"sbit P1_0=P10;sbit P1_1=P11;void main()IE=0x88;TMOD=0x51; /*设置T1为计数功能(方式1)、T0为定时(方式1)*/TL1=(65536-50)%256;TH1=(65536-50)/256;/*装载计数50个的计数初值*/TR0=1;/*启动T/C1*/TR1=1;for(;)TL0=(65536-100)%256;TH0=(65536-100)/256;/*装载定时100us的计数初值*/do/*查询等待TF1置位*/ while(!TF0);P1_0=!P1_0;/*定时时间到P1.0取反*/TF0=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论