|
本帖最后由 杨生69366 于 2022-9-18 14:47 编辑
PC-1500“麻雀虽小五脏俱全”,自带键盘显示屏电池的可BASIC带汇编语言的小巧便携超低功耗全键盘液晶显示屏内存可EROM/RAM转换的八位袖珍计算机。由于比较熟悉PC-1500,但是不懂物联网技术,为了入门所以采取了PC-1500古董机为自己入门学习端口了。初学者看了就不要入坑这个古董倒退了。“听人劝吃饱饭”,其实我已经进阶树莓派了。
这里先发布前期分段测试阶段采用洞洞板做实验学习,对于PC-1500古董电脑与烂大街的ESP8266-01S的电路设计连接和AT指令设置编程,实现与电脑,手机的WIFI通讯等详细说明。
电路图分享:
这张图是洞洞板的电路图,一片82C51芯片单串口的测试电路图,后面发布的BASIC调试程序是相对应这张电路图的:
下面这张电路图是三片82C51芯片采用叠加安装的多功能三串口PCB板完成电路图,后面发布的BASIC测试程序片选等不能通用:
大概分四部分介绍PC-1500如何设计调试实验的。
一,涉及电路图构思设计,测试阶段先洞洞板安装焊线,我不太喜欢用面包板。最初设计只是个人好玩,采用洞洞板铜丝布线焊接安装一个8251串口加ESP-01S模块(简称8266模块)和一个2.8寸串口彩屏,设法将洞洞实验板和串口屏等全部装入PC-1500的主机不大的空间内装机自用了。因为想把8251芯片和ESP-01S电路板直接放入PC1500内部作为固定常备功能使用,就等于PC-1500主机自带具备了无线通讯WIFI联网功能,也不需要引出RS232口和其它引线了,但PC-1500内部空间无法安装带有集成电路插座增加了厚度,这样也就不方便调试更换集成块了,来个不怕麻烦自制IC插座,竟然可以让集成电路在板子上厚度等于或者小于没有安装IC插座的厚度,实现了IC安装具有可拆卸,接触可靠又没有增加一点厚度。看图:
再发一个通用PCB板的自制万能插头插座小窍门:
二,8266模块+USB模块与电脑串口助手与电脑网络助手调试。
8266模块出厂设置在115200,8266模块先通过USB模块连接在电脑USB端口,在电脑串口调试助手也设置同样115200,才可以接通8266,在ESP8266与电脑连接调试成功后,在连接由PC-1500物联网开发板代替上位机电脑之前,必须进行对ESP8266的波特率进行修改为与PC-1500物联网开发板的波特率一致,电脑的修改指令是要给ESP8266发送AT指令:AT+UART=19200,8,0,0,一旦发送完毕,如果仍需要继续调试就要把电脑串口调试助手的波特率栏的波特率选择为19200。这样,再取下ESP-8266模块安装到PC-1500开发板相应位置,就可以19200波特率与PC-1500进行串口通讯了。
测试洞洞板电路选择有源晶振4.9152,(新PCB板三串口方案采用2.4576M,可以节省一个HC393分频芯片),经过洞洞板方案测试,PC-1500的8251主板串口通讯波特率可以使用 9600,19200,38400,甚至76800。实验阶段相对快速不慢又可靠,后面调试就选用了波特率19200。由于8266模块出厂设置在115200,所以电脑的“安信可串口调试助手”也要设置为115200波特率,8266模块先插在这个USB模块上,再插入电脑的USB,才可以接通8266,在115200艾波特率进行AT命令调试,以及进行波特率修改,修改指令是:AT+UART=19200,8,0,0,输入了这个指令,就需要马上对电脑调试助手的波特率进行修改为19200,就可以继续运行。
网购几元钱的ESP8266-01S模块(ESP模块)和配它的串口转USB接电脑调试的模块(USB模块)。这可以是一个被数码界好评又烂大街的由爱信可出品的WIFI模块。
首先需要三个软件下载:电脑下载“安信可串口调试助手”,一款名为“NetAssist”的电脑网络调试助手,再下载手机APP“有人网络助手”。进行这个串口USB模块与电脑串口助手调试。
新买的wifi模块,要想在PC-1500或者51单片机上使用,就要将波特率设的比较低,那么在使用AT+UART=19200,8,1,0,0命令的时候,一旦将最后第二个数据改了,那么串口调试软件上也要相应的更改校验方式,不然,下面的命令全部无用。
电脑下载二个软件1:“安信可串口调试助手”V1.2.3.0,和2:“NetAssist”V5.0.3,手机下载3:“有人网络助手”。电脑的串口助手和网络助手二个软件调试接通比较容易,一二天就可以调通了,而8266连手机用了三四天,最后是下载“有人网络助手”才最好用。
安信可串口调试助手:
AT+CWMODE=3
AT+RST
AT+SAP="TEST","123456789",11,0
AT+CIPMODE=1
AT+CIPMUX=0
AT+CIPSEND
就可以实现8266通过安信可串口调试助手通讯了。
需要注意,在用电脑串口调试助手与STP8266模块发送AT指令,每发一个AT指令都需要等待执行一会儿,大概也要500毫秒左右时间。在编程已经考虑到这个问题,BASIC语言编程等待命令是WAIT**和PRINT二个语句配合。
四,PC1500+8251模块与USB模块与电脑串口助手调试视频
五,PC1500+8251+ESP模块与电脑和手机进行WIFI无线联网调试
经过前面几个回合的调试,都通过的,就进行最后最关键的,也是最激动人心的调试。
经过以上调试通过,不需要USB模块有线连接,调试发送接收线路了。可以直接PC1500的8251模块输出线的四根线,+3.3V电源线,地线,另外二根线发送端TXD,接收端RXD必须交叉与ESP模块的同样二根TXD,RXD连接,而与USB连接时不需要交叉。当然也可以不通过上面的调试,直接进行这样的调试
PC-1500+8251模块与“NetAssist”电脑网络调试助手无线联网通讯:
实验PC-1500+8251模块与电脑无线联网发送数据:
1,打开电脑和WLAN,也就是家中路由器WIFI无线网络
2,打开8251模块电源和PC-1500的开机on键
3,按PC-1500的右侧MODE键,屏幕显示RUN状态时,分别按一下DEF “F”这二个键,再按一个ENTER回车
PC-1500屏幕显示:
AT
AT+CWMODE=3 设置AP热点模式+STATION模式。
AT+RST 重启
AT+CWSAP=“TEST”,“123456789”,11,0 设置热点属性
这里程序暂停运行,等待你去设置电脑AP热点,在电脑网络设置可以看到热点“TEST”出现,点击加入连接,输入密码123456789。
再打开电脑“NetAssist”电脑网络调试助手,按照下图步骤设置好。
在(1)协议类型,选TCP Server。
在(2)本地主机地址,选192.168.4.2。
在(3)本地主机端口,选8080,然后选“打开”。
4,按PC-1500的ENTER回车键继续运行程序,屏幕显示:
AT+CIPMODE=1 透传
AT+CIPMUX=1 多路传输
AT+CIPSTART="TCP","192.168.4.2",8080 等待与服务器建立TCP连接,这时电脑网络调试助手有显示:
[Client 192.168.14.1:20124 gets online] 表示连接成功。
再按PC-1500的ENTER回车键将继续运行,PC-1500屏幕显示:
AT+CIPSEND 表示后面就是开始“透明”传输了。
这时PC-1500屏幕和手机网络助手屏幕同时显示“HELLO”以及开始显示某个内存地址开头到结尾的数据内容(这里就是存放该BASIC程序的地址所包含的16进制数据内容),以ASC码形式显示从PC-1500端发送到电脑网络调试助手,并且在PC-1500和电脑端几乎同时比较快速地显示出来。
如果需要终止传输可以按键PC-1500的on键中断。
不然就等待直到数据传输结束(在PC-1500程序的510语句是传输数据的起始地址,2000H-285AH,正好就是本BASIC语言编制的程序所在的地址。也就是说,很容易地把程序以16进制数值转出来存放到了电脑上了。意义不仅仅是取代了PC-1500磁带机了。作为演示和实验,传输速度不算快,而实际传输速度也是可以快得多的。
实验PC-1500+8251模块与电脑无线联网接收来自电脑网络助手的数据:
前面执行的步骤基本同上,所以最好在前面运行执行PC-1500发送的数据给电脑网络助手正常接收显示期间,按PC-1500的on键中断BASIC程序的执行,然后按DEF再按F键,就执行接收程序,PC-1500屏幕显示:
RECEIVE DATA FROM PC:
这时候在电脑网络调试助手的数据发送端输入数字和字母,就会同时在PC-1500接收并且被屏幕显示了。
具体PC-1500的面板键盘操作如下:
1,准备好手机
2,打开8251模块电源和PC-1500的开机on键
3,运行RUN “C”,ENTER回车
PC-1500屏幕显示:
AT
AT+CWMODE=3 设置AP热点模式+STATION模式。
AT+RST 重启
AT+CWSAP=“TEST”,“123456789”,11,0 设置热点属性。这里等待去设置手机AP热点,打开手机的设置WIFI,可以看到热点“TEST”出现在,点加入网络,输入密码123456789。
再打开手机“有人网络助手”,按照下图步骤设置好。
4,按PC-1500的ENTER回车键继续运行程序,屏幕显示:
AT+CIPMODE=1 透传
AT+CIPMUX=1多路传输
AT+CIPSTART="TCP","192.168.4.2",8080
等待与服务器建立TCP连接,这时手机有人网络助手第一项目自动出现显示:192.168.4.1,PORT:17713
一小图标出现红色打勾表示网络运行在此处,PC-1500已经与手机网络通过“TEST”热点连接了。
再按PC-1500的ENTER回车键继续运行,PC-1500屏幕显示:
AT+CIPSEND 表示后面就是开始“透明”传输了。这时PC-1500屏幕和手机网络助手屏幕同时显示“HELLO”以及开始显示某个内存地址开头到结尾的数据内容,以ASC码形式显示从PC-1500端发送到手机端,并且在PC-1500和手机端几乎同时比较快速地显示出来。
如果需要终止传输可以按键PC-1500的on键中断不然就要等待传输数据结束。
实验PC-1500+8251模块与手机无线联网接收来自手机网络助手的数据:
前面执行的步骤基本同上,所以也最好在前面运行执行PC-1500发送的数据给手机网络助手正常接收显示期间,按PC-1500的on键中断BASIC程序的执行,然后按DEF再按F键,就执行PC-1500的接收程序,PC-1500屏幕显示:
RECEIVE DATA FROM PC:
此时,在手机“有人网络调试助手”的数据发送端输入数字和字母,就会同时在PC-1500接收并且被屏幕显示了。
运行PC-1500的调试实验程,该程序是BASIC写的调试程序,本来有个更快捷汇编语言调试程序,但是为了发布容易看懂就BASIC更好,如果用汇编语言编程起码不需要10-16进制来回转换也不需要ASC码和CHR$转换。注意所有字符和标点小数点逗号引号都是英,半角。调试实验BASIC程序发布,程序可以直接手动键盘输入到PC-1500内,为了注释清楚所以采用中文注释了,中文当然不能输入PC-1500内。
BASIC测试程序:
300:"C"CLEAR :WAIT
310:A=&6FF0:B=&6FF1:初始化设置82C51芯片片选读写设定
330:REM POKE B,&40:82C51软复位启动此处暂且不用,REM表示仅为注释
340:POKE B,&4D:POKE B,8.15:82C51初始化设置
400:IF (PEEK BAND 4)=0THEN 400:判断传输启动
420:POKE A,ASC "A":POKE A,ASC "T":POKE A,13:POKE A,10:发送ESP8266的AT回车换行指令
421:WAIT 40:PRINT "AT":发送ESP8266AT指令以下都是
430:POKE A,ASC "A":POKE A,ASC "T":POKE A,ASC "+":POKE A,ASC "C"
POKE A,ASC “W”:POKE A, ASC “M":POKE A,ASC "O"
431:POKE A,ASC "D":POKE A,ASC "E":POKE A,ASC "=":POKE ASC "3":POKE A,13:POKE A,10
432:WAIT 50:PRINT "AT+CWMODE=3":发送AT+CWMODE=3设置STTAION+AP模式,接回车换行指令
440:POKEA,ASC "A":POKE A,ASC "T”:
POKE A,ASC "+":POKE A,ASC "R":
POKE A,ASC "S":POKE A,ASC "T":
POKE A,13:PDKE A,10:发送AT+RST指令给ESP8266复位启动
441:WAIT 140:PRINT "AT+RST"
450:POKE A,ASC "A":POKE A,ASC "T":
POKE A,ASC “+:POKE A,ASC "C":
POKE A,ASC "W":POKE A,ASC "S":
POKE A,ASC "A"
451:POKE A,ASC "P":POKE A,ASC "=":POKE A,&22:POKE A,ASC "T":POKE A,ASC "E":POKE A,ASC "S":POKE A,ASC“T”
452:POKE A,&22:POKE A,ASC ",":POKE A,&22:POKE A,ASC "1":POKE A,ASC"2":POKE A,ASC "3":POKE A,ASC"4”
453:POKE A,ASC "5":POKE A,ASC "6":
POKE A,ASC "7":POKE A,ASC "8":POKE A,ASC "9":POKE A,&22:PDKE A,ASC ","
454:POKE A,ASC "1":POKE A,ASC "1":POKE A,ASC :POKE ASC"B":POKE A,13:POKE A,10:发送WIFI设置指令TEST,123456789,11,0,设置AP热点属性,在电脑或者手机可以见到该热点名称,用手机或者电脑连上该热点
456:WAIT :PRINT "AT+CWSAP=TEST,123456789,11,0"
460:POKE A,ASC "A":POKE A,ASC "T":POKE A,ASC"+":POKE A,ASC "C”:POKE A,ASC "1":POKE A,ASC "P":POKE A,ASC "M"
461:POKE A,ASC "O":POKE A,ASC "D":
POKE A,ASC “E":POKE A,ASC“=":POKE A,ASC"1":POKE A,13:POKE A,10:发送AT+CIPMODE=1指令开启透传
462:WAIT 50:PRINT "AT+CIPMODE=1"
470:POKE A,ASC "A":POKE A,ASC "T":
POKE A,ASC "+": POKE A,ASC "C":POKE A,ASC "I”:POKE A,ASC "P":POKE A,ASC "M"
471:POKE A,ASC "U":POKE A,ASC "X":POKE A,ASC “1":POKE A,ASC "1":POKE A,13:POKE A,10:发送指令AT+CIPMUX=1,多路传输
472:WAIT 50:PRINT "AT+CIPMUX=1
480:POKE A,ASC "A":POKE A,ASC "T":POKE A,ASC "4":POKE A,ASC "C":POKE A,ASC"I":POKE A,ASC "P":POKE A,ASC "S"
481:POKE A,ASC "T":POKE A,ASC "A":POKE A.ASC “W":POKE A,ASC "T":POKE A,ASC "=":POKE A,&22:POKE A,ASC "T"
482:POKE A,ASC "C”:POKE A,ASC "P":POKE A,&22:POKE A,ASC ",":POKE A,&22:POKE A,ASC "1":POKE A,ASC"9"
483:POKE A,ASC "2":POKE A,ASC ".".POKE A,ASC "1":POKE A,ASC "6":PDKE A,ASC ,8":PDkE A,ASC“.”:
POKE A,ASC "4”
484:POKE A,ASC ".":POKE A,ASC "2":POKE A, &22:POKE A,ASC ",":POKE A,ASC "8":POKE A,ASC "0":POKE A,ASC "8”
485:POKE A,ASC "0":POKE A,13:POKE A,10:发送指令AT+CIPSTART=TCP,192. 168.4.2,8080,ESP8266连接电脑或者手机端的IP地址,此时打开电脑网络助手或者手机网络调试助手APP,并且启用连接该端口
486:WAIT :PRINT "AT+CIPSTART=TCP,192. 168.4.2,8080"
490:POKE A,ASC "A":POKE A,ASC T":POKE A,ASC "+":POKE A,ASC "C":POKE A,ASC "I":POKE A,ASC "P":
POKE A,ASC "S"
491:POKE A,ASC "E":POKE A,ASC "N":POKE A,ASC "D":POKE A,13:POKE A,10:发送指令AT+CIPSEND即PC-1500与电脑网络助手或者手机网络调试助手双向发送数据了
492:WAIT 50:PRINT "AT+CIPSEND"
500:"D"POKE A,ASC "H":POKE A,ASC "E":POKE A,ASC "L":POKE A,ASC "L":POKE A,ASC "O":POKE A, 13:POKE A,10
501:WAIT O:PRINT “HELLO!":PC-1500屏幕和电脑或者手机屏幕会显示"HELLO"
以上程序就是调试PC-1500与82C51以及ESP8266的设置初始化和最后显示HELLO为结果。
以下是发送PC1500指定的某段内存数据出去给电脑或者手机接收,并且将接收的PC-1500的内存16进制转换数据为ASC码,通过电脑网络助手或者手机网络助手接收:
502:PRINT "ME:"510:FOR I-&2000T0 &285A
520:C=PEEK I:E=INT (C/16):F=C-(E*16)
530:IF E<=9LET X=E+48
532:1F E>=10LET X=E+55
540:IF F<=9LET Y=F+48
542:1F F>=10LET Y=F+55
570:POKE A,X:POKE A,Y
571:POKE A,A0
580:PRINT CHR$ X;CHR$ Y;" ";
590:NEXT I:END
600:POKE A,ASC "A":POKE A,ASC "T":
POKE A,ASC "+":POKE A,ASC "C":
POKE A,ASC "I":POKE A,ASC "P":
POKE A,ASC "M"
以下是PC-1500接收来自电脑或者手机的数据的BASIC编程:
800:"F"WAIT 0
810:POKE &6FF1,&40
820:POKE &6FF1,&4D
830:POKE &6FF1,&15
835:PRINT "DATA:
840:1F (PEEK &6FF1AND 2)=0THEN 840
870:0=PEEK &6FF0
880:PRINT CHR$ D;:GOTO 840
990:END:CLEAR
BASIC语言编程很容易理解和编制,实际应用编程我大都用汇编语言编程效率会更高。
以上是临时采用洞洞板进行的分段测试结果。刚刚收到了按照前面发的电路图,做出来PC-1500物联网多功能开发板的PCB板,在焊接组装调试中。
电路设计和PCB确认采用PC1500的60总线输出,电路设计包含三片82C51三路串口/ESP8266-01S/ESP8285四路MQTT协议控制/三路PWM信号发生器/4.3"智能串口高清彩屏/蓝牙HIFI功放2*3W/立体声二喇叭/红外串口/一路CPU可屏蔽中断/八路GPIO输入输出/2.54针脚双排插新60总线/可充放电锂电供电。好几个模块堆集也是为了本人的物联网基础学习理解。最后可能MP3音乐MP4插卡电影以及MIDI/VGM播放功能对我喜欢更玩一点。要学好物联网和工控技术最好入坑LINUX系统,已经入手几个高人的一些树莓派4B以及其它更好模块,其中有二套树莓派4B基于LINUX的VOLUMIO和仙籁M1T固件数播系统摆弄起来就更有意思了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|