微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机之秒表汇编程序

单片机之秒表汇编程序

时间:10-20 来源:互联网 点击:
此程序上电后开始显示并不正常,过一会才正常,按键似乎并没有用,希望能明白怎么回事

频率12mhz ,从零开始计到99秒,原理为先通过十六进制和十进制的转换后使用变址寻址把数据

显示出来,十位和各位共延时4毫秒,如果有按键按下计数从零开始

DIZHI  EQU 21H    ;用于中间的数据传送COUNT  EQU 22H    ;用于计数器的自加ORG    0000HJMP    STARTORG    0030HTAB:   DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H  ;共阳极代码START:  CLR    COUNTWORK1:  CALL   DISPY         ;十六进制的转换,输出代码显示INC    COUNTJNB     P2.0 , FUYUAN ;s4按下从零开始计数MOV    A  ,COUNTCJNE   A  ,#100 ,WORK2CLR    COUNTCALL   STARTWORK2:   LJMP   WORK1DISPY:  MOV    A  ,COUNTMOV    B ,#10div    ABMOV    R1 ,#250    ;寄存器计数250次,一次4毫秒MOV    DIZHI  ,ADISP: MOV    A      ,DIZHI ;数据的中间交换MOV    DPTR  ,#TABMOVC    A   ,@ A+DPTR;变址寻址MOV    P0  ,A       ;P0为段选CLR     P2.5         ;P2位选,显示十位CALL    DELSETB    P2.5MOV     A   ,BMOVC    A  , @A+DPTRMOV     P0 ,A        ;显示个位CLR      P2.4CALL    DELSETB    P2.4DJNZ    R1  ,DISPRETFUYUAN:CALL    DELMOV      P0  ,#11111111BMOV      P2 ,#11111111BLJMP    START   ;从零开始DEL:   MOV     R6 ,#4F1:   MOV     R7, #250    ;延时两个毫秒F2:   DJNZ     R7 ,F2DJNZ     R6 ,F1RETEND

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top