关于单片机做电子钟的问题

关于单片机做电子钟的问题,第1张

做电子时钟比较简单,Proteus里面可以仿真,建议先到里面仿真,仿真成功后再买元件来自己焊接,仿真时可以下一份电路图看看,如果感觉比较难的话,最好下一个写好的程序和仿真图看看。

仿真成功后,就要开始购买元件,需要元件大概如下,单片机最小系统(包括51 单片机芯片和插座,晶振,此片电容等),还有LCD1602,和一些基本的实验东西,如万用板,连接线,电源,电阻,电容等

焊接电路板,调试电路,这一步比较重要哦,

希望你能成功。。。。。。。。。。。。

这两个中断都可以用,用INT 1CH 更安全,这两个中断都是每隔54945MS中断一次,很简单你只要搞个分频系数(1000MS/54945)=18

即18次中断就是1S了。另外教你一个不用中断的方法,毕竟进入中断还要写中断服务程序

用BIOS中断读当前的计数值,程序如下:

MOV AH,0H

INT 1AH ;中断调用,读取日时钟

ADD DX,18

MOV BX,DX

REP: MOV AH,0H

INT 1AH

CMP DX,BX ;与目标值比较

JNZ REP ;不等,继续延时,往下走1S就

到了,如果程序中经常要延时1S可以做个宏

或子程序。

说明一下这是个BIOS调用,每隔55MS DX的值会自动加1,思路从上读取到最后一次读取是否超过了18次,这是非常管用的一种,可不用中断。

可以放一个中断程序到1C中断,这样会每秒182次被调用

里面放一个简单的显示程序,调用中断10,定位当时的鼠标位置,保存,然后可以到屏幕右上角显示当时的时间,时钟数据直接调用21中断取得电脑主机时间数据。

程序主体就是置换原有1C中断地址为新中断地址,记得保存原有中断地址,在新中断运行的时候调用一次原有中断。然后可以考虑驻留内存,或者是遇到中断按键后退出程序以便于调试

这个可以做到,如果晶振是12M的话,一下方法可以实现延时1小时,精确度在秒级别。

DELAY1H:

MOV R7,#180 ;1/1000000

DLY1H:

LCALL DELAY_20S ;18019960603s +2180

DJNZ R7,DLY1H ;2180/1000000

RET 2/1000000

共延时时间:35929s误差为71秒,如果再精确的话,再加一点延时就可以了。

DELAY_20S: ;Total=19960603s

MOV R2,# ;1

DLY1:

MOV R3,#200 ;1200

DLY2:

MOV R4,#248 ;1200200

DJNZ R4,$ ;2248200200

DJNZ R3,DLY2 ;2200200

DJNZ R2,DLY1 ;2200

RET ;2

以上就是关于关于单片机做电子钟的问题全部的内容,包括:关于单片机做电子钟的问题、在X86汇编语言中,怎样每隔一秒自动执行一段子程序、急需一份基于8086最小模式的汇编语言的数字钟,时间显示通过时间中断子程序实现,不用8086时钟频等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10628997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存