B型血 发表于 2016-10-16 21:40:49

白鼠求助

本帖最后由 B型血 于 2016-10-16 21:45 编辑

首先声明本人白鼠一只,求助过程中如有语法不专业或者问题比较白痴的还请各位多多见谅,先谢谢各位。

例如51单片机中语法如下:(从网上复制的)
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char

sbit busy_ocmj5=P3^1;//忙闲标志
sbit req_ocmj5=P3^0;//使能



/*********写数据子程序*********/

void xesj_ocmj(uchar s)
{

req_ocmj5=0;//将使能置低
while(busy_ocmj5);
P0=s;//给P0口送数
_nop_();
_nop_();
req_ocmj5=1;//置高使能

_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();



   P0=S;//给po送数
    此句中给使能送数是指给p0.0~p0.7接口送数吗?不是给单一的口送数,对吗?如果是的话,请问要是51单片机换成arduino的话这句话用程序该怎么表达?
    学习这个例子主要想给自己的一块OCMJ5X10B显示屏显示文字,无奈OCMJ5X10B的引脚和1602或者12864的不一样,小白搞不明白,所以参照了51单片机和OCMJ5X10B连接的程序,想效仿一下,不知能否实现。

darkorigin 发表于 2016-10-16 21:57:06

。。。没学过51的C语言不太懂
MSC51汇编当年也学得比较潦草。。。基本只记住基本的汇编指令了。。。
10多年没从事计算机专业工作帮不上忙很惭愧。。。。
帮顶!!!

B型血 发表于 2016-10-17 11:48:05

darkorigin 发表于 2016-10-16 21:57
。。。没学过51的C语言不太懂
MSC51汇编当年也学得比较潦草。。。基本只记住基本的汇编指令了。。。
10多 ...

你的回复就是对我最大的鼓励了:victory:,之前的求助帖都没人回复过:$,还是再次谢谢你。:handshake

sailor0908 发表于 2016-10-17 13:49:14

本帖最后由 sailor0908 于 2016-10-17 13:59 编辑

1,此句中给使能送数是指给p0.0~p0.7接口送数吗? 是的,51单片机的P0 口是数据口.
2,换成arduino的话这句话用程序该怎么表达? 普通的Arduino如果没有51单片机这种像P0口一样的连续的端口,可能需要通过模拟来实现并行端口的数据传输,如果有就可以定义一个8位端口为数据口,比如:#define PORT_Data PORTB//定义PORTB为数据端口.论坛有很多例子可以参考.
另: OCMJ5X10B应该有SPI接口吧,那样不是更简单些?

B型血 发表于 2016-10-17 22:11:00

sailor0908 发表于 2016-10-17 13:49
1,此句中给使能送数是指给p0.0~p0.7接口送数吗? 是的,51单片机的P0 口是数据口.
2,换成arduino的话这句话 ...

首先感谢你的耐心解答,只是我初学arduino所以好多指令还不能理解和使用。
其次, OCMJ5X10B上没有接口,引脚上有那种快速插拔的口,连接另外的一块电路板(不认识是什么功能板),有个RS232接口。
再次,我试验将显示屏的BUSY引脚当做1602屏的RS引脚;REQ引脚当做1602的E引脚连接了arduino,使用lcd库文件和lcd指令,结果发现输入字符后显示的是别的字,或者偏旁部首。不知道是为什么。
请帮我看看http://www.geek-workshop.com/thread-27647-1-1.html这个帖子

sailor0908 发表于 2016-10-28 10:23:16

B型血 发表于 2016-10-17 22:11
首先感谢你的耐心解答,只是我初学arduino所以好多指令还不能理解和使用。
其次, OCMJ5X10B上没有接 ...

RS引脚是复位脚,一般在初始化时先复位(低有效),REQ在这个模块中类似于片选信号(CS),向模块传输指令和数据时拉高有效(这里应注意,如果参照别人的程序可能在这个片选上有问题,因为好多的LCD模块片选是低有效,注意反相).
页: [1]
查看完整版本: 白鼠求助