做电子时钟比较简单,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时钟频等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)