标题: 基于51单片机数字频率计课程设计程序代码 [打印本页]
作者: 黑嘿i 时间: 2017-10-23 10:27
标题: 基于51单片机数字频率计课程设计程序代码
RS BIT P2.0 ;P3.4脚接RS端
RW BIT P2.1 ;P3.5脚接R_W端
E BIT P2.2 ;P3.3脚接E端
ORG 0000H
LJMP MAIN
ORG 002BH
LJMP IT1
MAIN:
MOV P0,#01H ;清除屏幕
ACALL ENABLE
MOV P0,#01H ;清除屏幕
ACALL ENABLE
MOV P0,#01H ;清除屏幕
ACALL ENABLE
MOV P0,#38H ;8位点阵方式
ACALL ENABLE
MOV P0,#0cH ;开显示
ACALL ENABLE
MOV P0,#06H ;移动光标
ACALL ENABLE
MOV P0,#80H ;显示位置
ACALL ENABLE
mov p0,#80h ;第一行的位置
call enable
mov dptr,#date
call write3
mov p0,#0c0h ;第二行的位置
call enable
MOV SP,#7FH
CLR CY
mov r6,#00
mov r2,#00
MOV R3,#00
MOV TMOD,#15H
MOV TL0,#00H
MOV TH0,#00H
mov th1,#high(65536-50000)
mov tl1,#low(65536-50000) ;setb ET1
cha1: SETB TR1 ;LCALL XIANSHI
SETB TR0
mov 27h,#00h
CLR C
MOV C,P1.6
MOV 27H.0,C
CLR C
MOV C,P1.7
MOV 27H.1,C
mov a,27h
ANL A,#03H
MOV 17H,A
CHA: JBC TF1,JINWEI ;益处进位
JMP CHA
JINWEI:CLR TR1
mov th1,#high(65536-50000)
mov tl1,#low(65536-50000)
SETB TR1
INC R3
MOV A,R3 ;JNB P3.2,$
CJNE A,#20,CHA
CLR TR0
CLR TR1
MOV R3,#00
MOV R2,TH0
MOV R6,TL0
lcall zhuan
LCALL write1
MOV TL0,#00H
MOV TH0,#00H
jmp cha1
ZHUAN:
MOV A,R2
CLR C
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV 24H,#00H
MOV 25H,#00H
MOV R3,#10H
NEXT: RLC A
MOV R2,A
MOV A,20H
ADDC A,20H
DA A
MOV 20H,A
MOV A,21H
ADDC A,21H
DA A
MOV 21H,A
MOV A,22H
ADDC A,22H
DA A
MOV 22H,A
MOV A,R2
DJNZ R3,NEXT
MOV A,R6
clr c
MOV R3,#08H
NEXT1: RLC A
MOV R6,A
MOV A,24H
ADDC A,24H
DA A
MOV 24H,A
MOV A,25H
ADDC A,25H
DA A
MOV 25H,A
mov a,r6
DJNZ R3,NEXT1
clr c
mov a,24h
addc a,20h
da a
mov 20h,a
mov a,25h
addc a,21h
da a
mov 21h,a
mov a,22h
addc a,#00h
da a
mov 22h,a
mov a,22h
anl a,#0fh
mov 31h,a
mov a,22h
anl a,#0f0h
swap a
mov 30h,a
mov a,21h
anl a,#0f0h
swap a
mov 32h,a
mov a,21h
anl a,#0fh
mov 33h,a
mov a,20h
anl a,#0f0h
swap a
mov 34h,a
mov a,20h
anl a,#0fh
mov 35h,a
ret
;**************
;LCD显示
;**************
ENABLE:
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
write1: ;写数据
MOV 10H,#00H
MOV 11H,#00H
MOV 12H,#00H
MOV 13H,#00H
MOV 14H,#00H
MOV 15H,#00H
MOV 16H,#00H
mov p0,#0ch
call enable
mov p0,#0c0h ;第二行的位置
call enable
MOV A,17H
XRL A,#02H
JNZ XIAN1
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,#00H
MOV 43H,30H
MOV 44H,31H
MOV 45H,32H
JMP XIAN
XIAN1:MOV A,17H
XRL A,#01H
JNZ XIAN2
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,30H
MOV 43H,31H
MOV 44H,32H
MOV 45H,33H
JMP XIAN
XIAN2:MOV A,17H
XRL A,#00H
JNZ XIAN3
MOV 40H,#00H
MOV 41H,30H
MOV 42H,31H
MOV 43H,32H
MOV 44H,33H
MOV 45H,34H
JMP XIAN
XIAN3:MOV A,17H
XRL A,#03H
JNZ XIAN
MOV 40H,30H
MOV 41H,31H
MOV 42H,32H
MOV 43H,33H
MOV 44H,34H
MOV 45H,35H
XIAN:mov r0,#40h
mov a, @r0
JZ L20
MOV 10H,#0FFH
MOV 15H,#0FFH
mov dptr,#date1
movc a,@a+dptr
call write2
L20:INC R0
MOV A, 10H
CJNE A, #00H,PP
mov a, @r0
JZ L21
PP: MOV 11H,#0FFH
MOV 15H,#0FFH
mov a, @r0
mov dptr,#date1
movc a,@a+dptr
call write2
L21:INC R0
MOV A, 11H
CJNE A, #00H,PP2
mov a, @r0
JZ L22
PP2: MOV 12H,#0FFH
MOV 15H,#0FFH
mov a, @r0
mov dptr,#date1
movc a,@a+dptr
call write2
MOV A, 15H
CJNE A,#0FFH,L22
MOV A,#00H
mov dptr,#XIAOSHUDIAN
movc a,@a+dptr
call write2
L22:
INC R0
MOV A, 12H
CJNE A, #00H,PP3
mov a, @r0
JZ L23
PP3: MOV 13H,#0FFH
mov a, @r0
mov dptr,#date1
movc a,@a+dptr
call write2
L23:INC R0
MOV A, 13H
CJNE A, #00H,PP4
mov a, @r0
JZ L24
PP4: MOV 14H,#0FFH
mov a, @r0
mov dptr,#date1
movc a,@a+dptr
call write2
L24:INC R0
mov a, @r0
mov dptr,#date1
movc a,@a+dptr
call write2
MOV A,15H
CJNE A, #00H,KHZ
MOV A,#00H
MOV dptr,#DANWEI1
JMP QUSHU
KHZ:MOV dptr,#DANWEI2
QUSHU:movc a,@a+dptr
call write3
mov r5,#4
l3:mov a,#20h
call write2
djnz r5,l3
ret
write2:
mov p0, a
setb rs
CLR rw
clr e
call delay
setb e
ret
write3: mov r1,#00h ;写数据
a2: mov a, r1
movc a, @a+dptr
call write2
inc r1
cjne a,#00h,a2
ret
delay:
mov r7, #255
d1: mov r6, #255
d2: djnz r6, d2
djnz r7, d1
ret
date: db "the frequency is",00h
date1: db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
DANWEI1: DB "HZ ",00h
DANWEI2: DB "KHZ ",00h
XIAOSHUDIAN: DB ".",00h
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |