串口,I2C總線,EEPROM及液晶驅(qū)動的時間沖突問題
這是我自己寫的單片機實現(xiàn)電話本,可以從電腦錄入姓名與電話,并可以手動查詢。但是存儲和液顯的時間太長,沒法及時從電腦錄入數(shù)據(jù)。但是串口,I2C總線,EEPROM,液晶的驅(qū)動程序是對的。串口的傳輸能否像I2C一樣能被我自己控制呢。
本文引用地址:http://www.ex-cimer.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);//設(shè)置讀寫方式,指針自動增一(第二位 1),畫面不移動(第一位 0)LCD_cmd(0xc);//顯示開(第三位 1)光標(biāo)開(第二位 1)光標(biāo)閃爍開(第一位 1);LCD_cmd(0x38);//設(shè)置顯示模式 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();}
評論