89C51与液晶模块MSC-G12864的接口设计

合集下载

点阵式液晶显示器LM12864与51单片机的接口设计

点阵式液晶显示器LM12864与51单片机的接口设计

点阵式液晶显示器LM12864与51单片机的接口设计张斌;周英;罗卫华
【期刊名称】《电子世界》
【年(卷),期】2004(000)004
【摘要】本文介绍了LM12864及其控制器HD61202U的指令系统,具体说明了LM12864与51单片机的连接方法及软件设计,并给出了液晶显示的参考程序.【总页数】2页(P30-31)
【作者】张斌;周英;罗卫华
【作者单位】武汉大学电气工程学院;武汉大学电气工程学院;武汉大学电气工程学院
【正文语种】中文
【中图分类】TN873.93
【相关文献】
1.图形点阵式液晶显示器及其应用 [J], 曹新亮
2.点阵式LCD与AT89C51单片机的接口技术 [J], 李剑辉;张锐;高辉
3.点阵式液晶显示器LM12864与51单片机的接口设计 [J], 张斌;陈昌旺;周英
4.图形点阵式液晶显示模块与51单片机的接口设计 [J], 马成;何培祥;李庆东
5.点阵式液晶显示器 DMF5001 的接口设计与应用 [J], 王莹;杜永祚
因版权原因,仅展示原文概要,查看原文内容请购买。

第5章--MCS51的常用接口设计

第5章--MCS51的常用接口设计
异越大越好,即比值越大越好。
二控制器0108介绍
由0108控制的128*64点阵框图如下:
接口说明
指令说明
①显示开/关设置——设置屏幕显示开/关。 ②设置显示起始行——执行该命令后,所设置的行
将显示在屏幕的第一行。 ③设置页地址 ——执行本指令后,下面的读写操作
将在指定页内,直到重新设置。
显示器的显示方式
N位显示器有N根位选线和8×N根段选线。根 据显示方式的不同,位选线和段线的连接方法有 所不同。
静态显示方式共阴极接地或共阳极接+5V,每 一位的段选线与一个8位平行口相连。
动态显示方式将所有位的段选线按同名字段并接 在一个口上,共阴极端或共阳极端分别由不同的口 线控制,构成动态显示电路。
(a)
(b)
(c)
共阴极显示器的发光二极管的阴极接地,当发光 二极 管的阳极为高电平时对应的字段点亮,如(a);
共阳极显示器的发光二极管的阳极接+5v,当发光二极 管的阴极为低电平时对应的字段点亮,如(b);
图(c)中a~g 引出端对应的字段构成“8”,引出 端对应的字段为小数点。
表5-1 显示字符与段码的对应关系
⑥写显示数据
: 76543210
功能:写数据到 ,写指令执行后Y地址计数 器自动加1。D70位数据为1表示显示,数据 为0表示不显示。写数据到 前,要先
执行“设置页地址”及“设置列地址”命令。 ⑦读显示数据
软件消抖
过程,即执行一个大约 10的延时程序后,再读
取稳定的键状态
图5.3 按键合断时的电压抖动
图5.4 消除抖动电路
二显示器接口
显示器的结构与原理 显示器是由发光二极管显示字段组成的显示
器件,它分共阴极和共阳极两种。公共端(共阴 或共阳端)称为位选线, g f e d c b a为段选 线,组成8位二进制称为段码,点亮不同的字段组 合可以显示不同的数字或字符。

液晶显示模块MGLS-12864的接口技术及其应用

液晶显示模块MGLS-12864的接口技术及其应用
第1 9卷 第 7 期
Vo 9 L1
电 子 设 计 工 程
El c r ni sg gn e i g e t o c De i n En ie r n
— — — — —
2 1 年 4月 01
Ap .2 1 r 01
N6 S 184的接 口技 术及其 应 用
I t r a e t c no o y a d p i a i n fLCD o ul GLS 2 6 n e f c e h l g n a pl to O c m d eM -1 8 4
T NJ - a A ij n eu
(e a m n l t ncE gneig, inA rnui l oy c n s tt X ' 10 9C ia Dp r e tfEe r i n i r t o co e n X ' eoa ta lt h i I tu , in7 0 8 ,hn) a c P e c ni e a
p oe t ns i hd s ly t o l n , t a lob s di eds l y f n el e t n t me t n tr . r tc i w t i a s a mi e ic na s eu e t ip a tl g n s u n s d me e o c p ac nh oi i i r a s
Ke r s MC;L D mo u e;it r c ;c i e e d s ly y wo d :S C d l n ef e h n s i a a p
随 着 液 晶显 示 技 术 的发 展 和仪 表 智 能 化 程 度 的提 高 。 人
们 对 信 息 显 示 方 式 的要 求 也 在 不 断 提 高 , 统 的 数 字 显 示 已 传

基于STC89C52RC的LCD12864模块调试源码

基于STC89C52RC的LCD12864模块调试源码

///////////////////////////////////////////////////////CONFIG.H引脚配置文件:///////////////////////////////////////////////////////#ifndef _CONFIG_H#define _CONFIG_H/* 通用头文件*/#include <reg52.h>#include <intrins.h>/* 数据类型定义*//*typedef signed char int8; // 8位有符号整型数typedef signed int int16; //16位有符号整型数typedef signed long int32; //32位有符号整型数*/typedef unsigned char u8; // 8位无符号整型数typedef unsigned int u16; //16位无符号整型数typedef unsigned long u32; //32位无符号整型数/* 全局运行参数定义*/#define SYS_MCLK (11059200/12) //系统主时钟频率,即振荡器频率÷12 /* IO引脚分配定义*/sbit KEY_IN_1 = P2^4; //矩阵按键的扫描输入引脚1sbit KEY_IN_2 = P2^5; //矩阵按键的扫描输入引脚2sbit KEY_IN_3 = P2^6; //矩阵按键的扫描输入引脚3sbit KEY_IN_4 = P2^7; //矩阵按键的扫描输入引脚4sbit KEY_OUT_1 = P2^3; //矩阵按键的扫描输出引脚1sbit KEY_OUT_2 = P2^2; //矩阵按键的扫描输出引脚2sbit KEY_OUT_3 = P2^1; //矩阵按键的扫描输出引脚3sbit KEY_OUT_4 = P2^0; //矩阵按键的扫描输出引脚4sbit ADDR0 = P1^0; //LED位选译码地址引脚0sbit ADDR1 = P1^1; //LED位选译码地址引脚1sbit ADDR2 = P1^2; //LED位选译码地址引脚2sbit ADDR3 = P1^3; //LED位选译码地址引脚3sbit ENLED = P1^4; //LED显示部件的总使能引脚#define LCD12864_DB P0 //1602液晶数据端口sbit LCD12864_RES = P1^0; //1602液晶指令/数据选择引脚sbit LCD12864_RW = P1^1; //1602液晶读写引脚sbit LCD12864_EN = P1^5; //1602液晶使能引脚sbit DS1302_CE = P1^7; //DS1302片选引脚sbit DS1302_CK = P3^5; //DS1302通信时钟引脚sbit DS1302_IO = P3^4; //DS1302通信数据引脚sbit I2C_SCL = P3^7; //I2C总线时钟引脚sbit I2C_SDA = P3^6; //I2C总线数据引脚sbit BUZZER = P1^6; //蜂鸣器控制引脚sbit IO_18B20 = P3^2; //DS18B20通信引脚sbit IR_INPUT = P3^3; //红外接收引脚#include "LCD12864.H"#include "TIME.H"#include "DHT21.h"#endif//////////////////////////////////////////////////////////////LCD12864.C源码/////////////////////////////////////////////////////////////#include "config.h"u8 zhbuf[]={"预览"}; //中文数组u8 ehbuf[]={"yulan"}; //英文字符数组u8 code imbuf[]={ //图片码128*64 宽16,高320x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };/*写等待*/void Write_Ready(){u8 sta=0;LCD12864_RES = 0;LCD12864_RW = 1;do{LCD12864_EN = 1;sta = P0;LCD12864_EN = 0;}while(sta&0x80);}/*读RAM中数据*/u8 Read_12864_RAM(){u8 ram=0;LCD12864_RES = 1;LCD12864_RW = 1;LCD12864_EN = 1;ram = P0;LCD12864_EN = 0;return ram;}/*写指令*/void Write_12864_Cmd(u8 cmd) {Write_Ready();LCD12864_RES = 0;LCD12864_RW = 0;P0 = cmd;LCD12864_EN = 1;LCD12864_EN = 0;}/*写数据*/void Write_12864_Dat(u8 dat){Write_Ready();LCD12864_RES = 1;LCD12864_RW = 0;P0 = dat;LCD12864_EN = 1;LCD12864_EN = 0;}/*设置起始坐标*/void Set_DDRAM_XY(u8 x,u8 y){if(x>=7)x=7;if(y>=3)y=3;switch(y){case 0:Write_12864_Cmd(0x80+x);break;case 1:Write_12864_Cmd(0x90+x);break;case 2:Write_12864_Cmd(0x88+x);break;case 3:Write_12864_Cmd(0x98+x);break;default : break;}}/*显示连续的2个字符*/void Show_Double_12864_Char(u8 x,u8 y,u8 *c) {Set_DDRAM_XY(x,y);Write_12864_Dat(*c);Write_12864_Dat(*(c+1));}/*显示单个字符*/void Show_Single_12864_Char(u8 x,u8 y,u8 *c) {Set_DDRAM_XY(x,y);Write_12864_Dat(*c);}/*显示中文字符串*/void Show_12864_ZH(u8 x,u8 y,u8 *zh){u8* p=zh;Set_DDRAM_XY(x,y);while((*p)!='\0'){Write_12864_Dat(*p++);}}/*显示一串数值*//*u8 dec 小数位为0不显示小数*/void Show_12864_NUM(u8 x,u8 y,u8 dec,u16 num) {u8 i;u8 numbuf[6];for(i=0;num;i++){numbuf[i]=num%10+'0';num/=10;}Set_DDRAM_XY(x,y);for(;i;i--){if(i==dec){Write_12864_Dat(0X2E); //显示小数点}Write_12864_Dat(*(numbuf+(i-1))); //显示数值}}/*显示英文字符串*/void Show_12864_EH(u8 x,u8 y,u8 *eh){u8* p=eh;Set_DDRAM_XY(x,y);while((*p)!='\0'){Write_12864_Dat(*p++);}}/*显示图案*/void Show_12864_IM(u8 code *im){unsigned char x,y,i;unsigned int tmp=0;for(i=0;i<9;){ //分两屏,上半屏和下半屏,因为起始地址不同,需要分开for(x=0;x<32;x++){ //32行Write_12864_Cmd(0x34);Write_12864_Cmd(0x80+x);//列地址Write_12864_Cmd(0x80+i); //行地址,下半屏,即第三行地址0X88Write_12864_Cmd(0x30);for(y=0;y<16;y++)Write_12864_Dat(im[tmp+y]);//读取数据写入LCDtmp+=16;}i+=8;}Write_12864_Cmd(0x36); //扩充功能设定Write_12864_Cmd(0x30);}/*初始化12864*/void Init_Lcd12864(){Read_12864_RAM();Show_Single_12864_Char(0,0,'A');Show_Double_12864_Char(0,0,"AB");Show_12864_NUM(0,0,1,123);Show_12864_ZH(0,0,"预览");Show_12864_EH(0,0,"yulan");Show_12864_IM(imbuf);Write_12864_Cmd(0X30); //8位数据,基本指令Write_12864_Cmd(0X0C); //开显示,关游标Write_12864_Cmd(0X01); //清屏Write_12864_Cmd(0X02); //地址归位Write_12864_Cmd(0X80); //设置DDRAM地址}////////////////////////////////////////////////////////////////////////////////////// MAIN.C文件//////////////////////////////////////////////////////////////////////////////////////////////*主测试函数*/void main(){Init_Lcd12864();Read_12864_RAM();Show_12864_IM(imbuf);Show_12864_EH(0,0,ehbuf);Show_12864_ZH(1,1,zhbuf);while(1);}///////////////////////////////////////////////////////////////。

12864接口程序

12864接口程序

12864接口程序(MCS51模拟口线方式)--------------------------------------------------------------------------------连线图: *LCM---8031* *LCM---8031* *LCM------------8031* *LCM----------8031*; *DB0---P1.0* *DB4---P1.4* *RS-------------P3.0* *CS1----------P3.4* ; *DB1---P1.1* *DB5---P1.5* *RW-------------P3.1* *CS2----------P3.5*; *DB2---P1.2* *DB6---P1.6* *E--------------P3.3; *DB3---P1.3* *DB7---P1.7* */RST-----------VDD (详见说明书);注:8031的晶振频率为12MHz;************************************************************* *************XPOS EQU 20H ;列方向地址指针(用于LCDPOS子程序)YPOS EQU 21H ;行方向地址指针(用于LCDPOS子程序)RSPIN EQU P3.0 ;RWPIN EQU P3.1 ;EPIN EQU P3.3 ;CS1PIN EQU P3.4 ;CS2PIN EQU P3.5 ;ORG 0000HJMP STARTSTART: MOV SP,#60HMAIN:CALL LCDRESETMOV A,#55HCALL LCDFILLMOV DPTR,#STRING1CALL PUTSTRCALL PUTSTRJMP MAINDELAY400MS:MOV R0,#20 ;延时子程序(400MS)DL4_PA: MOV R1,#100DL4_PB: MOV R2,#100DJNZ R2,$DJNZ R1,DL4_PBDJNZ R0,DL4_PARETDELAY:MOV R6,#2DLY_PA: MOV R5,#0DLY_PB: MOV R4,#0DJNZ R4,$DJNZ R5,DLY_PB DJNZ R6,DLY_PA RET GETSTRCHAR: GSC_PA:CLR AMOVC A,@A+DPTR INC DPTRMOV B,AINC ACLR CJZ GSC_LAXCLR AMOVC A,@A+DPTR INC DPTRSETB CGSC_LAX:RETPUTSTR:CALL DELAYCALL GETSTRCHAR PUSH DPLPUSH DPHJNC PSR_LAXJNB B.7,PSR_LBY ;CHINESE:CALL HZKPOS CALL PUTCHARDOT CALL PUTCHARDOT JMP PSR_LBXPSR_LBY:;ENGLISH:CALL HZKPOS CALL PUTCHARDOT PSR_LBX:POP DPHPOP DPLJMP PUTSTRPSR_LAX:POP DPH POP DPLRET PUTCHARDOT: MOV R7,#8PAC_PA:CLR AMOVC A,@A+DPTRCALL LCDWRITEINC YPOSINC DPTRCLR AMOVC A,@A+DPTRCALL LCDWRITEDEC YPOSINC DPTRCALL CUSORNEXTMOV A,XPOSJNZ PAC_LAXINC YPOSPAC_LAX:DJNZ R7,PAC_PARETHZKPOS:MOV R2,#5HTP_PA:CLR CRLC AXCH A,BRLC AXCH A,BDJNZ R2,HTP_PAMOV DPTR,#HZKDOTADD A,DPLMOV DPL,AMOV A,BADDC A,DPHMOV DPH,ARETLCDFILL: ;LCD整屏显示A的内容 MOV R7,AMOV YPOS,#0LFL_PB: MOV XPOS,#0LFL_PA: MOV A,R7CALL LCDWRITE ;定位并写数据CALL CUSORNEXTMOV A,XPOSJNZ LFL_PA ;XPOS<128则循环(128列)MOV A,YPOSJNZ LFL_PB ;YPOS<8则循环(8页)RETLCDWRITE: ;定位并写数据子程序CALL LCDPOS ;内部写数指针定位CALL LCDWD ;写数据RETCUSORNEXT:ANL YPOS,#7INC XPOSMOV A,XPOSJNB ACC.7,CNT_LAXMOV XPOS,#0INC YPOSMOV A,YPOSANL A,#0F8HJZ CNT_LAXMOV YPOS,#0CNT_LAX:RETLCDPOS: ;内部写数指针定位子程序PUSH ACCMOV A,XPOSJB ACC.6,LPS_LAYMOV A,YPOS ;XPOS列方向小于64则对CS1操作ANL A,#07HADD A,#0B8HCALL LCDWC1 ;设页码MOV A,XPOSANL A,#3FHORL A,#40HCALL LCDWC1 ;设列码JMP LPS_LAXLPS_LAY:MOV A,YPOS ;XPOS列方向大于等于64则对CS2操作 ANL A,#07HADD A,#0B8HCALL LCDWC2 ;设页码MOV A,XPOSANL A,#3FHORL A,#40HCALL LCDWC2 ;设列码LPS_LAX:POP ACCRETLCDWD: ;送数据子程序MOV B,AMOV A,XPOSJB ACC.6,LWD_LAYMOV A,B ;XPOS列方向小于64则对CS1操作CALL LCDWD1JMP LWD_LAXLWD_LAY:MOV A,B ;XPOS列方向大于等于64则对CS2操作 CALL LCDWD2LWD_LAX:RETLCDRESET: ;LCD控制器复位MOV A,#3FH ;打开LCD显示CALL LCDWC1CALL LCDWC2MOV A,#0C0H ;设显示起始行CALL LCDWC1CALL LCDWC2RETLCDWC1: ;送片1控制字子程序CALL WAITIDLE1MOV P1,ACLR RSPIN ;RS=0 RW=0 CS1=1 E=高脉冲CLR RWPINSETB CS1PINSETB EPINNOPCLR EPINCLR CS1PINRETLCDWC2: ;送片2控制字子程序CALL WAITIDLE2MOV P1,ACLR RSPIN ;RS=0 RW=0 CS2=1 E=高脉冲CLR RWPINSETB CS2PINSETB EPINNOPCLR EPINCLR CS2PINRETLCDWD1: ;片1写数据子程序CALL WAITIDLE1MOV P1,ASETB RSPIN ;RS=1 RW=0 CS1=1 E=高脉冲CLR RWPINSETB CS1PINSETB EPINNOPCLR EPINCLR CS1PINRETLCDWD2: ;片2写数据子程序CALL WAITIDLE2MOV P1,ASETB RSPIN ;RS=1 RW=0 CS2=1 E=高脉冲 CLR RWPINSETB CS2PINSETB EPINNOPCLR EPINCLR CS2PINRETLCDRD1: ;片1读数据子程序CALL WAITIDLE1MOV P1,#0FFHSETB RSPIN ;RS=1 RW=1 CS1=1 E=高电平 SETB RWPINSETB CS1PINSETB EPINNOPMOV A,P1CLR EPINCLR CS1PINRETLCDRD2: ;片2读数据子程序CALL WAITIDLE2MOV P1,#0FFHSETB RSPIN ;RS=1 RW=1 CS1=2 E=高电平 SETB RWPINSETB CS2PINSETB EPINNOPMOV A,P1CLR EPINCLR CS2PINRETWAITIDLE1:MOV P1,#0FFHCLR RSPIN ;RS=0 RW=1 CS1=1 E=高电平SETB RWPINSETB CS1PINSETB EPINWT1_PA: NOPJB P1.7,WT1_PACLR EPINCLR CS1PINRETWAITIDLE2:CLR RSPIN ;RS=0 RW=1 CS2=1 E=高电平SETB RWPINSETB CS2PINSETB EPINWT2_PA: NOPJB P1.7,WT2_PACLR EPINCLR CS2PINRETHZKDOT:;(d3d0H)(有)(8000)DB 04H, 04H, 04H, 02H, 04H, 01H, 84H, 00HDB 0e4H,0ffH, 3cH, 09H, 27H, 09H, 24H, 09HDB 24H, 09H, 24H, 49H, 24H, 89H,0f4H, 7fHDB 24H, 00H, 06H, 00H, 04H, 00H, 00H, 00H;(cfdeH)(限)(8001)DB 00H, 00H,0feH,0ffH, 02H, 08H, 22H, 10HDB 0daH, 08H, 06H, 07H, 00H, 00H,0feH,0ffHDB 92H, 42H, 92H, 24H, 92H, 08H, 92H, 14HDB 0ffH, 22H, 02H, 61H, 00H, 20H, 00H, 00H;(b9abH)(公)(8002)DB 00H, 01H, 00H, 01H, 80H, 00H, 40H, 30HDB 30H, 28H, 0cH, 24H, 00H, 23H,0c0H, 20HDB 06H, 20H, 18H, 28H, 20H, 30H, 40H, 60HDB 80H, 00H, 80H, 01H, 80H, 00H, 00H, 00H;(cbbeH)(司)(8003)DB 10H, 00H, 10H, 00H, 92H, 3fH, 92H, 10HDB 92H, 10H, 92H, 10H, 92H, 10H, 92H, 10HDB 0d2H, 3fH, 9aH, 00H, 12H, 40H, 02H, 80HDB 0ffH, 7fH, 02H, 00H, 00H, 00H, 00H, 00HSTRING1: DB 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffHSTRING2: DB 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH。

第9章 AT89C51与键盘、显示器的接口设计

第9章 AT89C51与键盘、显示器的接口设计

扫描法和线反转法
a、扫描法:2步 第1步:识别键盘有无键按下。
具体方法:把所有列线置低,检查各行线电平是否有变化,有变化, 有键按下,否则无键按下。
第2步:如有键被按下,识别出具体的按键。
具体方法:即先把某一列置低,其余列置高,检查各行线电平 如果某行线电平为低,则可确定此行此列交叉点处 的按键被按下。 扫描法的缺点:
– 扫描法,逐列置低读行线电平
• (4)等待按键释放后,再进行按键功能的处 理操作。
10.3
键盘/显示器接口设计实例(几种实用的设计方案)
10.3.1 利用并口实现键盘/显示器接口
硬件接口电路:
P1.7 . . P1.0
P2.0 P2.1 P2.2 P2.3
P0
P1控制键盘列线的扫描,同时又是6位共阴极显示器的位扫 描口。P0口作为显示器段码输出口,P2口作为键盘的行线状态 的输入口。在主程序初始化中设置。 75452:反相驱动器,7407:同相驱动器。
5.对于下图的键盘,采用线反转法原理来 编写出识别某一按键被按下并得到其键号的 程序。
表10-1
显示字符 0 共阴极 段码 3FH C0H
LED段码(8段)
共阳极 段码 显示字符 c 共阴极 段码 39H 共阳极 段码 C6H
1 2
3 4 5 6 7 8
06H 5BH
4FH 66H 6DH 7DH 07H 7FH
F9H A4H
B0H 99H 92H 82H F8H 80H
d E
F P U T y H
5EH 79H
71H 73H 3EH 31H 6EH 76H
A1H 86H
8EH 8CH C1H CEH 91H 89H
9

第9章AT89C51扩展IO接口的设计

第9章AT89C51扩展IO接口的设计第9章 AT89C51扩展IO接口的设计为了满足AT89C51单片机扩展更多IO接口的需求,本章将介绍一种设计方案,旨在增加AT89C51单片机的可扩展性和灵活性。

设计目标:1. 增加AT89C51单片机的IO接口数量,使其能够连接更多的外设设备;2. 提高IO接口的可靠性和稳定性,以确保数据传输的准确性;3. 简化硬件设计,减少电路的复杂度;4. 方便用户使用和维护。

设计思路:本方案采用串行并行转换器(Serial-to-Parallel Converter)来扩展AT89C51单片机的IO接口。

通过串行并行转换器,可以将AT89C51单片机的串行数据信号转换成并行数据信号,从而实现与更多外设设备的连接。

硬件设计:1. 连接AT89C51单片机的TXD引脚和串行并行转换器的串行数据输入端;2. 连接串行并行转换器的并行数据输出端和外设设备的输入端;3. 连接AT89C51单片机的相应引脚和外设设备的控制引脚,用于控制数据的发送和接收。

软件设计:1. 初始化AT89C51单片机的串行通信模块,设置波特率和其他串口参数;2. 编写程序代码,实现与外设设备的数据交互。

例如,发送数据到外设设备或接收来自外设设备的数据;3. 根据具体需求,编写相应的中断服务程序,以处理外设设备的数据请求或其他事件。

实施与测试:1. 绘制电路板原理图,并按照设计要求进行布线;2. 制作电路板,焊接元件;3. 完成电路板的调试,检查连接是否正确,电路是否正常工作;4. 编写测试程序,通过串行通信模块发送和接收数据,验证扩展IO 接口的功能;5. 进行充分测试,确保扩展IO接口的稳定性和可靠性。

总结:通过本章所介绍的AT89C51扩展IO接口的设计方案,可以有效地扩展AT89C51单片机的IO接口,并且提高其可靠性和稳定性。

该设计方案简化了硬件电路的复杂度,方便用户使用和维护。

在实施与测试过程中,需要严格按照设计要求进行,以确保扩展IO接口的正常工作。

89C51与OCMJ12232液晶显示模块的接口设计

89C51与OCMJ12232液晶显示模块的接口设计摘要:文章介绍了液晶显示模块OCMJ12232的结构和功能,对其工作原理进行了深入研究,并设计了89C51单片机与液晶模块的接口电路,给出了核心部分显示的汇编语言程序。

该设计具有I/O口线占用少、驱动程序简单的优点。

关键词:液晶模块;89C51单片机;接口电路中图分类号:TN873 文献标识码:BInterface Design of 89C51 and LCD Module OCMJ12232QIU Hong-jie1, LI Ze-tian2(1. Hengshui Special Equipment Test Office, Hengshui Hebei 053000, China;2. Shijiazhuang Mechanical Infantry Academy, Shijiazhuang Hebei 050083, China)Abstract: This paper introduces the structure and characteristics of LCD module OCMJ12232, has deep research on its operating principles and designs theinterface of MCU 89C51 and LCD module, which has the virtue of occupying few I/O buses and simple driver. The paper presents circuit diagram and example program of assembly language.Keywords: LCD module; MCU 89C51; Interface circuit引言液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、显示功能强大等许多其它显示器无法比拟的优点,广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。

12864实例程序


} /********************************************** 函数名称:LCD 初始化 函数功能; 出入参数: ************************************************/ void lcd_init() { write_cmd(0x30); //基本指令操作 delay_1ms(5); write_cmd(0x0c); //显示开,关光标 delay_1ms(5); write_cmd(0x01); //清除 LCD 的显示字符 delay_1ms(5); write_cmd(0x06); delay_1ms(5); } /********************************************** 函数名称:定时初始化 函数功能; 出入参数: ************************************************/ void init() { IE =0x8a; //=====1000 1010 开总中断, 启用 TF0.TF1 中断 TMOD=0X01; //=====0010 0001 T1 启用 mode2,T0 采用 mode1 TH0 =TH_M1; TL0 =TL_M1; //=====设置 T0 计数高 8 位,低 8 位 TR0 =1; //启动 T0 } /********************************************** 函数名称:主函数
PDF created with pdfFactory Pro trial version
uchar minutes=27; uchar seconds=0; /********************************************** 函数名称:延时函数 函数功能;1ms 出入参数: ************************************************/ void delay_1ms(uint x) { uint i,j; for(i=0;i<x;i++) for(j=0;j<110;j++); } /********************************************** 函数名称:写指令数据到 LCD 函数功能;RS=L;RW=L;E=高脉冲,D0-D7=指令码 出入参数: ************************************************/ void write_cmd(uchar cmd) { LCD_RS=0; LCD_RW=0; LCD_E=0; P0=cmd; delay_1ms(5); LCD_E=1; delay_1ms(5); LCD_E=0; } /********************************************** 函数名称:写显示数据到 LCD 函数功能;RS=H;RW=L;E=高脉冲,D0-D7=数据 出入参数: ************************************************/ void write_dat(uchar dat) { LCD_RS=1; LCD_RW=0; LCD_E=0; P0=dat; delay_1ms(5); LCD_E=1; delay_1ms(5); LCD_E=0;

C51语言与LCM12864ZK的接

C51 语言与LCM12864ZK 的接
C51 语言与LCM12864ZK 的接口控制技术
介绍LCM12864ZK 的原理及功能,给出了MCU 与LCM128 64ZK 的硬件接口电路,同时根据LCM12864ZK 的汉字显示指令,给出了相应的控制软件程序。

关键词:液晶;LCM12864ZK;C51 语言
Interface Control Technology of C51 and LCM12864ZK
LIU Jianhua, WANG Shuohe, HAO Ronghua, LIU Min, GENG Peng (Department of Electrical Engineering, Shijiazhuang Railway InsTItute , Shijiazhuang 050043, China)
Key words: LCD; LCM12864ZK; C51
1 引言
液晶显示器件与LED 相比,具有工作电压低、功耗低、显示信息量大、寿命长等优点。

因此,在移动通信、仪器仪表、电子设备和家用电器等方面有着日益广泛的应用。

LCM12864ZK 是北京青云创新科技发展有限公司推出的带中文字库图形的液晶显示模块,其功能较强,控制简单。

(1)工作电压为3V 或5V;(2)液晶屏幕为128×64,可显示4 行,每行可显示8 个汉字;(3)具有4 种工作模式:并行8 位、并行4 位、串行3 线和串行2 线;(4)内带汉字库。

LCM12864ZK 引脚功能如表1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图 1 液晶模块的内部结构
收 期 20 5)3 哈 人,士, 教 主 方向 电 型, 电 。 鍪 衡l 7 一 , —28 滨 博 副 授. 研 :磁成 继 保护 稿日 1 1 —0 查 9 0 男,尔 :
维普资讯
6期
赵 志衡 等 :9 5 与液 晶模块 MS 8C 1 C—G 26 18 4的接 I设计 S l
点阵式图形液晶显示模块 , 该模块使用方便 。 具有显 示屏屏幕小巧 、 分辨率高(4× 2 个显示像素)外 6 18 、 接管脚少(0个) 2 等优点 , 可广泛地应用 于电子电 气产品 中。但其 接 口电路设计 复杂 , 一般 要 占用
型值 为 1 .V; 2 9 背景灯工作 电压 的典型值为 4 2 。 .V 液晶模块 的内部结构如图 1 所示。
It f c sg f 9 1a d L n e a e De in o C5 n CD d l 8 Mo ue MSC —G1 8 4 2 6
Z HAO Z i e g, h —h n MA i —h iL e J n a , IW n—qn , O e —mig ig T NG W i n
( ab ntuefTcnl y H r n10 0 , hn ) H ri Is tto ehoo , ab 5 0 1 C i n i g i a
Ab t a t T i p p ri t d c ste sr cu e a d c aa tr t s o C d l C —G1 8 4, a sr c : h s a e nr u e h t t r n h r ce i i fL D mo u e MS o u sc 26 hs
m l r g a a pep o r . m
Ke r s L d l MC 9 5 ;nefc i ut y wo d : CD mo ue; U 8 C Itr ecr i 1 a c
1 引 言
液晶显示器 已广泛地应用于 自动化仪表、 计算 机 、 视 等家 用 和 工 业 显 示 领 域。液 晶显 示 器 电 ( C 是 一种 被 动式 显 示器 , 动功 耗 低 , 与 L D) 驱 易
1 0
1 3
1 4
1 5
1 6

l里 I 竺I l I兰 I l里 l里 l里 l l里 I l里 l l l兰 竺 里 里 里 里 里兰 里 旦 里 里 2 曼 璺 A、 : 一背 景灯 阳极 , 一背 景灯 阴极 。 KA K A= 表2 控制指令
-l 3-
图 1 K O O B为液晶模块 内置的显示控制 中, S I7 器, S I8 K O O B为显示驱动器 。
1 2
2 1 引脚殛其功能 . 液 晶模块 2 个 引脚 的定义如表 1 0 所示。
1 1 1 2
表 1 引脚名称




7 8Biblioteka 9( 哈尔滨工业大学, 哈尔滨 10 0 ) 5 0 1 摘 要: 介绍 了液晶模块 M C— 184的结构和功能, S G 26 对其工作原理进行 了深入研究, 并设计 了8C 1 9 5 单片机与液 晶模块的接 口电路, 给出了工程应用 中的电路原理图及例程。该设计具有 I / , O 口线占用少、 动程序编写简单的优点。 驱 关键词 : 液晶模块 ; C 1 8 5 单片机 ; 口电路 9 接 中图分类号 :N 7 T 83 文献标识码: B 文章编号 : 0 27 (O 6 0 0 1 — 3 1 2— 2 9 2 o )6— 0 2 0 0
d e ee rho t o eai gp n ilsa dd s n eitr c f e p rs ac ni p rt r cpe n e i st nef eo U 9 5 n C mo ue w ih s n i g h a MC 8 a dL D d l , hc C 1 h stevr eo c u yn e / u e d smped v r T e p p rp ee t i utda rm n x a i u fo c p igfw L O b s sa i l r e . h a e r snscr i iga a d e — h t n i c
42 , 0 .V K= V时背景灯点亮 ; V U 、 O: 晶显 示 驱 动 电压 , 常工 作 时 O TV 液 正
0 7/8 2 1 1I t9
M U较多 的 LO 口线 。在研究该液 晶模块工作 C / J 原理 、 时序的基础上 , 8 C 1 以 9 5 为核心, 设计一种占 用 IO 口线 较 少 的 接 口 电路 , 液 晶模块 成 为 / 使 8 C 1的一个外部 R M单元 , 95 A 并给出相应的显示驱 动程序。
维普资讯
No 6 .




De ..O 6 c 2 0
MI CROP ROCES ORS S
第6 期 20 0 6年 1 2月
8 与 液 晶模 块 M C—G 6 95 C1 S 184的接 口设 计 2
赵 志衡 , 海 , 马金 李文清 , 为 明 佟
C O 集成电路相 匹配 , M S 在袖珍显示 器和低 功耗便 携式仪器仪表上得到广泛应用…。
M C— 184模块是信利半 导体公 司推 出的 S G 26
2 液 晶模块 的结构及功 能
该模块电源 电压 V D范围为 4 5— .V 典型 D . 55 , 值 50 ;C .V L D的工作 电压 V D— O在 2 。 D V 5 C时典
相关文档
最新文档