一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: pla155
收起左侧

[碳纤维发热管DIY] 试玩“万向航星”

[复制链接]
 楼主| 发表于 2016-3-25 20:30 | 显示全部楼层
本帖最后由 pla155 于 2018-9-8 20:38 编辑

闲来无事,逆向了一下源程序。
下面是串行口的初始化代码。

Q1F6D:             MOV   SCON,#50H                    ;1F6D   75 98 50
                   ORL   TMOD,#20H                    ;1F70   43 89 20
                   ORL   PCON,#80H                    ;1F73   43 87 80
                   MOV   TH1,#0FFH                    ;1F76   75 8D FF
                   ORL   IE,#90H                      ;1F79   43 A8 90
                   SETB  TR1                          ;1F7C  D2 8E
                   CLR   TI                           ;1F7E   C2 99
                   CLR   21H.4                        ;1F80   C2 0C
                   RET                                ;1F82   22


RS232@115200.png
 楼主| 发表于 2019-8-21 12:39 | 显示全部楼层
今天也来换个低压的MCU
换U.jpg

屏幕电压降低后,需要在硬件上改动,去掉屏幕背面的两个表贴玻璃二极管,短接后就可以。
软件上也要修改,
下面是初始化代码:
//=============================================================================
LCM_Init:
                                ORL                AUXR                , #00000010B

                                MOV                A                        , #0E2H
                                ACALL        LCM_CMD                                          //RESET LCM

                                ACALL        Delay100ms

                                MOV                A                        , #0A2H                  //ICON DISABLE
                                ACALL        LCM_CMD

                                MOV                A                        , #048H                  //set display duty
                                ACALL        LCM_CMD
                                MOV                A                        , #080H                  
                                ACALL        LCM_CMD

                                MOV                A                        , #0A0H                  //set ADC:NORMAL SEG扫描方向 A0/A0
                                ACALL        LCM_CMD                                          // 从上向下

                                MOV                A                        , #0C0H                  //set SHL:NORMAL COM扫描方向 C0/C8
                                ACALL        LCM_CMD                                          // 从左向右

                                MOV                A                        , #044H                  //set COM0
                                ACALL        LCM_CMD
                                MOV                A                        , #000H
                                ACALL        LCM_CMD

                                MOV                A                        , #040H                  //set start line
                                ACALL        LCM_CMD
                                MOV                A                        , #000H
                                ACALL        LCM_CMD

                                MOV                A                        , #0ABH                  //start oscillator
                                ACALL        LCM_CMD

                                MOV                A                        , #065H                  //DC-DC boost 4 times
                                ACALL        LCM_CMD

                                MOV                A                        , #027H                  ///set regulator resistor:7.2
                                ACALL        LCM_CMD

                                MOV                A                        , #081H                  //set EV
                                ACALL        LCM_CMD                  
                                MOV                A                        , #020H                  // 0-63
                                ACALL        LCM_CMD

                                MOV                A                        , #054H                  //set LCD bias resistor 1/12
                                ACALL        LCM_CMD

                                MOV                A                        , #093H                  //set  FRC PWM:3FRC , 15PWM
                                ACALL        LCM_CMD
                                /***********************************************/
                                MOV                A                        , #02CH                 //power control, open VC
                                ACALL        LCM_CMD
                                ACALL        Delay100ms
                                MOV                A                        , #02EH                 //open VR
                                ACALL        LCM_CMD
                                ACALL        Delay100ms
                                MOV                A                        , #02FH                 //open VF
                                ACALL        LCM_CMD
                                ACALL        Delay100ms

                                MOV                A                        , #04CH                 //set N-line inv: 0
                                ACALL        LCM_CMD
                                MOV                A                        , #000H
                                ACALL        LCM_CMD
                                ACALL        Delay100ms

                                MOV                A                        , #0AFH                 //display ON
                                ACALL        LCM_CMD

                                SETB        LCM_CE
                                SETB        LCM_RS
                                RET


 楼主| 发表于 2019-8-21 12:48 | 显示全部楼层
无标题.png

这是个很大的问题。
没有PSEN信号,将不能读取外部字库芯片的数据。
特别的,当DPTR超出了单片机CODE的寻址范围0x03FFF后,程序似乎飞掉了。
或许是进入了错误中断,现象是重新启动了。


另外,如果是把LCM当做 xRAM 操作,也就是使用 MOVX @Rn , n 赋值方式的,
一定要注意加上        ORL                AUXR                , #00000010B 语句,屏蔽掉内部的扩展1K字节RAM。
不然,就需要采用模拟总线时序的方式了。
 楼主| 发表于 2019-8-21 12:50 | 显示全部楼层
除了MAX232芯片拆除了以外,其他的74LS373、SST39SF020、IS62C256都工作的挺好。

原装的AT89S52是8K程序,最低电压4V。
测试了一下,确实不能工作在3.3V , 很遗憾。
 楼主| 发表于 2019-8-21 13:00 | 显示全部楼层
换U的目的,是看中了这个板子既有键盘,滚轮,显示屏,还有一块不小的外挂RAM.
如果要使用外挂的ROM,确实还要修改一点硬件。

打算用它做平台,学习一下GPS协议和nRF2401A.

利用这个板子的串口,接上GPS模块,可以实现码表功能。

好多年前,安鑫那里买的遥控器有这个模块。
只是2401和24L01区别很大。
24L01是SPI接口,方便,功能也强,可以自动应答,自动重发。

有了这两个模块,最终实现使用GPS时间进行短距离无线授时、测室外温度等功能。

这个壳子的空间还是可以的,
只是电池可能容量不能选太大的了。
外接太阳能板就好。
 楼主| 发表于 2019-9-1 20:03 | 显示全部楼层
本帖最后由 pla155 于 2019-9-1 20:12 编辑

先做一下nRF2401A的设置界面。

微信图片_20190901195358.jpg

微信图片_20190901195352.jpg


这个滚轮不太会用,
每一次滚动,都会给出3次脉冲。
如果采样速度太快,还会有“毛刺”。


 楼主| 发表于 2024-3-29 13:54 | 显示全部楼层
闲来无事,在画一版SCH
万向航星 逆向电路图_2024-03-29.pdf (470.09 KB, 下载次数: 0, 售价: 1 人民币)

附件是收费的,图片是免费的,和附件内容一样。
截图202403291353113344.png

 楼主| 发表于 2024-3-29 13:55 | 显示全部楼层
本帖最后由 pla155 于 2024-3-29 14:06 编辑

再回答一个2016年困惑的问题,
就是当时没搞明白他的RON字库怎样才能不和内部ROM冲突;
也就是当年没明白,怎样才能读出来SST29SF020里面地址低8K的内容。

仔细看,SST29SF020没有使用地址线A15 ,而是增加了另外的三根控制线(P3.5 P1.0 P1.1)做地址信号,管理页面选择;
这样做,就可以把原来是低地址的8K内容直接映射到A15 = 1 的高端地址空间里去。

软件上,
之前读取ROM
用指令         MOVC  A , (0X02000+Addr) ,

现在可以是  MOVC  A , (0X08000+Addr)
从而避免地址重叠,共计8块空间的低8K数据可以完整的读出。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-20 12:56 , Processed in 0.050858 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表