程序共分為3個文件:1602-2.c、LCD1602.h、lcd1602define.h
1602-2.c
/*單片機學習板V1.0 */
/*模塊名 :LCD1602控制顯示 */
/*創建人 :ClimberWin 日期:2009-03-26 */
/*功能描述:LCD1602顯示 */
/*版本 :V1.0 */
/************************************************************/
#include #include "LCD1602.h" #include "LCD1602define.h" #define uchar unsigned char void Delay1ms(unsigned int count); //延時程序 /************主程序***************************/ main() { LCD_initial(); //LCD初始化 LCD_ClrAll(); //LCD清屏 LCD_cursor(0); //光標起始地址 ,第一行地址是0x00~0x0F,第二行地址是0x40~0x4f LCD_prints("LCD1602 Display"); LCD_cursor(0x40); LCD_prints(" test ok "); LCD_printc('a'); //有函數定義卻未使用會有警告,打開即可 while(1) {;} } LCD1602.h #ifndef __LCD_1602_CLIMBERWIN__ #define __LCD_1602_CLIMBERWIN__ #define uchar unsigned char #define uint unsigned int #include #include"lcd1602define.h" /******Port Definitions*****/ #define LCD_Data P0 //LCD的數據口 sbit LCD_BF=LCD_Data^7; //LCD忙信號位 sbit LCD_RS = P2^2; sbit LCD_RW = P2^3; sbit LCD_EN = P2^4; /*定義子程序*/ void LCD_ClrAll(void); //清屏 void Judge_LCD_busy(void); //檢測是否忙碌 void LCD_Write(uchar WriteData); //寫控制字 void LCD_write_data(uchar LCD_data); //寫數據顯示 void LCD_cursor(uchar x); //光標起始地址 void LCD_printc(unsigned char lcd_data) ; //輸出一個字符 void LCD_prints(unsigned char *lcd_string); //輸出字符串 //void LCD_Back(void); ///*光標回到原點*/ //會出現警告???? //void LCD_Back(void) //{ //LCD_Write(LCD_GO_HOME); //} /*LCD1602忙碌判斷子程序*/ void Judge_LCD_busy(void) //判斷LCD1602是否忙狀態 { while(1) { LCD_EN=0; LCD_RS=0; LCD_RW=1; LCD_Data=0xff; LCD_EN=1; //EN 是 1—0 使能 if(!LCD_BF)break; //LCD_BF=1表示忙碌,需要等待。 } LCD_EN=0; } /******LCD清屏***************/ void LCD_ClrAll(void) { Judge_LCD_busy(); //判斷是否忙碌 LCD_RS=0; LCD_RW=0; LCD_Data=0x01; LCD_EN=1; LCD_EN=0; } /*******LCD寫數據定義各種模式*********/ void LCD_Write(uchar WriteData) //寫指令到LCD { Judge_LCD_busy(); LCD_RS=0; LCD_RW=0; LCD_Data=WriteData; //把WriteData的數據送到數據口 LCD_EN=1; LCD_EN=0; } /********LCD顯示數據***********/ void LCD_write_data(uchar LCD_data) //輸出一個字節數據到LCD { Judge_LCD_busy(); LCD_RS=1; LCD_RW=0; LCD_Data=LCD_data; LCD_EN=1; LCD_EN=0; } /****光標位置的確定***/ void LCD_cursor(uchar x) //LCD光標定位到x處 { LCD_Write(0x80+x); //第一行地址是0x80 } /*輸出一個字符*/ void LCD_printc(unsigned char lcd_data) { LCD_write_data(lcd_data); } /*輸出字符串*/ void LCD_prints(unsigned char *lcd_string) { unsigned char i=0; while(lcd_string[i]!=0x00) { LCD_write_data(lcd_string[i]); i++; } } /*初始化程序*/ void LCD_initial(void) //初始化LCD { LCD_Write(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE); LCD_Write(LCD_DISPLAY_ON|LCD_CURSOR_OFF); LCD_Write(LCD_DISPLAY_DOUBLE_LINE); LCD_ClrAll(); } #endif lcd1602define.h #ifndef __LCD_H__ #define __LCD_H__ #define LCD_GO_HOME 0x02 //AC=0,光標、畫面回HOME位 //輸入方式設置 #define LCD_AC_AUTO_INCREMENT 0x06 //數據讀、寫操作后,AC自動增一 #define LCD_AC_AUTO_DECREASE 0x04 //數據讀、寫操作后,AC自動減一 #define LCD_MOVE_ENABLE 0x05 //數據讀、寫操作,畫面平移 #define LCD_MOVE_DISENABLE 0x04 //數據讀、寫操作,畫面不動 //設置顯示、光標及閃爍開、關 #define LCD_DISPLAY_ON 0x0C //顯示開 #define LCD_DISPLAY_OFF 0x08 //顯示關 #define LCD_CURSOR_ON 0x0A //光標顯示 #define LCD_CURSOR_OFF 0x08 //光標不顯示 #define LCD_CURSOR_BLINK_ON 0x09 //光標閃爍 #define LCD_CURSOR_BLINK_OFF 0x08 //光標不閃爍 //光標、畫面移動,不影響DDRAM #define LCD_LEFT_MOVE 0x18 //LCD顯示左移一位 #define LCD_RIGHT_MOVE 0x1C //LCD顯示右移一位 #define LCD_CURSOR_LEFT_MOVE 0x10 //光標左移一位 #define LCD_CURSOR_RIGHT_MOVE 0x14 //光標右移一位 //工作方式設置 #define LCD_DISPLAY_DOUBLE_LINE 0x38 //兩行顯示 #define LCD_DISPLAY_SINGLE_LINE 0x30 //單行顯示 #endif
上一篇:1602液晶測試程序1
下一篇:最后一頁
推薦閱讀
史海拾趣
為了進一步提升市場競爭力,Concord Semiconductor Corp積極尋求與其他企業的戰略合作。通過與全球領先的電子設備制造商建立長期合作關系,公司成功將其產品打入國際市場,實現了業務的快速增長。同時,公司還與多家研究機構展開技術合作,共同研發新型半導體材料和技術,為公司的長遠發展提供了有力支撐。
Chino-Excel公司深知人才是企業發展的核心競爭力。因此,公司注重人才培養和團隊建設,為員工提供廣闊的成長空間和良好的職業發展平臺。公司建立了完善的人才培養和激勵機制,吸引和留住了一批批優秀的技術人才和管理人才。這些人才為公司的發展注入了源源不斷的動力,推動了公司的持續創新和進步。
這些故事雖然是虛構的,但它們反映了電子行業中許多公司可能經歷的一些共同挑戰和機遇。這些故事強調了技術創新、全球化戰略、品牌建設、環保理念以及人才培養在電子行業公司發展中的重要性。請注意,這些故事僅為示例,并不代表任何實際公司的具體情況。
Afero公司成立于XXXX年,當時的市場中物聯網平臺技術正處于探索和發展階段。Afero的創始團隊憑借對物聯網技術的深刻理解和前瞻性的視野,決定專注于物聯網平臺即服務(PaaS)的研發。他們投入大量資源,成功開發出一種具有創新性的物聯網平臺,該平臺在安全性、易用性和可擴展性等方面表現出色,吸引了業界的廣泛關注。
在當今社會,綠色環保已經成為一種趨勢。EFC公司積極響應這一號召,將綠色環保理念融入到產品設計和生產過程中。他們采用環保材料和技術,減少廢棄物和污染物的排放。同時,EFC還積極推廣綠色能源和節能技術,幫助客戶降低能源消耗和碳排放。這種對環保的關注和貢獻讓EFC贏得了社會各界的贊譽。
進入新世紀后,德力西開始全國化布局和多元化發展。1998年,在上海注冊成立了上海德力西集團有限公司,與西安高壓電器研究所聯合生產高壓電器和成套設備。此外,德力西還積極參與國企改革,整體并購了杭州西子(集團)公司,并進入環保領域,建設垃圾處理及水處理項目。這些舉措使德力西在電子行業的地位更加穩固。
隨著企業規模的擴大和影響力的提升,臺灣穩態公司開始積極承擔社會責任,推動可持續發展。公司注重環保和節能技術的應用,致力于生產環保型電子產品,減少生產過程中的能源消耗和環境污染。同時,穩態公司還積極參與社會公益事業,為社會的發展貢獻自己的力量。
這些故事雖然基于假設,但反映了電子行業企業普遍面臨的挑戰和機遇,以及臺灣企業在該行業中的發展特點。如需了解臺灣穩態公司的真實發展故事,建議查閱相關新聞報道或訪問公司官方網站。
ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻 ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻 ------------------------------------------------------------------ 【ARM培訓視頻】課程主要內容 1.概念和基本工具: 嵌入式系統基本概念、嵌入式操作系統介紹 嵌入式系 ...… 查看全部問答∨ |
|
最近接手一個wince項目,使用QT4.4.3做的,現在要解決的問題是在控件上輸入的時候,調用出wince自帶的手寫輸入法 我現在的設想是 做一個Dll,用SipEnumIM枚舉所有的輸入法,然后查找出的wince自帶的手寫輸入法的CLSID,將手寫輸入法的CLSID設置為 ...… 查看全部問答∨ |
|
在德州儀器額微博中看到了這個評估套件的視頻,分享給大家! 視頻內容簡要介紹了這款強大的評估套件 [ 本帖最后由 IC爬蟲 于 2012-10-24 12:11 編輯 ]… 查看全部問答∨ |
|
我知道怎樣得到隨機數,但是不知道怎樣將這個數和字庫中的漢字對應起來并顯示出來? 我的漢字顯示函數為: LCD_PutString(200,210,\"確\",Red,Blue2);//顯示“確”字 上面的語句中“確”字是用引號括起來的。例如“確”字在字庫中排在第一個,而 ...… 查看全部問答∨ |