首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户119066
修改
文章:
47
阅读:
126087
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
126087
评论
7
赞
206
原创
5
2007-11-21 21:13
3373
5
5
分类:
MCU/ 嵌入式
摘自“中原孔海洋”
MCS-51系列单片机内部有两个定时器/计数器T0、T1,它们都具有两种工作模式(定时器和计数器)以及四种工作方式(方式0、1、2、3)。
定时器/计数器T0由特殊功能寄存器TH0和TL0构成,T1由特殊功能寄存器TH1和TL1构成。除此之外,与定时器/计数器有关的特殊功能寄存器还有工作方式控制寄存器TMOD和控制寄存器TCON。关于它们的详细内容和具体应用请参阅相关参考文献,此处不做探讨。
由于定时器/计数器T0与T1用法几乎完全相同,所以下面的例子中我们将全部使用T0。而且定时器/计数器方式0和方式3较少使用,因此我们也将主要仿真说明其方式1和2的用法,另外我们还会给出一种其计数器的用法。
例1.定时器/计数器T0工作于定时器模式方式1,在P1.0端口产生周期为100ms的方波。
首先计算计数初值:周期为100ms,定时应为50ms(半个周期)。一个计算公式为:
计数初值=216-t×f/12
其中t为定时时间(单位为s),f为单片机的时钟频率(单位为MHz)。
所以,计数初值为216-0.05×12M/12=15536=3CB0H。因此,TH0的初值应为3CH,TL0的初值应为B0H。
因此,此例的源代码如下图:
在MedWin中将源文件编辑完成以后,保存为汇编源文件并编译、汇编产生源代码(.HEX文件)。
下面我们在Proteus中设计电路,此例电路也比较简单,只需在AT89C51单片机的P1.0口连上一个示波器来观察产生的相应波形就可以了。选择示波器时要注意首先在前面的文章
“我的毕业论文(三):Proteus软件的基本用法”
中第一个图:Proteus界面里面的区域⑤点击
按钮
选择虚拟仪器模式,然后在区域③中选择“OSCILLOSCOPE”(示波器)。
完成的电路图如下图所示:
构建好电路图以后,下面就可以为单片机添加程序代码(.HEX文件)了。双击单片机图标,添加上面的源文件所生成的程序代码,添加好以后,接着就可以进行下面的仿真。点击运行按钮,系统就运行了起来,我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。调整好以后,系统产生的波形效果如下图所示:
如果你的Proteus版本是7.0以前的版本,那么你的示波器和波形效果可能与图中略有不同,但并不影响仿真效果;如果是最新版本,则应该完全相同。
从图中我们能够看出,波形的周期为100ms,这与我们设定的目标相一致;而其幅值则近似为5V。
例2.设计一个延时程序,延时500ms。为了能够清晰地看到延时效果,我们设计在P1.0口连接一个LED发光二极管,使其使用该延时程序每500ms闪烁一次。
通常情况下,为了简便,人们会使用软件延时,即通过执行一段没有意义的程序来达到延时的目的。但那样做会浪费系统资源,使得系统在延时过程中不能响应任何外部或内部事件。所以,人们对其做了改进,而通过定时器/计数器定时来进行延时。
由于方式2定时时间过短(12MHz下最大250μs左右),所以,此处我们仍然选用方式1。但方式1在12MHz下的最大定时时间也只有60多ms,仍然不能满足延时要求。所以,延时程序需要软硬件协作。即我们可以这样去做,通过硬件T0延时50ms,然后设置一个计数器,当计数器计到10时,我们延时的目标就达到了。
源程序如下图:(计数器初值计算与上例相同)
将上面的源文件保存为汇编文件,然后进行编译/汇编,并生产源代码装入内存在MedWin中仿真运行看延时效果(可以通过指令单步执行“lcall dly500”一句观察指令执行时间,则实际执行时间就是延时时间)。结果发现,实际执行中该延时程序比我们的要求多延时了87μs,这是因为延时程序中还插入了其他指令(比如设置T0模式等),所以我们的延时程序不是十分精确,实际应用中我们可以通过调整T0初值来稍作调整,但此处对延时要求并不精确,所以我们就不再做调整了。
下面我们可以在Proteus中构建电路来观察我们的延时效果。电路图十分简单,如下图所示:
注意LED的阴阳极不要接反,图中的限流电阻在模拟时可以略去,但如果添加上的话,最好阻值不要设置的过大,以免LED发光太弱,影响观察效果。
设置好电路图以及各元器件的属性以后,我们就可以点击仿真按钮来观察效果了。可以看到,LED按照大约0.5s的周期开始闪烁。
例3.定时器/计数器的计数功能。本例使用T1对外部脉冲进行计数,每计数一次,与P1口相连的8个LED发光二极管的亮灯个数和位置就按照它们的顺序所表示的BCD码(亮灯代表1,灭灯为0)做加法。比如开始为29(00101001),计数一次以后,对应的数字变为30(00110000)。这里我们用按键来模拟外部脉冲,每按一次,表示产生一个脉冲。
显然,根据要求,我们可以使T1工作于计数器方式2,而且我们可以设置其初值为FF,这样,外部产生一个脉冲,T1检查到就会发生中断,然后我们在中断子程序中按要求进行处理。
其源程序如下图所示:
将上面在MedWin中编辑好的源文件保存为汇编文件,然后进行编译/汇编,并产生相应的源代码(.HEX文件)。注意因为Proteus仿真电路的按键为理想按键,所以程序设计时并没有考虑按键的抖动,但在实际应用中应该注意,否则将可能实现不了预期目的。另外,本例为了仿真的方便,设置T1计数器的初值为FFH,实际应用中可以灵活地根据相关要求进行改动。
然后我们根据题中要求设计电路。设计好的电路图如下图所示:
设计电路图时要注意因为本电路图中需要较多的限流电阻(如果添加的话),所以在绘制电路图时考虑用排阻来进行代替。图中RP1就是一个8×的排阻。Proteus中提供了几种排阻,你可以使用关键词“respack”进行查找。
设计好电路图,我们就可以将上面汇编源文件产生的源代码装入单片机,然后进行仿真。仿真时使用鼠标点击按键,你可以看到LED按照BCD码加法的规律进行变化。仿真中的一个画面可以从上图中看到。
写原创有奖励!2025面包板原创奖励正在进行中
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
点赞(
5
)
收藏
分享到:
上一篇:
6
下一篇:
4
PARTNER CONTENT
换一换>
更多>
全球知名科技公司正在出售一批未使用的IC载板先进封装工艺生产设备
ALLSURPLUS
2025-02-14
德中技术发布数控设备操作系统MOS V1.0版本软件
德中技术
2025-02-06
PMIC设计:巧心思,大不同
邵乐峰
2025-02-25
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户119066
修改
文章:
47
阅读:
126087
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
126087
评论
7
赞
206
最新评论
更多
转音了不起公司
开发工匠 ...
评论博文
2025-2-27
传音深化产业链布局,旗下子公司荣获政府表 ...
大师之作,学习和参考,牛人
开发工匠 ...
评论博文
2025-2-27
【电子DIY】徒手做一个自动抽水机 ...
关于免费,看法多多,各抒己见。 倒是一直以来对“免费”一词有看法和想法,不是有句话“世上没有免费一说”?联想到等价交换 ...
自做自受 ...
评论博文
2025-2-26
文心一言为什么要免费?我的看法。 ...
最新
博文
米尔瑞芯微RK3562核心板搭载4核CPU,A ...
AMEYA360:村田电子考虑大规模并购! ...
PCB安全电气规范
资料下载
本周热帖
3D打印材料质量评估中飞纳扫描电镜的 ...
LC充电电压函数
[11章]SpringBoot 3.x + Netty + MQTT ...
LX8201-0B测试版说明书
LX8201-0B规格书
关于内容审核不通过的原因说明 ...
AI要抵制吗?
【富芮坤FR3068x-C】+评测
瞬态过压防护器件有哪些
Slkor萨科微再推ADC芯片、逻辑门缓冲 ...
最新资讯
芯语最新
NVIDIA物理智能,如何重塑自动驾驶底 ...
微软呼吁美国政府放宽“Tier 2国家” ...
拖欠工资、融资失败、董事长被限高! ...
玄铁首款服务器级CPU下月交付,加快布 ...
磁吸充电线混用的可怕后果! ...
面板大厂人事地震:更换越南CEO! ...
诺西3×90W基站拆机,TRX板、PA板、双 ...
最近尝试号友的方法,想脱离书或视频 ...
性价比天花板!198元=四核A53+NPU国产 ...
特朗普对华加征关税到20%,或扩大对LE ...
EE直播间
更多
第三代功率半导体器件测试解决方案
直播时间: 03月06日 10:00
不一样的热像检测 - 电子产品的热像检测技术要点和案例分享
直播时间: 03月26日 10:00
利用高性能源表和强大的软件, 实现半导体参数的测试和分析
直播时间: 04月17日 00:00
在线研讨会
更多
使用新型光耦隔离栅极驱动器优化系统效率及EMI表现
Allegro电流传感器替代采样电阻解决方案—实现更高效、更可靠的电流检测
迈来芯电流传感器:从汽车到工业与消费电子全面应用
如何在隔离的状态监控系统中捕获同步数据
热门
推荐
采样电阻OUT!Allegro磁传感方案实战揭秘
实测解析:高精度电流传感在BMS与智能家居中的设计取舍
低频测量误差高达70%?你可能忽略了这个关键因素
百万设备≠唯一解!精密测量成本砍半秘籍
我要评论
0
5
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
面包板社区有奖活动汇总楼
1. 拆解活动即将上线!2. 写原创,有奖励!3. 免费申领:开发板试用、书籍试读...
关于内容审核不通过原因的公告
为了给大家营造一个优质、高效的社区环境,保证论坛秩序和内容质量,现对内容审核不通过的原因进行说明
【赚大额E币】用AI来分析电路或编程!
用AI工具进行电子设计方面的工作?比如分析电路、元件选型、写代码...哪些AI大模型在硬件分析设计方面、编程方面的能力更强?
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论