首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户119066
修改
文章:
47
阅读:
127254
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
127254
评论
7
赞
206
原创
5
2007-11-21 21:13
3398
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
换一换>
更多>
案例分享 | 高效节能,性能卓越!汉高三防漆为电动汽车充电系统披上"隐形铠甲"
汉高
2025-03-21
赤池昌二先生升任TEL集团副总裁兼中国区总裁
Tokyo Electron
2025-03-04
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户119066
修改
文章:
47
阅读:
127254
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
127254
评论
7
赞
206
最新评论
更多
写的好,学习和参考,很适用
开发工匠 ...
评论博文
2025-4-3
从新人到骨干:三大思维转变助你职场腾飞 ...
学习了
curton
评论博文
2025-4-2
从新人到骨干:三大思维转变助你职场腾飞 ...
写的好,学习和参考,分析很细,大师之作,比亚迪还是很牛
开发工匠 ...
评论博文
2025-4-1
特斯拉入华十年:褪去光环,开始 “交学费 ...
最新
博文
陆上目标智能识别系统全面解析 ...
WD5208非隔离ACDC高性能离线式PWM控制 ...
电缆护层保护器的产品优势! ...
资料下载
本周热帖
苏州永创智能科技详解“CMTI测试电源 ...
ASL6328 HDMI2.0 Retimer中继器ic设计 ...
IGBT并联使用要点(来源于onsemi) ...
英飞凌双通道音频功率驱动芯片 ...
stm32单片机手册
聚焦 3 月:世界通信大会、嵌入式展及 ...
“卷”的大环境下还是有公司强力增长 ...
如何用Switch连接投影仪
肖特基二极管vs.超快恢复二极管:哪种 ...
AEC-Q104认证:芯片模组的可靠性与质 ...
最新资讯
芯语最新
突发!美国宣布全面征收关税,中方坚 ...
复旦大学宣布成功研制全球首款二维半 ...
最高49%!特朗普对多国加征“对等关税 ...
AI爆发将催生“新物种”:EDA/IP企业 ...
英特尔新战略:AI驱动、软件2.0与代工 ...
安泰高压放大器在干涉法测算的压电系 ...
法大大法务AI智能体iTerms Pro重磅发 ...
ATA-2082高压放大器在PGC解调算法位移 ...
Aigtek:功率放大器有哪些基本要求和 ...
Aigtek功率放大器在液滴微流控细胞分 ...
EE直播间
更多
精准捕获瞬态信号,掌控复杂射频环境 – 实时频谱分析与录制回放
直播时间: 04月10日 10:00
利用高性能源表和强大的软件, 实现半导体参数的测试和分析
直播时间: 04月17日 10:00
在线研讨会
更多
MAXQ™ Power转换器架构:性能零浪费
多物理场仿真在半导体制程中的应用
迈来芯新一代经济型热成像技术:赋能电力电子过热保护与智能应用温度监控
ADI 应用于电池管理系统 (BMS) 的电芯监测解决方案
热门
推荐
专业技术方案,助力工程师攻克难题!
多物理场仿真在半导体制程中的应用
工程师必看:B2900隐藏的15个超频测试模式
破解工业通信时延困局
我要评论
0
5
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
【直播】ADI 全新架构解析汽车电源设计
汽车电源设计人员正面临下一代系统的开发挑战,参与直播了解MAXQ Power架构如何帮助设计下一代软件定义的ADAS、信息娱乐和车身电子系统,如何解决关键系统设计问题和实际案例分析。
2025第1期拆解活动:赢示波器、运动相机、热像仪等!
示波器、影石运动全景相机、大疆无人机、高清红外热成像仪;树莓派5等等
【在线研讨会】多物理场仿真在半导体工艺中的应用
聚焦 COMSOL 仿真软件在半导体制程中的广泛应用,内容涵盖晶圆制备、光刻、沉积、刻蚀、离子注入、热处理,以及平坦化等前道工艺过程中各种多物理场现象的模拟和分析。
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论