娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年07月07日(星期一)

2020年07月07日 | 1602液晶測試程序2

發布者:BlissfulJoy 來源: eefocus關鍵字:液晶測試  單片機 手機看文章 掃描二維碼
隨時隨地手機看文章

程序共分為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液晶測試程序2

上一篇:1602液晶測試程序1
下一篇:最后一頁

推薦閱讀

世界杯足球賽開打,已同步驅動機上盒安裝數與高端電視銷量走高,配合機上盒廠商力促播放節目豐富化,預估也有利進一步提高整體機上盒的普及率。??近期世足賽風潮席卷,促使大尺寸4K電視需求量增加,諸如樂金電子、三星電子等廠商的高端電視機種,近期均因此受惠,市場認為,伴隨市場對大尺寸、4K等級電視需求量提升,除有利于加速4K電視的市場滲透率,從...
富士康可以說是我國有頭有臉的工廠了,它以流水線的生產運作方式而著名,在國內的許多工廠里非常有名。富士康大多負責一些加工產品的業務,在前些年與美國的蘋果手機平臺合作頻繁。隨著蘋果銷售量的部分增加,富士康的業務拓展也越來越大,兩者可以說是形成了互利共贏的局面。 雖然富士康與蘋果公司的合作很多,但是并沒有涉及到一些核心技術和高科技...
本節學習:分析linux中的OOS聲卡系統修改s3c2410-uda1341.c的控制部分,移植wm8976聲卡使用madplay應用程序播放mp3本節常用英語單詞:volume:音量,dsp:數字信號處理(Digital Signal Processing),mixer:混音器,unit:單位,個體 1、聲音三要素采樣頻率音頻采樣率是指錄音設備在一秒鐘內對聲音信號的采樣次數,常用的采樣率有:8KHz ---電話所用采樣...
簡介:MSP430 LaunchPad是TI推出的開發板。在需要調試別的系統的目標板上的TTL串口時,可以先取下板上RXD和TXD的短路塊,然后通過杜邦線進行連接其他的目標板。不過在使用中發現,外部目標板有時會出現接收數據錯誤的現象。經過實驗發現,如果目標板的RXD引腳沒有接上拉電阻,或者沒有允許內部上拉電阻時,就會出現這個現象。在原理圖上,可以看到虛擬串...

史海拾趣

問答坊 | AI 解惑

ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻

ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻 ------------------------------------------------------------------ 【ARM培訓視頻】課程主要內容 1.概念和基本工具: 嵌入式系統基本概念、嵌入式操作系統介紹 嵌入式系 ...…

查看全部問答∨

特性阻抗公式

 a.微帶線(microstrip) Z={87/[sqrt(Er+1.41)]}ln[5.98H/(0.8W+T)] 其中,W為線寬,T為走線的銅皮厚度,H為走線到參考平面的距離,Er是PCB板材質的介電常數(dielectric constant)。此公式必須在0.1…

查看全部問答∨

wince 設置默認輸入法問題!

最近接手一個wince項目,使用QT4.4.3做的,現在要解決的問題是在控件上輸入的時候,調用出wince自帶的手寫輸入法 我現在的設想是 做一個Dll,用SipEnumIM枚舉所有的輸入法,然后查找出的wince自帶的手寫輸入法的CLSID,將手寫輸入法的CLSID設置為 ...…

查看全部問答∨

請各位大大幫忙啊!

各位大大:     小弟初學嵌入式開發,想要買一塊Arm7的實驗板,1000以內的,各位大大知道哪些比較合適的阿,有人說周立功的合適,但是不知道哪里能買,請各位大大指條明路啊。小弟拜謝了!…

查看全部問答∨

LM3S9B96 EM2擴展板用戶指南

LM3S9B96 EM2擴展板用戶指南 9B96的數據表壇子里有,就不重復了哈…

查看全部問答∨

Sitara AM355x低成本新手套件概述

在德州儀器額微博中看到了這個評估套件的視頻,分享給大家! 視頻內容簡要介紹了這款強大的評估套件 [ 本帖最后由 IC爬蟲 于 2012-10-24 12:11 編輯 ]…

查看全部問答∨

工作無成就感

目前的工作提不起激情,輕閑的空虛,無聊的總跑廁所抽悶煙,前段時間還可以搞搞AVR,現在板子不好打了,流程特多,學習很是不方便,為了上班而上班,我不要這樣過   80后!一個沉重的代名詞,仿佛一切定格!如何找回存在的價值! [ 本帖 ...…

查看全部問答∨

QUARTUES RAM刷新問題

在我的VHDL程序里面,當程序接受到reset復位信號,想要把RAM里面的所有值,都刷新成0,該怎么做啊,大牛們?…

查看全部問答∨

TFT怎樣“隨機”顯示字庫中的“漢字

我知道怎樣得到隨機數,但是不知道怎樣將這個數和字庫中的漢字對應起來并顯示出來? 我的漢字顯示函數為: LCD_PutString(200,210,\"確\",Red,Blue2);//顯示“確”字 上面的語句中“確”字是用引號括起來的。例如“確”字在字庫中排在第一個,而 ...…

查看全部問答∨

PCB中如何選中多個元件的標號

如何在PCB中選中多個元件的標號啊?一個死辦法就是按住shift一個一個單選。比如說我用鼠標框選幾個電阻,想整體選中這幾個電阻的標號怎么快速操作? …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 乌审旗| 宿州市| 大渡口区| 甘德县| 长葛市| 山东省| 札达县| 绥江县| 永泰县| 山阴县| 内江市| 大宁县| 扶绥县| 中牟县| 华阴市| 启东市| 双桥区| 中超| 台前县| 藁城市| 罗定市| 中宁县| 固镇县| 北海市| 昭通市| 揭西县| 红河县| 绥江县| 水城县| 峨眉山市| 乌鲁木齐市| 托里县| 德安县| 山阴县| 日喀则市| 射洪县| 衡阳县| 宁德市| 铁岭县| 冀州市| 鹤岗市|