本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
我已经做了很多遍了但是还是做不好,在protues仿真不出来,希望那位高手可以给个程序。或者有空闲就帮帮小弟看一下我写的程序那里不对。
;P0作为显示屏输入口
;P1作为A/D数据输入口
;IN0作为AD输入口。
org 0000h
EOC bit P2.7
OE? bit P2.6
START bit P3.5
RS bit P3.0
RW bit P3.1
E bit P3.2
acall initial
main:
acall delay50ms
clr? START
nop
setb START
nop
clr? START
acall delay50ms
wait:
jnb EOC,wait
clr EOC
setb OE
mov???? A,P0
clr? OE
mov???? B,#64H
div???? AB
lcall?? data_convert
mov???? R3,A??????? ;得到百位
mov P0,#0cah;写入显示起始地址(第二行第10个位置)
acall enable
mov P0,R3
ljmp write
mov???? A,B
mov???? B,#0aH
div???? AB
lcall?? data_convert
mov???? R4,A???????? ;得到十位
mov P0,#0cbh;写入显示起始地址(第二行第11个位置)
acall enable
mov P0,R4
ljmp write
mov???? A,B
call?? data_convert
mov???? R5,A????????? ;得到个位
mov P0,#0cch;写入显示起始地址(第二行第12个位置)
acall enable
mov P0,R5
ljmp write
ljmp main
write:
setb RS
clr? RW
clr? E
acall delay
setb E
ret
enable:
clr RW
clr RS
clr E
acall delay
setb E
ret
delay:
MOV P0,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P0.7,DELAY
RET
data_convert:
add???? A,#0x30
ret
initial:
mov P0,#00000001b;清屏并光标复位
acall enable
mov P0,#00111000b;设置显示模式:8位2行5x7点阵
acall enable
mov P0,#00001100b;显示器开、光标开、光标不允许闪烁
acall enable
mov P0,#00000110b;文字不动,光标自动右移
acall enable
mov P0,#000h;写入显示起始地址(第一行第一个位置)
acall enable
mov P0,#01101001b;字母I的代码
acall write
mov P0,#01101100b;字母l的代码
acall write
mov P0,#01101100b;字母l的代码
acall write
mov P0,#01110101b;字母u的代码
acall write
mov P0,#01110011b;字母s的代码
acall write
mov P0,#01110100b;字母t的代码
acall write
mov P0,#01101001b;字母i的代码
acall write
mov P0,#01101111b;字母0的代码
acall write
mov P0,#01101110b;字母n的代码
acall write
mov P0,#00111010b;字符:的代码
acall write
mov P0,#00100000b;字符空格
acall write
mov P0,#00100000b;字符空格
acall write
mov P0,#00101000b;字符(
acall write
mov P0,#01101100b;字母l的代码
acall write
mov P0,#01111000b;字母x的代码
acall write
mov P0,#00101001b;字符)
acall write
ret
delay1s:
mov R6,#20h
djnz R6,delay50ms
ret
delay50ms:
mov R5,#11001000b
djnz R7,delay250us
ret
delay250us:
mov TMOD,#00000010b
mov TH0,#00h
mov TL0,#06h
setb TR0
ret
end
多谢多谢。感激感激。 |
|