1.捕获高电平时间
我们利用定时器0的计数功能实现捕获外部引脚的高电平时间。定时器在不同用法里有不同称呼,比如我们这次是想得知某段过程持续了多长时间,用定时器的计数方式的话就叫做计数器。
我们这次选用的外部引脚还是P1.6,初始时先让该引脚输出低电平。
我们之前没有说过当TMOD低四位里的第三位GATE为1时是什么作用,这里说明一下,当这个位被置1的话,如果此时有“TR0=1;”,且P3.2必须为高电平的时候,才会触发定时器0的计数(P3.2为低电平时不会触发),也就是TL0每隔(12/11059200)秒就会加1,加到256变为0之后TH0就加1。一直加到65535就会有“TL0=255;”和“TH0=255;”,再加1就会全部变为0,这里复习以前讲过的知识。
所以我们把P1.6和P3.2连接起来,在 TR0置1时,只要P1.6输出高电平就会开启计数功能,P1.6输出低电平时就会停止计数功能。我们再用左边三个数码管显示TH0的数,右边三个显示TL0的数。
所以我们打算这样做
P1.6=0;
TR0=1;
P1.6=1; //开始计数
delay_ms(30); //延时一段时间
P1.6=0; //停止计数
代码先用软件测试一下“delay_ms(30);”到底真正花费多少时间。
所以P1.6保持了41.784ms的高电平时间。
用杜邦线把P1.6和P3.2连接起来之后,注意我们的延时时间不要超过71ms,也就是高电平持续的时间不能超过71ms,这跟定时时间一次定不了71ms一样。因为计数最高只能到65535。
2.代码
把代码下载进去,观察数码管显示的数值。
#include #include //请用杜邦线把P1.6和P3.2连接起来 void main() { LED_Init(); //初始化LED硬件模块 TMOD=0x09; //低四位 1001 BEEP=0; //先让P1.6输出低电平 TR0=1; BEEP=1; //开始计数 delay_ms(30); BEEP=0; //停止计数 LedBuff[0]=LedChar[TL0%10]; LedBuff[1]=LedChar[(TL0/10)%10]; LedBuff[2]=LedChar[(TL0/100)%10]; LedBuff[3]=0x7F&LedChar[TH0%10];//加上小数点好区分 LedBuff[4]=LedChar[(TH0/10)%10]; LedBuff[5]=LedChar[(TH0/100)%10]; while(1) { SEG_Scan();//读取TH0和TL0的值 } } 数码管显示150.109,所以 (150*256+109)*(12/11059200)= 0.0417849s 捕获到的高电平时间为41.7849ms,可以说精度相当高。 这里大家忘记为什么“150*256”的话,请回去复习本章之前的内容。 还有TMOD的第七位GATE的功能与第三位的GATE的功能一样,只不过用的是定时器1来计数,触发开启计数的引脚为P3.3而已。详细请参考《手把手教你学51单片机》文档5.2.2节
上一篇:51单片机-单独文件封装
下一篇:51单片机-数据类型强制转换
推荐阅读
史海拾趣
在电子行业的早期,Cressall Power Resistors公司以其对电阻技术的深入研究而脱颖而出。公司研发团队通过不懈的努力,成功开发出一种新型的功率电阻器,具有更高的耐热性、更低的电阻值变化率以及更长的使用寿命。这一技术突破迅速得到了市场的认可,公司因此获得了大量的订单,业绩迅速增长。随着技术的不断完善和产品的持续升级,Cressall逐渐在功率电阻器市场树立了技术领先的地位。
早在2007年,Cooper Industries就展现出其全球扩张的雄心。同年10月8日,该公司与宁波知名企业耐吉科技股份有限公司共同注资3000万美元,成立了库柏耐吉(宁波)电气有限公司。这一合资公司的成立,不仅加强了Cooper在中国市场的地位,也为其全球业务布局增添了重要一环。库柏耐吉(宁波)电气有限公司地处浙江省慈溪市,工业园占地400余亩,位于世界最长跨海大桥——杭州湾跨海大桥的南岸桥头堡区域,其优越的地理位置为公司的发展提供了有力支持。
在照明领域,Cooper Industries同样展现出了强大的实力。1987年,公司收购了英国McGraw-Edison,并成立了“库柏照明”事业部,这一举措使库柏照明迅速成为世界上最大的商业、工业、道路和住宅照明装置的制造商之一。此后,公司不断在照明领域进行创新和突破,如在2007年成功收购以LED灯具著称的io Lighting灯具公司,进一步巩固了其在节能灯具市场的地位。这些努力使得库柏照明在全球范围内享有极高的声誉和市场份额。
尽管已经被收购并进行了业务整合,但Dytran并没有停止其创新的步伐。公司继续加大研发投入,推动传感器技术的不断创新和升级。同时,Dytran还积极探索新的应用领域和市场空间,以满足不断变化的客户需求。
在未来,Dytran将继续致力于为客户提供高质量、高性能的传感器产品和解决方案。同时,公司还将积极参与国际竞争和合作,推动传感器技术的国际化和标准化进程。通过不断创新和发展,Dytran有望在电子行业中继续保持其领先地位并实现更加辉煌的未来。
以上五个故事框架概述了Dytran Instruments Inc.公司在电子行业中的发展历程、技术创新、市场拓展、被收购与业务整合以及未来展望等方面的重要事件和里程碑。这些故事展示了Dytran如何凭借其技术实力和市场洞察力在竞争激烈的电子行业中脱颖而出并实现持续发展。
理念:作为一家负责任的企业,Hartmann Codier GmbH始终将环保理念贯穿于产品研发、生产和销售的全过程中。公司严格遵守RoHS/WEEE等国际环保标准,杜绝使用或包含六种有毒重金属物质。
实践:在产品设计阶段,公司就充分考虑环保因素,采用环保材料和工艺;在生产过程中,公司加强了对废弃物的处理和回收利用;在产品销售后,公司还提供了完善的回收服务。这些措施不仅降低了产品对环境的影响,还提升了企业的社会形象。
在日益严峻的环保形势下,Crane Connectors公司积极响应国家环保政策,将绿色环保理念融入企业的生产经营活动中。公司采用环保材料和节能技术,减少生产过程中的污染物排放和资源消耗。同时,公司还加强废弃物的回收和处理工作,实现资源的循环利用。这些环保举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。
光驱作为计算机重要配置同样经历着飞快地更新换代的命运,不少被淘汰的低速光驱其实还有相当长的一段使用寿命,弃之可惜。倘若加以改造利用,定能为自己的生活添几分乐趣。… 查看全部问答∨ |
|
我的是pxa270加wince5.0的系统现在发现我的开发板用activesync通过usb同步,当传送小于10m的文件时可以传送但是传输当大于30m的文件时 马上activesync就断开了 这是什么原因呢,谢谢各位了我应该怎么什么 或者哪位有好用的ms2_usbfn.dll的话传一个 ...… 查看全部问答∨ |
|
在上一节里,我们提到为了摆脱低功耗,从而继续执行main函数中的其他内容,需要在中断处理程序中修改堆栈中保存的SR内容,将其中的SCG0、SCG1、OscOff、CPUOff置为0,这样,在中断返回的时候,可以使主程序自动的脱离低功耗进入活动状态。 但是, ...… 查看全部问答∨ |
|
谁申请AM3359成功了吗? http://www.ti.com.cn/ww/more/solutions/industrial_ethernet.shtml?DCMP=hpa-gia-ethernet-cn&HQS=gia-ethernet-bhp-cn 工业以太网解决方案… 查看全部问答∨ |
本帖最后由 ltbytyn 于 2015-10-13 15:54 编辑 我的最终目的是要控制电机(玩具电梯),所以通过PWM调速还是很有必要的。 设定周期为10ms。实现10%~90%(占空比变化率为10%)总共九种占空比的波形输出。 实现思路,通过定时器计数,通过到达设 ...… 查看全部问答∨ |