首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025汽车电子峰会
2025 AI+IoT 生态大会
2025MCU及嵌入式论坛
直播:介电常数那些事儿
汽车全域ADAS方案
行业及技术活动
研华嵌入式论坛(深圳 武汉 苏州)
嵌入式设计资源库
杂志免费订阅
EE直播间
白皮书
小测验
在线研讨会
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户119066
修改
文章:
47
阅读:
130241
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
130241
评论
7
赞
206
原创
5
2007-11-21 21:13
3460
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
换一换>
更多>
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户119066
修改
文章:
47
阅读:
130241
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
130241
评论
7
赞
206
最新评论
更多
光伏产业无声无息了
自做自受 ...
评论博文
2025-7-5
阳光-树叶-光伏板
这台使用率最高的笔记本电脑于2024年10月,生命彻底结束。拆解,保留可再利用的器官,DVD、硬盘、内存条、电源适配器等,其它器 ...
自做自受 ...
评论博文
2025-7-5
机器人注意:循环再用-DIY低科技维修笔记本 ...
啊啊啊啊啊啊啊啊啊啊啊啊
琳
评论博文
2025-7-5
【拆解】+自动喷香机拆解
最新
博文
CAN 总线遇强干扰时,隔离式收发器如 ...
为什么我的高阶电视竟无法输出8声道Au ...
Pickering Interfaces推出全新高速PXI ...
资料下载
本周热帖
好资料!65W无线快充,这些无线充电的 ...
电源干货!一图看懂反激式电源元器件 ...
OTA7290B
电子元件FCO-7P-LE低EMI振荡器:快速 ...
电子元件领域中FCO-5P-LE低EMI振荡器 ...
【资料下载-第四季】直流无刷电机、FO ...
《电感应用分析精粹:从磁能管理到开 ...
【凌鸥创芯LKS32MC034DOF6Q8】+调试中 ...
从开关速度看MOSFET在高频应用中的性 ...
基于SiC的熔丝保护高压电气系统 ...
最新资讯
芯语最新
逆变器解决方案比较:硅与宽禁带功率 ...
教你设计一个简单的电子脉冲继电器模 ...
特斯拉神秘新车现身工厂,疑为 Model ...
适用于高速应用的先进全局快门图像传 ...
比亚迪墨西哥建厂计划恐搁浅 ...
美商务部拟起草新规:严控AI芯片经东 ...
立讯精密拟赴港上市,估值或超千亿, ...
德赛西威展示跨域融合方案:高通峰会 ...
台积电美国子公司高层人事调整:总经 ...
热室压铸与冷室压铸:如何抉择,一文 ...
EE直播间
更多
在线研讨会
更多
利用先进精密仪器仪表解决方案,优化研发并加快产品上市
在服务器电源中使用低压 eGaN FET 提升功率密度
安森美(onsemi)碳化硅产品的介绍和应用
探索适用于移动机器人的先进技术
热门
推荐
WAIC重磅专场|从云端到机器人,深度揭秘Arm CSS如何重塑AI基础设施
剖析5年后的自动驾驶技术
自动驾驶的半导体基石
【技术前沿】Microchip最新嵌入式技术大揭秘!
我要评论
0
5
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/2
自动驾驶的未来在何处?
从当前的车道保持辅助与泊车辅助功能,到新面世的增强型 3 级环境检测技术,每一项创新,无论看似多么微小,都在推动我们逐步迈向完全自动驾驶的未来。
【2025面包板社区内容狂欢节】发帖/回帖赢25万E币!
活动时间:即日起——2025年全年(发完20万E币为止!)
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025汽车电子峰会
2025 AI+IoT 生态大会
2025MCU及嵌入式论坛
直播:介电常数那些事儿
汽车全域ADAS方案
行业及技术活动
研华嵌入式论坛(深圳 武汉 苏州)
嵌入式设计资源库
杂志免费订阅
EE直播间
白皮书
小测验
在线研讨会
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论