|
楼主 |
发表于 2006-3-8 20:37:36
|
显示全部楼层
移植到89S51,只改动了一点点就可以了
$regfile = "89c51.dat"
$crystal = 12000000
Dim Zf As String * 16
Dim Zf1 As String * 1
Dim A0 As Word
Dim A1 As Byte
Dim Gs As Byte
Dim Rs As Bit
Dim I As Byte
Dim Ac As Byte
Ac = 0
Config Spi = Soft , Dout = P1.2 , Clk = P1.1 '模拟SPI协议
Spiinit
Waitms 100
Do
'-------------------RS=0 就是写指令,下面是指示LCD初始化-------------------------
Rs = 0
A0 = &B00110000 : Gosub Data_out : Waitms 10
A0 = &B00001100 : Gosub Data_out : Waitms 10
A0 = &B00000001 : Gosub Data_out : Waitms 10
A0 = &B00000110 : Gosub Data_out : Waitms 10
'---------------------------RS=1写数据,RS=0写指令-------------------------------
Rs = 0 : A0 = &H80 : Gosub Data_out '光标复位
Rs = 1 : Zf = " AVR单片机DIY" : Gosub Zf_out '显示字符
Rs = 0 : A0 = &H90 : Gosub Data_out '光标定位到第二行
Rs = 1 : Zf = Str(ac) : Gosub Zf_out '显示变量AC
Ac = Ac + 1
Waitms 1000
Loop
End
Zf_out:
Gs = Len(zf) '求字符"Zf"的个数
For I = 1 To Gs
Zf1 = Mid(zf , I , 1) '返回某一个字符
A0 = Asc(zf1) '把字符转变为国标GB标准代码
Gosub Data_out
Next
Return
Data_out: '判断输入的是指令还是数据,并且把它发送给LCD
If Rs = 1 Then A1 = &B11111010 Else A1 = &B11111000
Spiout A1 , 1
A1 = A0 And &B11110000
Spiout A1 , 1
A1 = A0 And &B00001111
A1 = A1 * 16
Spiout A1 , 1
Return
改动了2个部分
$regfile = "89c51.dat"
Config Spi = Soft , Dout = P1.2 , Clk = P1.1 |
|