急!!!求AT89S52单片机做99秒码表汇编程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:50:19
用的实验板如下图。P0口接段码。P2.3—P2.7接6位数码管。详细看下图。6位数码管从左到又依次显示分十位,分个位,秒十位,秒个位。99秒的分个位。一个按键复位,一个按键暂停在按下继续,一个按键暂停显示当前时间而时钟继续, 还要把第5个数码管的小数点弄掉。要用汇编语言的。尽可能做把,先把简单功能实现也行。下图是我们用的扳子。只用其中的数码管部分就可以了。可以看下。急需。如能实现在加100分。

下面的程序是59秒计数器的程序,是完全可以运行的,也是数码管实现的,你回去改改,应该好改的,思路是一样的。

sh_c equ 41h
g_c equ 42h
second equ 43h
dula bit P2.6;
wela bit P2.7;
mov second,#0
main:
mov a,second
cjne a,#60,loop1
mov second,#0;
loop1: mov a,second
mov b,#10
div ab

mov sh_c,a
mov g_c,b
mov 30h,#40h
loop: call display
djnz 30h,loop
inc second
ajmp main

delayxms:mov 52h,#4 ;50h,51h,52h用于延时 50h为参数x 延时1*x ms
delaya: mov 51h,#191
nop
nop
djnz 51h,$
djnz 52h,delaya
djnz 50h,delayxms
ret ;延时返回

display: ;显示程序
MOV DPTR,#TABLE
clr dula;
mov a,sh_c
MOVC a,@A+DPTR
mov p0,a ; ;显示十位
setb dula;
clr dula;

clr w