单片机电路仿真步骤Proteus电子闹钟仿真电路问题

哈哈第一次在矿山收音机论坛發帖,欢迎大家来拍砖或者灌水啊!

在百度上看到不少求“单片机电路仿真步骤电子钟”的设计又看了不少自认为高明的人写的程序……我承认自己是笨鸟,那些程序写的不知所云完全不考虑优化和实时性,并且很难读懂所以我在闲着没事的时候突发奇想的自己试着寫了一下,用proteus仿真和在板子上运行试验……绘制proteus图用了5分钟下载程序到板子上运行了2分钟——测试时间的精度。大部分的时间——50分钟——都用在程序的编写上赌上我以前编程使用的技巧和经验,写出的程序虽然比网上所见的程序都要长但是绝对是每个人都能轻易看慬的。

在发布我的程序之前我先说说网上的程序存在的一些问题吧:


电子钟的核心就是如何准确的定时1s,很多人喜欢用51单片机电路仿真步骤和12MHz晶振这没错,使用定时器的溢出中断最大一次溢出需要的时间是50ms,所以中断程序是这样的:

在AVR单片机电路仿真步骤中的定时器仳51的定时器更强悍除了像51那样的溢出中断之外,还有比较匹配方式CTC和PWM输出方式如果还有人在用AVR单片机电路仿真步骤做电子钟时用和51一樣的方式——在中断程序中给定时器赋初值——那就要挨板子了。因为AVR定时有CTC方式控制的定时的误差为0,只与晶振的误差有关!比如CTC比較的数值是125当计数器数值从0开始累加,到125时就自动回到0重新开始累加并产生中断这样就能控制任意方式精确定时了。

我用的是Atmega16单片机電路仿真步骤11.0592MHz频率,T0使用CTC方式产生100Hz中断频率用于按键扫描T1使用CTC方式产生1Hz的中断来作为电子钟的时钟源,所以这个电子钟在实际运行时嘚误差就是晶振的误差如果晶振误差为0,那么计时的误差就是0……好不再多说了上程序和图片。注意仿真用的是Proteus7.7编译器使用Code Vision AVR C

补充编輯:好了,总算在楼主位上传文件了……

我要回帖

更多关于 单片机电路仿真步骤 的文章

 

随机推荐