南昌大学单片机chapter6_第1页
南昌大学单片机chapter6_第2页
南昌大学单片机chapter6_第3页
南昌大学单片机chapter6_第4页
南昌大学单片机chapter6_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

89C5189C51 的定时器的定时器 计数器计数器 定时器 计数器结构 两个定时器 计数器具有两种模式 定时器 若 P3 3 口为 0 则转跳 LOOP2 SETB TR1 如果 P3 3 为 1 则开启 T1 LOOP1 JNB P3 3 LOOP2 如果 P3 3 为低电平 则跳转 LOOP2 等待 P3 3 升高 LOOP2 JB P3 3 LOOP2 等待 P3 3 变为低电平 CLR TR1 关中断 MOV A TL1 计数数值送 A 下面就是其他程序啦 这个程序 1 首先计数器全部清零 这样才算计时对不对 2 之后如果测量开始的时候是高电平就等待下次的高电平来临 所以 LOOP0 的 JB P3 3 LOOP0 是为了等待低电平的来临 如果低电平到了或者本就是低电平则开启 T1 3 LOOP1 的作用是等待 P3 3 变成高电平的时候计时 此时 T1 并不会工作 为什么 因 为这里 GATE 1 所以不仅仅要 TR1 1 而且要同时为 1 的时候才会计数 所以 LOOP2 为计数程序 在 P3 3 又从高电平变为低电平的时候关闭 T1 停止计时 然后把 数据送入下一段程序处理 实时时钟设计实时时钟设计 ORG 0000H AJMP MAIN ORG 000BH AJMP IT0P 初始化 MAIN MOV TMOD 01H 模式设置 MOV 20H 0AH 在 20H 中装入 10 CLR A MOV 40H A MOV 41H A MOV 42H A 40H 41H 42H 清零 SETB ET0 允许 T0 中断 SETB EA 开启中断总允许开关 MOV TH0 3CH MOV TL0 OBOH 计算 0 1S 在模式 1 下的初值并装入计数器 SETB TR0 启动 T0 HERE SJMP HERE 等待中断 IT0P PUSH PSW PUSH ACC 寄存 PSW 和 ACC 保护现场 MOV TH0 03H MOV TL0 0B0H 恢复计数器初值 DJNZ 20H RETURN 未到循环 10 次达 1S 的时间重新循环 过去时间 1S MOV 20H 0AH 恢复 20H 初值 MOV A 01H A 置 1 ADD A 42H 在秒位加一 DA A 十进制转化 MOV 42H A 新的秒位放入 42H 当中 CJNE A 60 RETURN 未到 60S 则跳入 RETURN 继续循环直至秒位达到 60 MOV 42H 00 秒位清零 MOV A 01H 分为进一 ADD A 41H DA A MOV 41H A CJNE A 60 RETURN 未到 60MIN 则跳入 RETURN 继续循环直至分钟位 达到 60 MOV 41H 00 分钟位清零 MOV A 01H 小时位进一 ADD A 40H DA A MOV 40H A CJNE A 24 RETURN 未到 24 小时跳入 RETURN 继续循环直至 24 小 时 MOV 40H 00H 小时位清零 24 小时过去了 RETURN POP ACC 恢复现场 POP PSW RETI 跳出中断 END 程序结束 思考练习题 1 如果采用 3MHZ 的晶震 T 2 n x 12 focs 所以三种方式分别为 16 384ms 131 072ms 0 512ms 2 计数脉冲是对单片机的时钟信号经片内 12 分频后的脉冲计数 定时时间与晶体振荡体频率 初值 模式有关 3 输入信号的频率 输入信号的频率 外部输入的计数脉冲最高频率为系统振荡器频率的 1 24 4 因为 focs 为 6MHZ 1ms 为定时时间的话则在模式一的情况下 1000 2 16 X 2 所以 X 65036 化为 2 进制为 1111 1110 0000 1100 所以 16 进制为 0FE0CH 所以 TH0 OFE TL0 0CH 计数 100 次用模式 2 Org 0000h ljmp main Org 000bh Ljmp it0p Org 1000h Main mov sp 60h Mov tmod 06h 模式 2 计数模式则 1 Mov th0 156 Mov tl0 156 赋初值 模式 2 下高八位低八位相等 这里用的是 10 进制 其实无 所谓几进制 表示的数是一样的就可以 Setb tr0 开启 T0 Setb et0 允许中断 Setb ea 开启总中断开关 Here sjmp here 等待 100 次计数到 It0p clr ea 关中断 Mov tmod 01h Mov th0 0feh Mov tl0 0ch 重新初始化 Setb ea 开中断 Reti 完毕 一个循环结束 5 方式 2 是一个可以自动重新装载初值的八位计数器 定时器 这种工作方式可以可以省去用 户程序中重新装入初值的指令 并可以产生相当精确的定时时间 6 占空比为 10 1 所以高电平时间为 360 s 低电平时间为 40 s Focs 6MHZ 的情况下 360 2 8 x 2 x 76 40 2 8 x 2 x 236 Org 0000h Ljmp main Org 000bh Ljmp it0p Org 0100h Main mov tmod 02h Mov tl0 76 Mov th0 76 Setb et0 Setb tr0 Setb ea Setb p1 0 Here sjmp here It0p clr ea Mov tl0 236 Mov th0 236 setb ea clr p1 0 reti 7 两个计时器交替使用 时间 两个计时器相加 两个计时器类似于串联使用 一个计时 一个计数 时间 一个计时周期 计数的数 计时 计时器显示时间 8 由图 6 11 可以得出 T1 P3 5 引脚 9 方式 1 当初值为 0000H 的时候初值最大 最大脉冲宽度为方式 1 最大计时时间 131 072ms 10 main jb p1 0 main loop jnb p1 0 loop mov tmod 05 mov tl0 00 mov th0 00 setb tr0 setb et0 setb ea P1 2 一个负脉冲下降沿计数一次因为 1 it0

温馨提示

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

评论

0/150

提交评论