国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于89S52的LCD1602程序設(shè)計

2012-04-29 20:23:03林嘉
電腦知識與技術(shù) 2012年26期
關(guān)鍵詞:程序設(shè)計單片機

林嘉

摘要:液晶顯示器以其零輻射,低耗能,散熱小,纖薄輕巧等諸多優(yōu)點,已經(jīng)在各個領(lǐng)域中得到了廣泛的應(yīng)用。LCD1602作為現(xiàn)在電子產(chǎn)品的通用器件,一般用于顯示數(shù)字、專用符號和圖形。該文采用單片機系統(tǒng)對LCD1602進(jìn)行控制,分析LCD1602液晶顯示器的管腳功能,對LCD1602顯示進(jìn)行程序設(shè)計。

關(guān)鍵詞:單片機;LCD1602;程序設(shè)計

中圖分類號:TP 368.2文獻(xiàn)標(biāo)識碼:B文章編號:1009-3044(2012)26-6376-03

Program Design of LCD1602 Based on the 89S52

LIN Jia

(HTC Hangzhou Information Technology Service Center, Hangzhou 363000, China)

Abstract: Liquid crystal display with their zero radiation, low energy consumption, small heat, fiber thin light, and many other advantages, has been widely used in various field. LCD1602 as electronic products a universal device, are used for display Num? bers, special symbols and graphics. This paper uses single- chip system to control LCD1602, analyzes the pin function of LCD1602 display, design the program of LCD1602 display.

Key words: single-chip; LCD1602; program design

1概述

采用單片機系統(tǒng)對LCD1602進(jìn)行控制,具有接口更加簡單可靠,編程易于實現(xiàn),操作更加方便,顯示質(zhì)量高的優(yōu)點。液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。圖1為LCD1602與89S52的硬件連接圖.[1]

2 LCD1602簡介

LCD1602液晶顯示器是目前廣泛使用的一種字符型液晶顯示模塊[2]。它是由字符型液晶顯示屏(LCD)、控制驅(qū)動主電路HD44780及其擴展驅(qū)動電路HD44100,以及少量電阻、電容元件和結(jié)構(gòu)件等裝配在PCB板上而組成。LCD1602中,16代表每一行可以顯示16個字符,02代表總共可以顯示兩行字符。目前市場上的字符液晶通常有14條引腳或16條引腳,16條引腳多出來的兩條線是背光電源線和地線,表1為LCD1602的管腳功能。

LCD1602的Vss端需接一個電位器,用以調(diào)整流過液晶的電流,如果電流太大,會產(chǎn)生“鬼影”,使液晶顯示有重影現(xiàn)象,太小則整個屏幕比較暗,常用1K的調(diào)節(jié)電位,Vdd端連接5V電源電壓,Vee接地,RS為數(shù)據(jù)/命令選擇,RE為讀/寫選擇,E為使能信號,D0-D7為雙向數(shù)據(jù)線,BLA為背光電源正極,BLK為背光電源負(fù)極,可分別與5V電源正負(fù)極相連。

3程序的設(shè)計編寫

LCD液晶器件的軟件驅(qū)動程序為[3]:判斷液晶是否處于忙狀態(tài),若忙,則繼續(xù)進(jìn)行判定,當(dāng)不忙時,想液晶寫入命令,如讓液晶清屏、光標(biāo)向右移位、光標(biāo)是顯示是否打開等,這些都可以放在液晶初始化函數(shù)里實現(xiàn),在軟件編寫時將各自的頭文件包含在對方源文件中,互相調(diào)用。

下面分別為LCD1602顯示的源代碼及頭文件:

/ /液晶控制與顯示驅(qū)動源程序LCD1602.c//

#include

#include

#include

#include "LCD1602.h"

//---------------忙檢查-------------------//

uchar LCD_Busy_Check()

{uchar LCD_Status;

RS = 0;

RW = 1;

E = 1;

delay4us();

LCD_Status = P0;

E = 0;

return LCD_Status;

}

//--------------向LCD寫入命令--------------------//

void Write_LCD_Command(uchar cmd)

{while((LCD_Busy_Check()& 0x80)==0x80); //忙等待

RS = 0;

RW = 0;

E = 0;

P0 = cmd;

delay4us();

E = 1;

delay4us();

E = 0;

}

//-----------向LCD寫入一個字節(jié)的數(shù)據(jù)函數(shù)-----------------*/

void Write_LCD_Data(uchar dat)

{while((LCD_Busy_Check()&0x80)==0x80);

RS = 1;

RW = 0;

E = 0;

P0 = dat;

delay4us();

E = 1;

delay4us();

E = 0;

}

//-----------LCD初始化-----------------*/

void Initialize_LCD1602() //液晶初始化函數(shù)

{

Write_LCD_Command(0x38); //功能設(shè)置,數(shù)據(jù)長度為8位,雙行顯示,5×7點陣字體

delay50us(10);

Write_LCD_Command(0x0C); //顯示開,關(guān)光標(biāo)

delay50us(10);

Write_LCD_Command(0x06); //字符進(jìn)入模式:屏幕不動,字符后移

delay50us(10);

Write_LCD_Command(0x01); //清屏

delay50us(10);

}

//-----------在LCD上顯示字符串-----------------*/

void LCD_Display(uchar *str)

{

uchar i;

for(i=0;i

{

Write_LCD_Data(str[i]);delay50us(100);

}

/ /液晶控制與顯示驅(qū)動頭文件LCD1602.h//

#ifndef __lCD1602_H__

#define__LCD1602_H__

#include

#define dat_port P0

#define uchar unsigned char

#define uint unsigned int

#define delay4us() {_nop_();_nop_();_nop_();_nop_();}

sbit RS=P2^0;//RS=1數(shù)據(jù)RS=0命令

sbit RW=P2^1;//RW=1讀取RW=0寫入

sbit E=P2^2;//E使能信號

uchar LCD_Busy_Check();//忙檢查

void Write_LCD_Command(uchar cmd);//向LCD寫入命令

void Write_LCD_Data(uchar dat); //向LCD寫入一個字節(jié)的數(shù)據(jù)函數(shù)

void Initialize_LCD1602(); //液晶初始化函數(shù)

void LCD_Display(uchar *str);//在LCD上顯示字符串

#endif

接好硬件,通過冷啟動方式將程序所生成的.hex文件下載到單片機運行后,復(fù)位單片機,然后可在學(xué)習(xí)板上看到液晶的顯示的字符

4結(jié)束語

本文介紹了LCD1602的工作原理并介紹各管腳的功能,用C語言對LCD1602的顯示程序進(jìn)行設(shè)計,要想熟練的掌握對LCD1602編程,必須熟悉操作基本的編程語言,通過不斷的實踐,不斷的摸索,才能發(fā)現(xiàn)問題,對問題進(jìn)行分析,才能找出問題的解決方法,從而不斷的提高LCD1602的編程技巧,使程序得到最大程度的優(yōu)化。

參考文獻(xiàn):

[1]趙亮.跟我學(xué)單片機(七)[J].電子制作,2011(7):74-77.

[2]于志贛,劉國平,等.液顯LCD1602模塊的運用[J].機電技術(shù),2009(3):21-23.

[3]劉伏文.單片機C和匯編語言混合編程[J].電子制作,2007(6).

猜你喜歡
程序設(shè)計單片機
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
計算機教育(2020年5期)2020-07-24 08:52:56
基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
電子制作(2019年9期)2019-05-30 09:42:04
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
高職高專院校C語言程序設(shè)計教學(xué)改革探索
OBE理念下基于Greenfoot的Java程序設(shè)計課程教學(xué)改革
PLC梯形圖程序設(shè)計技巧及應(yīng)用
扶风县| 滕州市| 永清县| 水富县| 双流县| 西平县| 屏南县| 天津市| 庐江县| 冕宁县| 宁河县| 南和县| 广德县| 苍梧县| 隆子县| 绿春县| 阿克苏市| 翼城县| 宁化县| 洞头县| 北川| 临湘市| 冷水江市| 醴陵市| 孝感市| 永兴县| 兰溪市| 鹰潭市| 涿州市| 渝北区| 周口市| 平山县| 新泰市| 乌审旗| 临沭县| 保德县| 利津县| 潍坊市| 土默特右旗| 海盐县| 改则县|