[導讀]電視頻道記憶功能,交通燈倒計時時間的設定,戶外 LED 廣告的記憶功能,都有可能用到 EEPROM 這類存儲器件。這類器件的優(yōu)勢是存儲的數(shù)據不僅可以改變,而且掉電后數(shù)據保存不丟失,因此大量應用在各種電子產品上。我們
電視頻道記憶功能,交通燈倒計時時間的設定,戶外 LED 廣告的記憶功能,都有可能用到 EEPROM 這類存儲器件。這類器件的優(yōu)勢是存儲的數(shù)據不僅可以改變,而且掉電后數(shù)據保存不丟失,因此大量應用在各種電子產品上。
我們這節(jié)課的例程,有點類似廣告屏。上電后,1602 的第一行顯示 EEPROM 從 0x20 地址開始的16個字符,第二行顯示 EERPOM 從 0x40 開始的16個字符。我們可以通過 UART 串口通信來改變 EEPROM 內部的這個數(shù)據,并且同時也改變了 1602 顯示的內容,下次上電的時候,直接會顯示我們更新過的內容。
這個程序所有的相關內容,前面都已經講過了。但是這個程序體現(xiàn)在了一個綜合應用能力上。這個程序用到了 1602 液晶、UART 串口通信、EEPROM 讀寫操作等多個功能的綜合應用。寫個點亮小燈好簡單,但是我們想真正學好單片機,必須得學會這種綜合程序的應用,實現(xiàn)多個模塊同時參與工作。因此同學們,要認認真真的把工程建立起來,一行一行的把程序編寫起來,最終鞏固下來。
/*I2C.c 文件程序源代碼***/ (此處省略,可參考之前章節(jié)的代碼) /*Lcd1602.c 文件程序源代碼***/ (此處省略,可參考之前章節(jié)的代碼) /****eeprom.c 文件程序源代碼/ (此處省略,可參考之前章節(jié)的代碼) /Uart.c 文件程序源代碼*****/ (此處省略,可參考之前章節(jié)的代碼)
/*****************************main.c文件程序源代碼******************************/#includeunsignedcharT0RH=0;//T0重載值的高字節(jié)unsignedcharT0RL=0;//T0重載值的低字節(jié)voidInitShowStr();voidConfigTimer0(unsignedintms);externvoidInitLcd1602();externvoidLcdShowStr(unsignedcharx,unsignedchary,unsignedchar*str);externvoidE2Read(unsignedchar*buf,unsignedcharaddr,unsignedcharlen);externvoidE2Write(unsignedchar*buf,unsignedcharaddr,unsignedcharlen);externvoidUartDriver();externvoidConfigUART(unsignedintbaud);externvoidUartRxMonitor(unsignedcharms);externvoidUartWrite(unsignedchar*buf,unsignedcharlen);voidmain(){EA=1;//開總中斷ConfigTimer0(1);//配置T0定時1msConfigUART(9600);//配置波特率為9600InitLcd1602();//初始化液晶InitShowStr();//初始顯示內容while(1){UartDriver();//調用串口驅動}}/*處理液晶屏初始顯示內容*/voidInitShowStr(){unsignedcharstr[17];str[16]='