6MOVTH03CHTH0655365000025650MS延时MOVDPTRTABLE数据段地址SETBEA打开总中断SETBET0CLRTR0关闭定时器0SETBEX0启动外部中断0SETBIT0SETBEX1启动外部中断1SETBIT1LCALLDISPLOOPLCALLDISP调用显示函数SJMPLOOP死循环定时器中断函数T0INTMOVTH03CHMOVTL00B0HDJNZR0RTIMOVR02100msINC20HMOVA20H20H存放百毫秒CJNEA10RTIMOV20H00HINC21H21H存放秒MOVA21HCJNEA10RTIMOV21H00HINC22HMOVA22HCJNEA6RTIMOV22H00HCLRTR0MOV20H0
fMOV21H0MOV22H0RTIRETI外部中断0函数IINT0SETBTR0启动定时器0LCALLDISPSJMPT0INTRETI外部中断1函数IINT1CLRTR0关闭定时器0LCALLDISPRETI数码管显示函数DISPMOVA20H百毫秒位显示MOVCAADPTRMOVP0ASETBP27LCALLDELAYCLRP27MOVA21H个位显示MOVCAADPTRMOVP0ASETBP26CLRP07点亮小数点LCALLDELAYCLRP26MOVA22H十位显示MOVCAADPTRMOVP0ASETBP25LCALLDELAYCLRP25RET空延时函数DELAY误差0usMOVR601HDL0MOVR561HDJNZR5表示当前地址DJNZR6DL0RET
fTABLEDB0C0H0F9H0A4H0B0H99HDB92H82H0F8H80H90HEND
共阳极09显示代码
五、中断电路图
六、仿真结果
具体请参考本文件下的proteus仿真,打开本文件夹starpdsprj文件仿真就可以看到。
f七、心得体会本次作业的编程软件使用的是keil仿真软件用的是proteus。程序的详细解释已经镶嵌在程序注释里了。仿真的电路图是一个整体,没有分成部分解释,相信你照做做一定能做出来。仿真结果用的是一张图。要看到动态那就打开本文件夹starpdsprj文件仿真就可以看到。本实验没有进行中断的扩展,只用了两个外部中断。在实际的设计中可以进行中断的扩展。秒钟的设计还可以添加清零、保存当前计时和从当前计时继续计时等功能。这样的设计如同秒表设计都可以在本设计上做扩展。如果你有拍脑袋的想法,就必须进行有条例的测试和论证。
fr