新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 串口,I2C總線,EEPROM及液晶驅(qū)動的時間沖突問題

串口,I2C總線,EEPROM及液晶驅(qū)動的時間沖突問題

作者: 時間:2016-11-29 來源:網(wǎng)絡 收藏
或許是我的構(gòu)思一開始就是錯誤的,串口的接受速度遠大于數(shù)據(jù)的存取和液晶的驅(qū)動的時間總和。從電腦傳過去的字符總是會漏掉好多,如今只能寫入一個字節(jié)的數(shù)據(jù)。真是豬腦子,浪費了半天時間。

這是我自己寫的單片機實現(xiàn)電話本,可以從電腦錄入姓名與電話,并可以手動查詢。但是存儲和液顯的時間太長,沒法及時從電腦錄入數(shù)據(jù)。但是串口,I2C總線,EEPROM,液晶的驅(qū)動程序是對的。串口的傳輸能否像I2C一樣能被我自己控制呢。

本文引用地址:http://www.2s4d.com/article/201611/323236.htm

#include #define unchar unsigned charunchar ac;sbit E=P2^7  ;sbit RS=P2^6 ;sbit RW=P2^5 ;sbit SDA=P2^1;sbit SCL=P2^0;/****數(shù)據(jù)延時****/void NOP(void){;;}/******操作延時*****/void delay(unsigned int  i){i=124*i;while(--i);}/****液晶指令寫入****/void LCD_cmd(unchar cmd){E=0;RW=0;RS=0;P0=cmd;delay(2);E=1;delay(2);E=0;}/****液晶數(shù)據(jù)的寫入*****/void LCD_date(unchar date){RW=0;RS=1;P0=date;delay(1);E=1;delay(1);E=0;}void init(void){/********* 串口初始化 ******/TMOD=0X20;SCON=0X50;PCON=0X80;ET1=1;TR1=1;TH1=0XF3;TL1=0XF3;RI=0;TI=0;/********* 液晶初始化 *******/LCD_cmd(0x6);//設置讀寫方式,指針自動增一(第二位 1),畫面不移動(第一位 0)LCD_cmd(0xc);//顯示開(第三位 1)光標開(第二位 1)光標閃爍開(第一位 1);LCD_cmd(0x38);//設置顯示模式 LCD_cmd(0x1);//清屏,清除指針和RAM數(shù)據(jù)/*****按鍵中斷初始化*******/EA=1;EX0=1;EX1=1;}/*****數(shù)據(jù)起始端*********/void start(void){SDA=1;NOP();SCL=1;NOP();SDA=0;NOP();}/***** 數(shù)據(jù)結(jié)束端 ********/void stop(void){SDA=0;NOP();SCL=1;NOP();SDA=1;NOP();}
				
            
                
			
							
上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉