說得具體點:
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://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |