首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户119066
修改
文章:
47
阅读:
127225
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
127225
评论
7
赞
206
原创
5
2007-11-21 21:13
3395
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
阅读:
127225
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
127225
评论
7
赞
206
最新评论
更多
写的好,学习和参考,分析很细,大师之作,比亚迪还是很牛
开发工匠 ...
评论博文
2025-4-1
特斯拉入华十年:褪去光环,开始 “交学费 ...
写的好,学习和参考,很实用,写的详细
开发工匠 ...
评论博文
2025-3-31
朋友想用RK3506核心板自研一款嵌入式工业网 ...
写的很适用,学习和参考
开发工匠 ...
评论博文
2025-3-29
消灭EMC的三大利器:电容器/电感/磁珠 ...
最新
博文
智能语音芯片WT588F02B-8S:低功耗设 ...
白电赛道竞争白热化,美的、海尔、格 ...
三星“李在镕之笑”背后的局 ...
资料下载
本周热帖
苏州永创智能科技详解“CMTI测试电源 ...
ASL6328 HDMI2.0 Retimer中继器ic设计 ...
IGBT并联使用要点(来源于onsemi) ...
英飞凌双通道音频功率驱动芯片 ...
stm32单片机手册
“卷”的大环境下还是有公司强力增长 ...
聚焦 3 月:世界通信大会、嵌入式展及 ...
肖特基二极管vs.超快恢复二极管:哪种 ...
AEC-Q104认证:芯片模组的可靠性与质 ...
高速PCB设计过孔不添乱,乐趣少一半 ...
最新资讯
芯语最新
AI狂飙下的电源革命:SiC与GaN如何改 ...
从汽车网链到智能边缘,ADI引领软件定 ...
独角兽达闼机器人被曝陷停摆危机,创 ...
DRAM基础知识:通过优化外围晶体管实 ...
小米 SU7 高速碰撞事故,智能驾驶系统 ...
浅谈小米SU7三人死亡事故
【行业标准】IPC标准动态更新(2025年 ...
突围价格战,长城汽车何以高增长? ...
小米SU7自燃,车门为何无法打开? ...
全球投科技的基金经理都在抢军工股 ...
EE直播间
更多
精准捕获瞬态信号,掌控复杂射频环境 – 实时频谱分析与录制回放
直播时间: 04月10日 10:00
利用高性能源表和强大的软件, 实现半导体参数的测试和分析
直播时间: 04月17日 10:00
在线研讨会
更多
MAXQ™ Power转换器架构:性能零浪费
多物理场仿真在半导体制程中的应用
迈来芯新一代经济型热成像技术:赋能电力电子过热保护与智能应用温度监控
ADI 应用于电池管理系统 (BMS) 的电芯监测解决方案
热门
推荐
工程师必看:B2900隐藏的15个超频测试模式
百万设备≠唯一解!精密测量成本砍半秘籍
电子元器件采购与技术方案,工程师专属平台
解密半导体全产业链测试密码 | 泰克技术大会
我要评论
0
5
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/1
2025第1期拆解活动:赢示波器、运动相机、热像仪等!
示波器、影石运动全景相机、大疆无人机、高清红外热成像仪;树莓派5等等
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论