历史上的今天
返回首页

历史上的今天

今天是:2025年08月11日(星期一)

正在发生

2021年08月11日 | 8051单片机(STC89C52)倒计时器

2021-08-11 来源:eefocus

 

 

 

#include

 

void delay()//用定时器0实现10ms精准定时

{

TMOD = 0x01;

TH0 = 0xd8;

TL0 = 0xf0;//65536 - 10000 = 55536

 

TF0 = 0;//置溢出标志位为0

TR0 = 1;//开启定时器0

while(TF0 == 0);

TR0 = 0;//暂停定时器0

}

 

void disp_digit(int d)

{

unsigned char code DIG_CODE[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

//显示个位数

P2 = 0;// P2 = 0 -> (P24, P23, P22) = (0, 0, 0) -> 右数第一个数字点亮

P0 = DIG_CODE[d % 10];

delay();//10ms精准定时

//显示十位数

P2 = 1 << 2;//P2 = 0000 0100 -> (P24, P23, P22) = (0, 0, 1) -> 右数第二个数字点亮

P0 = DIG_CODE[d / 10];

delay();//10ms精准定时

}

 

int main()

{

int i;

int sec;

while(1)

{

sec = 15;//计数初始值

while(sec >= 0)

{

for(i = 0; i < 50; i++)

{

disp_digit(sec);//花费大约20ms

}//20ms*50=1000ms=1s

sec --;//显示组合数字减1

}

}

return 0;

}

肯定有和我一样好奇心强的朋友会问到, 这里提供的倒计时器是完全没有误差的吗(因为晶振提供的频率很准确), 答案是有的. 那么为什么会有误差呢: 


比如这里,


    TMOD = 0x01;

    TH0 = 0xd8;

    TL0 = 0xf0;//65536 - 10000 = 55536


    TF0 = 0;//置溢出标志位为0

    TR0 = 1;//开启定时器0


在开启定时器0前的诸多语句都是要耗费掉一定时间的, 只不过这时间量级较10ms来说不足以比较, 所以我们在短时间内是感受不到这误差的. 

推荐阅读

史海拾趣

Cynergy 3公司的发展小趣事

Cynergy 3注重企业的社会责任和文化建设。公司积极参与公益事业和环保活动,致力于为社会做出贡献。同时,Cynergy 3还注重员工的培养和发展,为员工提供良好的工作环境和福利待遇。这种注重社会责任和企业文化建设的做法使得Cynergy 3在行业中树立了良好的形象,也为公司的长期发展奠定了坚实的基础。

以上五个故事框架涵盖了Cynergy 3在电子行业中的发展历程、技术创新、国际化战略、客户需求驱动以及社会责任与企业文化等方面。每个框架都可以进一步扩展为完整的故事,详细描述Cynergy 3在不同阶段的发展情况和取得的成就。

Diamond SA公司的发展小趣事

在电子行业竞争日益激烈的背景下,Diamond SA公司开始寻求通过并购来实现规模扩张和资源整合。他们精心挑选了一些具有潜力的目标企业,通过谈判和交易成功完成了并购。这些并购不仅为Diamond SA公司带来了更多的技术资源和市场份额,还增强了公司的整体竞争力。

Electronicon Kondensatoren GmbH公司的发展小趣事

1992年,ELECTRONICON成立了卷绕电容器部门,并专注于该领域的研发与生产。该部门拥有238名员工,致力于为客户提供高品质的照明、电机和电力电容器产品。随着部门的不断发展壮大,ELECTRONICON在电容器领域的市场份额也得到了进一步提升。

ETRI公司的发展小趣事

随着人工智能的兴起,ETRI也将目光转向了这一领域。他们与首尔市政府合作,在首尔市The Seocho District区内安装了3000台AI摄像头,这些摄像头通过深度学习技术,能够预测犯罪发生的概率,并在必要时提醒警署采取行动。此外,他们还计划分析大量的法庭判决文件和犯罪录像,以优化AI软件的预测能力。

Electronic公司的发展小趣事

特斯拉,虽然是一家电动汽车公司,但其在电子行业的发展中也展现出了强大的跨界创新能力。特斯拉通过自主研发和生产电池、电机等核心零部件,成功将电动汽车的性能和品质提升到了新的高度。同时,特斯拉还积极探索自动驾驶、智能交通等前沿技术,不断推动电动汽车行业的变革和发展。特斯拉的跨界创新不仅颠覆了传统汽车行业的格局,也为电子行业带来了新的机遇和挑战。

请注意,以上故事框架仅供参考,具体细节和数据可能需要根据实际情况进行调整和补充。同时,由于篇幅限制,每个故事的字数可能无法满足500字以上的要求。

CONEC公司的发展小趣事

为了进一步提升公司的竞争力和市场影响力,CONEC开始了国际化布局。1990年,康耐加拿大公司的成立,标志着公司迈出了国际化的重要一步。随后,CONEC在德国、捷克共和国、美国和波兰等地设立分公司或生产基地,形成了全球性的生产和销售网络。同时,公司还积极寻求与全球领先的电子企业和技术机构的战略合作,共同推动电子行业的发展。

问答坊 | AI 解惑

紧急求教一个电路 很茫然

我只知道是三轴位置传感器接口电路 也不知道是不是 高手来讲解一下哈 谢谢…

查看全部问答>

触摸屏驱动采样请教

DdsiTouchPanelGetPoint(         TOUCH_PANEL_SAMPLE_FLAGS        *pTipStateFlags,         INT                      ...…

查看全部问答>

求助:CodeWarrior for ADS 1.2中编译出错

工程中,用ADS编译,出现了Errors: Could not find or load the file 襐IC.a?for target 褼ebugRel?for project 襱est1.mcp? Could not find or load the file 褻omm.a?for target 褼ebugRel?for project 襱est1.mcp? The following access p ...…

查看全部问答>

请问下PCI PCIE在配置空间的区别

如何通过读取判断机器是PCIE为还是PCI呢???…

查看全部问答>

MSP430F435学习板 超低价格出售 仅售100元

请登陆淘宝进行详细的细节查询 淘宝地址:      http://auction1.taobao.com/auction/0/item_detail-0db2-a975eaf6e989403d6987eeb2fde3c9d9.jhtml    欢迎购买. …

查看全部问答>

跪求 :用VB.Net 在Wince 平台下画一个点

小弟刚入道,就遇到棘手的问题,希望大家帮忙啊,谢谢! 问题如下 在Wince下 我在Form1中添加了一个PictureBox1,想在上面画个点,或者圆 结果发现连Paint()函数都没 ,郁闷;还有 CreatGraphic函数也没,该怎么办啊? 使用VB.net2005 谁能发个 ...…

查看全部问答>

实用型应急灯

    [ 本帖最后由 ddllxxrr 于 2010-8-24 10:49 编辑 ]…

查看全部问答>

《匠人手记》之新手三忌

1.第一忌 自己不动脑筋,一遇到问题就问别人有句话说的好“吃别人咀嚼过的馍不香”。对于新手来说,做每一件事都是一次学习的好机会。有时候,探索的过程比最终的结果更重要。当你经过自己的努力,解决问题时,成就感和自信心会随之逐渐建立。如果 ...…

查看全部问答>

wanghongyang我还惦记着那个3.5液晶

不知道准备的怎么样了?准备随时出手了:D…

查看全部问答>

今早用altium designer6.9画原理图时突然出现了这么一个问题··不得其解啊

就是我放置导线时··本来把我想要连接上的两个引脚端连上就可以了··可是呢··导线的终点却与多个引脚连到一起了··自动产生了很多我不想要连接上的节点··这是怎么回事呢?之前放导线的时候貌似没出现这情况··…

查看全部问答>