论坛风格切换切换到宽版
  • 63282阅读
  • 338回复

GPS OEM板+单片机+液晶显示 [复制链接]

上一主题 下一主题
离线ding
发帖
3484
只看该作者 40楼 发表于: 2006-12-04
enable: 这行什么意思(改回)
clr rs
clr rw
clr e
acall delay
setb e
ret


这行本来没有的,我加上去的......
前面有要调用些子程序的....
是不是,把这几句删了.????
离线bd7rf
发帖
10148
只看该作者 41楼 发表于: 2006-12-04
'
enable: 这行什么意思(改回)
clr rs
clr rw
clr e
acall delay
setb e
ret
这行本来没有的,我加上去的......
前面有要调用些子程序的....
是不是,把这几句删了.????
'
不是没有,是排版搭到前面去了.这是液晶显示的执行程序,没送一个数据到液晶,都得进行对液晶的读写.
我把前面的程序重新贴了,你把出口改一下.能在你的片上运行就随便你改了.祝你成功!
离线BG4UVR
发帖
11209
只看该作者 42楼 发表于: 2006-12-05
单位用很多4004,但我自己从来没用过。于是,试着写了一个通用驱动,打算用来显示gps信息。看上去,效果很好。

由于没带相机,所以用扫描仪扫的,由于没开背光,扫出来是又模糊又暗,调整了一下对比度,发上来让大家看看效果。

:d :d
离线ding
发帖
3484
只看该作者 43楼 发表于: 2006-12-05
'
单位用很多4004,但我自己从来没用过。于是,试着写了一个通用驱动,打算用来显示gps信息。看上去,效果很好。
由于没带相机,所以用扫描仪扫的,由于没开背光,扫出来是又模糊又暗,调整了一下对比度,发上来让大家看看效果。
:d :d
'
这个我估计比较贵................................
要是送我一个的话可以考虑玩
离线bd7rf
发帖
10148
只看该作者 44楼 发表于: 2006-12-06
'
这个我估计比较贵................................
要是送我一个的话可以考虑玩
'
是啊,能不能每人送一个
离线BG4UVR
发帖
11209
只看该作者 45楼 发表于: 2006-12-06
一块要100几十块钱,送不起啊 :d
离线ding
发帖
3484
只看该作者 46楼 发表于: 2006-12-06
'
是啊,能不能每人送一个 [表情]
'
你的那个,,,我编译通过了.但是还是没有显示我....晕大了...........
离线bd7rf
发帖
10148
只看该作者 47楼 发表于: 2006-12-06
'
你的那个,,,我编译通过了.但是还是没有显示我....晕大了...........
'
我在我的片上试过的,你把其他的都去掉,留显示部分试试.还有确认rs,rw,e没接错.
离线BG5CEI
发帖
32
只看该作者 48楼 发表于: 2006-12-10
39楼的程序我调试通过了,不过有一点小问题,那就是晶体为11.0592mhz的时候,时间常数应该是mov th1,#0fah mov tl1,#0fah,而不是0fd,否则单片机会出现无法通信,表现为屏幕始终显示no signal 而经纬度信息不能显示
离线bd7rf
发帖
10148
只看该作者 49楼 发表于: 2006-12-10
'
39楼的程序我调试通过了,不过有一点小问题,那就是晶体为11.0592mhz的时候,时间常数应该是mov th1,#0fah mov tl1,#0fah,而不是0fd,否则单片机会出现无法通信,表现为屏幕始终显示no signal 而经纬度信息不能显示
'
对的,我说的有误 我用的是22.1184的.
再改进一下,可以在断开信号时显示nosignal.
离线BD7LM
发帖
1367
只看该作者 50楼 发表于: 2006-12-10
可以同时显示呼号,时间,经纬度,速度,方向,高度,卫星数目,温度和距离等.
离线BG4UVR
发帖
11209
只看该作者 51楼 发表于: 2006-12-10
'
对的,我说的有误 [表情] 我用的是22.1184的.
再改进一下,可以在断开信号时显示nosignal.
'

我和bg4uvy用的是完全相同的实验板。我也试过你的程序,和bg4uvy的情况完全相同。我们的实验板是数据线接在p0口,三条控制线接在p2口。我用11.0592的晶振,程序中相应的端口和定时器预装值已改好。具体表现为,通电后,1602第一行显示一排0xff黑块。

我没仔细看你的程序,因为asm可读性不太好。不过我怀疑可能是你的程序对1602有特定的要求(上电时间复位时间等),所以兼容性差了。
离线BG4UVR
发帖
11209
只看该作者 52楼 发表于: 2006-12-10
'
可以同时显示呼号,时间,经纬度,速度,方向,高度,卫星数目,温度和距离等.
'

很久以前就看过您的网站了,您是我的偶像
离线BD7LM
发帖
1367
只看该作者 53楼 发表于: 2006-12-10
'
很久以前就看过您的网站了,您是我的偶像 [表情]
'

不会吧!我现在还要向你们学习,学习,再学习啊! 互相交流一下啦!
离线bd7rf
发帖
10148
只看该作者 54楼 发表于: 2006-12-10
'
可以同时显示呼号,时间,经纬度,速度,方向,高度,卫星数目,温度和距离等.
'
那是我等初哥的奋斗目标
离线bd7rf
发帖
10148
只看该作者 55楼 发表于: 2006-12-10
'
我和bg4uvy用的是完全相同的实验板。我也试过你的程序,和bg4uvy的情况完全相同。我们的实验板是数据线接在p0口,三条控制线接在p2口。我用11.0592的晶振,程序中相应的端口和定时器预装值已改好。具体表现为,通电后,1602第一行显示一排0xff黑块。
我没仔细看你的程序,因为asm可读性不太好。不过我怀疑可能是你的程序对1602有特定的要求(上电时间复位时间等),所以兼容性差了。
'
我也不知道怎么回事,我得多加点延迟才能清屏。所以用了两句enable.
离线BG4UVR
发帖
11209
只看该作者 56楼 发表于: 2006-12-10
'
我也不知道怎么回事,我得多加点延迟才能清屏。所以用了两句enable.
'

刚才仔细找了一下原因。ok了。

主要问题是,可能你用的不是keil的编译器来编译的。因为我用keil仿真,一下子发现编译成功后,这程序竟然没有实际代码!原来,你的org 100h,不合ibm的a51宏编译器要求。我在最前面,加了两句,这样就ok了:

  1. org 0h
  2. jmp 100h
  3. org 100h
  4. 你原来的程序


这样虽然能运行,显示“no signal”了,但我发现它很不稳定。表现在,开电10次,只有2、3次能正常显示“no singal”,其他次数全是显示乱码。又研究了一下你的程序,发现你的上电初始化过程相当简单,没有按照厂家的初始化过程来写。

我改了一下,改成这样:

  1. org 00100h
  2. call delay1
  3. mov p0,#38h
  4. acall enable
  5. mov p0,#38h
  6. acall enable
  7. mov p0,#38h
  8. acall enable
  9. mov p0,#8h
  10. acall enable
  11. mov p0,#1h
  12. acall enable
  13. mov p0,#6h
  14. acall enable
  15. mov p0,#0ch
  16. acall enable


然后把你的enable1子程序也删除了,重新编译,写入芯片,完全ok了,开电多少数显示都是正常的,再也没见到乱码的情况出现。

现在我从pc的串口向单片机以9600波特率发送“$gprmc,123633.00,a,3153.3838,n,12110.3691,e”,1602会显示:

  1. ,a,3153.3 123633
  2. n,12110,3


btw:上面的坐标是我家,别扔炸弹
离线bd7rf
发帖
10148
只看该作者 57楼 发表于: 2006-12-10
楼上的果然高手.我搞不懂为什么,我在仿真和烧到片上都可以正常显示.用keil2.12.
我加了些东西,在拿开输入后显示转回无信号显示. 试试看,给些建议.

在读数据过程中判断有无信号
rec:
jb ri,goout
inc r2
cjne r2,#255,rec
mov r2,#0h
inc r3
cjne r3,#255,rec
mov r3,#0h
inc r4
cjne r4,#5,rec
mov r4,#0h
call nosignal
jmp wait
goout:
clr ri
mov r2,#0h
mov r3,#0h
mov r4,#0h
mov r5,#0h
mov a,sbuf
ret
离线BG4UVR
发帖
11209
只看该作者 58楼 发表于: 2006-12-10
'
楼上的果然高手.我搞不懂为什么,我在仿真和烧到片上都可以正常显示.用keil2.12.
我加了些东西,在拿开输入后显示转回无信号显示. 试试看,给些建议.
在读数据过程中判断有无信号
rec:
jb ri,goout
……
mov r5,#0h
mov a,sbuf
ret
'

没看到wait子程序。

另外从显示出来的状态看,你的程序应该是按位判断的,于是才显示出我上面写的那样。不同的gps,输出的数据的位数可能不完全一样,像我的gps,秒就输出到0.01秒。所以按位判断不准确,最好按逗号的个数来判断,就不会出现显示错乱的情况了。
离线bd7rf
发帖
10148
只看该作者 59楼 发表于: 2006-12-10
'
没看到wait子程序
'

call nosignal
改成
wait:
call nosignal
jnb ri,$