《单片机应用》-项目四 任务二_第1页
《单片机应用》-项目四 任务二_第2页
《单片机应用》-项目四 任务二_第3页
《单片机应用》-项目四 任务二_第4页
《单片机应用》-项目四 任务二_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

【任务描述】用定时/计数器从单片机某引脚输出周期为6s的方波信号,即定时令该引脚电平每隔3s翻转一次(设晶振频率为12MHz)。【任务分析

】本任务的定时时间3s远大于任务一的30ms,需要的计数值3000000(=3s/1μs)已超过了16位定时/计数器的最大计数容量65536,显然单次定时无法达到3s,所以只能采用多次定时累计来实现。比如可以设定单次定时时间为30ms,循环累计100次,即可实现定时3s。

任务2周期为6s的单片机方波输出电路【知识准备

】前面我们已学习了跳转指令和循环程序的设计,结合本任务要求,可以利用字节单元或通用寄存器等来存放定时/计数器单次定时的循环次数,从而实现较长时间的定时过程。

任务2周期为6s的单片机方波输出电路【任务实施】1、硬件电路设计

(1)设计思路由于本任务的功能要求与任务1的相似,只是要求输出信号的周期不同,所以硬件电路完全相同。(2)原理图根据设计思路,使用ProteusISIS仿真软件绘制电路图如下图所示。硬件电路元件清单:元件关键字元件名称AT89C51单片机CRYSTALAT晶振CERAMIC33P33pF电容CAP-ELEC22μF电解电容MINRES2K电阻2KΩOSCILLOSCOPE示波器2、软件设计本任务中选择通用寄存器R0存放单次定时的循环次数100,对应的代码语句是MOVR0,#100,再结合条件转移指令DJNZ就可以判断单次循环次数是否已达到来实现定时时间3s,即DJNZR0,JIXU。(1)画流程图(a)总流程图(b)中断服务程序流程图(2)计算计数初值当定时时间为3s(方波的半周期时间)时,采用定时器T0,工作在方式1,机器周期为1μs,则计数值应为30ms/1μs=30000所以T0应装入的计数初值为216

30000=65536

30000=35536=1000101011010000B=8AD0H即TH0=8AH,TL0=D0H。(3)程序代码

ORG0000H AJMPMAIN ORG000BH AJMPZD0 ORG0030HMAIN: MOVR0,#100 ;设定单次定时循环次数为100 MOVTMOD,#01H ;令定时器T0工作在方式1 MOVTH0,#8AH ;装入计数初值

MOVTL0,#0D0H SETBEA ;开全局中断SETBET0 ;开T0中断

SETBTR0 ;启动T0 SJMP$ ORG0100HZD0:MOVTH0,#8AH;重装计数初值

MOVTL0,#0D0H DJNZR0,JIXU;判断单次定时是否已达100次

MOVR0,#100;重置定时循环次数

CPLP0.0 ;翻转

温馨提示

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

评论

0/150

提交评论