当前位置:首页 > 嵌入式 > 嵌入式硬件


SMC1602A(16*2)模拟口线接线方式
连接线图:
;;;;;; ---------------------------------------------------
;;;;;; |LCM-----51;; | LCM-----51;; | LCM------51;;;;;;|
;;;;;; --------------------------------------------------|
;;;;;; |DB0-----P1.0 | DB4-----P1.4 | RW-------P2.0;;;;|
;;;;;; |DB1-----P1.1 | DB5-----P1.5 | RS-------P2.1;;;;|
;;;;;; |DB2-----P1.2 | DB6-----P1.6 | E--------P2.2;;;;|
;;;;;; |DB3-----P1.3 | DB7-----P1.7 | VLCD接1K电阻到GND|
;;;;;; ---------------------------------------------------Keyboard接线
;; PS/2--------51
;;;;;;1 DATA------P3.4
;; 3 GND
;;;;;;4 VCC
;;;;;;5 CLK-------P3.3 接在51的外部中断,触发方式为低电平本程序源码只供学习参考,不得应用于商业用途,如有需要请联系作者。[注:AT89x51使用12M或11.0592M晶振,实测使用11.0592M]
[Keil uV2 7.01编译运行通过 程序中没有做键盘数据的奇偶校验]=============================================================*/
#include
#include "scancodes.h"#define LCM_RW;;P2_0 //定义LCD引脚
#define LCM_RS;;P2_1
#define LCM_E;; P2_2
#define LCM_Data;;P1#define Key_Data P3_4 //定义Keyboard引脚
#define Key_CLK;;P3_3#define Busy;;;;0x80 //用于检测LCM状态字中的Busy标识void LCMInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
void Decode(unsigned char ScanCode);
void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
unsigned char code cdle_net[] = {"www.cdle.net--"};
unsigned char code email[] = {"pnzwzw@cdle.net"};
unsigned char code Cls[] = {";;;;;;;;;;;;;;;;"};
static unsigned char IntNum = 0; //中断次数计数
static unsigned char KeyV; //键值
static unsigned char DisNum = 0; //显示用指针
static unsigned char Key_UP=0, Shift = 0;//Key_UP是键松开标识,Shift是Shift键按下标识
static unsigned char BF = 0; //标识是否有字符被收到void main(void)
{
unsigned char TempCyc; Delay400Ms(); //启动等待,等LCM讲入工作状态
LCMInit(); //LCM初始化
Delay5Ms(); //延时片刻(可不要) DisplayListChar(0, 0, cdle_net);
DisplayListChar(0, 1, email);
ReadDataLCM();//测试用句无意义
for (TempCyc=0; TempCyc<10; TempCyc++)
;; Delay400Ms(); //延时
DisplayListChar(0, 1, Cls);

IT1 = 0; //设外部中断1为低电平触发
EA = 1;
EX1 = 1; //开中断 do
;;{
;; if (BF)
;;;;Decode(KeyV);
;; else
;;;;EA = 1; //开中断
;;}
while(1);
}//写数据
void WriteDataLCM(unsigned char WDLCM)
{
ReadStatusLCM(); //检测忙
LCM_Data = WDLCM;
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //若晶振速度太高可以在这后加小的延时
LCM_E = 0; //延时
LCM_E = 1;
}//写指令
void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测
{
if (BuysC) ReadStatusLCM(); //根据需要检测忙
LCM_Data = WCLCM;
LCM_RS = 0;
LC

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭