实验5 定时计数器实验.docVIP

  • 39
  • 0
  • 约1.7千字
  • 约 3页
  • 2017-08-26 发布于浙江
  • 举报
实验5 定时计数器实验.doc

实验5 定时计数器实验 一、实验目的 1、应用PROTEUS仿真工具软件绘制硬件连接图 2、使用Keil C 完成程序的编写和调试 3、掌握定时计数器的基本概念 4、掌握定时计数器的控制及其SFR的设置 5、掌握定时器/计数器的工作方式 6、掌握定时器/计数器的初始化 二、实验内容 实验内容1:P1口接有8个发光二极管,要求利用定时器控制,使8个二极管同时亮1秒、灭1秒,周而复始,设Fosc=6MHz。 实验内容2:用定时器0产生一个50Hz的方波,由P1.1输出,振荡频率为12MHz。 三、实验电路原理图 图6-1 流水灯控制电路原理图 实验步骤 1、在PROTEUS中画好电路原理图。 2、在KEIL中编写流水灯控制的程序。编好后调试产生HEX文件。 3、将HEX文件写入电路图中的单片机,仿真出流水灯控制的现象。 实验分析与源代码 实验内容1分析: 采用中断方式: 中断程序设计如下 ORG 0000H AJMP MAIN ORG 000BH AJMP IP0 ORG 30H MAIN: CLR A MOV P1,A MOV TMOD, ;Timer0采用工作模式1 MOV TH0, MOV TL0, ;定时100ms SETB ET0 ;开T0中断开关 SETB EA ;开中断总控开关 MOV R4,#0AH ;中断10次计数 SETB TR0 ;启动Timer0工作 SJMP $ ;等待中断 IP0:DJNZ R4,RET0 ;10次未到,继续等待中断 MOV R4,#0AH CPL A ;10次到,p2取反 MOV P1,A RET0: MOV TH0, MOV TL0, ;定时100ms SETB TR0 ;启动Timer0工作 RETI END 请自行编写采用查询方式程序。 实验内容2分析: 分析过程:晶振频率Fosc =12MHz; 机器周期MC =1uS; 50HZ的方波周期:=1/50=0.02S=20ms,可以用定时器产生10ms的定时,每隔10ms改变一次P1.0的电平,即可得到50HZ的方波; 计次脉冲数应为: 此时,应使定时器T0采用工作方式1。工作在方式1时 计数初值数为: 其中将高8位赋给TH0,低8位赋给TL0 查询程序设计如下: ORG 0010H MOV TMOD, ;T0工作于方式1,定时模式 SETB TR0 ;启动T0 LOOP: MOV TH0, ;T0计数初值 MOV TL0, JNB TF0, $ ;若T0无溢出则原地等待 CLR TF0 ;若产生溢出,清除中断请求标志位 CPL P1.1 ;P1.1取反输出,输出方波 SJMP LOOP ;重复循环 请自行编写采用中断方式程序。 实验思考 编写一段程序,让51MCU的P2输出占空比为70%,频率为100HZ的矩形波(用定时器完成),fosc=6MHz。

文档评论(0)

1亿VIP精品文档

相关文档