说得具体点:
lcd_ce为使能端,读数据时为高。lcd_ce=P1^0;
lcd_clk为时钟,上升缘有效。 lcd_clk=P1^1;
lcd_do为单片机要读取的数据。lcd_do=P0^1;
假设单片机要读一个字节为0x43,它的程序这样写对吗?请高人指点
void read_data()
{
uchar i;
_nop_();
_nop_();
lcd_clk=1;
lcd_ce=1;
_nop_();
_nop_();
for(i=0;i<8;i++)
{
uchar read_data;
lcd_do=1; //读程序是不是要先把P0^1置1?
lcd_clk=0;
lcd_clk=1;
read_data=lcd_do; //read_data得到的一位一位的数据放哪了?
if(read_data==1)
{
P0^2=1; //蜂鸣器响
}
_nop_();
}
}
关于单片机读串口程序-----你到问题把人搞糊涂了!----是不是读 RS232 啊?或是读其它啊?
如果是 RS232 ,怎么有 3 个引脚啊?
如果你不是说 RS232 ,那么你的就是天书了,谁也不明白!
通信有一个前提:总是有一方为"主",有一方为"从",就说 RS232 吧,读串口时是"从",因为它不知道是否有数据发来.仅仅是做好接收准备而已.----而不能是你什么什么的就可以接收数据.---人家没有发送,你怎么接收?
例如:你手机没有响铃,你不会接电话吧?
如果说 232 接收,又是 51 ,直接使用芯片内部 RS232 功能就可以了.----即使你使用 I/O 模拟串口,也不用 3 根引脚啊!
-----论坛里许多 RS232 的好文章,建议阅读一下.千万不要凭空想一个串口出来.
仅供参考!
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |