lcd1602引脚功能(lcd1602)

你们好,最近小未来发现有诸多的小伙伴们对于lcd1602引脚功能,lcd1602这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、 新建工程

2、 新代码文件

3、 将代码复制到文件

4、 代码:

5、

10、 //头文件:

11、 #include reg52.h

12、

33、 void main(void)

34、 {

35、 Delay400Ms(); //启动等待,等LCD讲入工作状态

36、 LCDInit(); //初始化

37、 Delay5Ms(); //延时片刻(可不要)

38、 DisplayListChar(0, 0, uctech);

39、 DisplayListChar(0, 5, net);

40、 ReadDataLCD();//测试用句无意义

41、 while(1);

42、 }

43、

44、 void WriteDataLCD(unsigned char WDLCD)

45、 {

46、 ReadStatusLCD(); //检测忙

47、 LCD_Data=WDLCD;

48、 LCD_RS=1;

49、 LCD_RW=0;

50、 LCD_E=0; //若晶振速度太高可以在这后加小的延时

51、 LCD_E=0; //延时

52、 LCD_E=1;

53、 }

54、

55、 void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测

56、 {

57、 if (BuysC) ReadStatusLCD(); //根据需要检测忙

58、 LCD_Data=WCLCD;

59、 LCD_RS=0;

60、 LCD_RW=0;

61、 LCD_E=0;

62、 LCD_E=0;

63、 LCD_E=1;

64、 }

65、

66、 unsigned char ReadDataLCD(void)

67、 {

68、 LCD_RS=1;

69、 LCD_RW=1;

70、 LCD_E=0;

71、 LCD_E=0;

72、 LCD_E=1;

73、 return(LCD_Data);

74、 }

75、

76、 unsigned char ReadStatusLCD(void)

77、 {

78、 LCD_Data=0xFF;

79、 LCD_RS=0;

80、 LCD_RW=1;

81、 LCD_E=0;

82、 LCD_E=0;

83、 LCD_E=1;

84、 while (LCD_Data Busy); //检测忙信号

85、 return(LCD_Data);

86、 }

87、

88、 void LCDInit(void)

89、 {

90、 LCD_Data=0;

91、 WriteCommandLCD(0x38,0); //三次模式设置,不检测忙信号

92、 Delay5Ms();

93、 WriteCommandLCD(0x38,0);

94、 Delay5Ms();

95、 WriteCommandLCD(0x38,0);

96、 Delay5Ms();

97、 WriteCommandLCD(0x38,1); //显示模式设置,开始要求每次检测忙信号

98、 WriteCommandLCD(0x08,1); //关闭显示

99、 WriteCommandLCD(0x01,1); //显示清屏

100、 WriteCommandLCD(0x06,1); //显示光标移动设置

101、 WriteCommandLCD(0x0C,1); //显示开及光标设置

102、 }

103、

104、 void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

105、 {

106、 Y=0x1;

107、 X=0xF; //限制X不能大于15,Y不能大于1

108、 if (Y) X |=0x40; //当要显示第二行时地址码+0x40;

109、 X |=0x80; //算出指令码

110、 WriteCommandLCD(X, 0); //这里不检测忙信号,发送地址码

111、 WriteDataLCD(DData);

112、 }

113、

114、 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)

115、 {

116、 unsigned char ListLength;

117、 ListLength=0;

118、 Y=0x1;

119、 X=0xF; //限制X不能大于15,Y不能大于1

120、 while (DData[ListLength]=0x20){ //若到达字串尾则退出

121、 if (X=0xF){ //X坐标应小于0xF

122、 DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符

123、 ListLength++;

124、 X++;

125、 }

126、 }

127、 }

128、

129、 void Delay5Ms(void)

130、 {

131、 unsigned int TempCyc=5552;

132、 while(TempCyc--);

133、 }

134、

135、 void Delay400Ms(void)

136、 {

137、 unsigned char TempCycA=5;

138、 unsigned int TempCycB;

139、 while(TempCycA--){

140、 TempCycB=7269;

141、 while(TempCycB--);

142、 }

143、 }

144、 把文件添加到组

145、 编译

146、 代码简介。具体请看看代码注释

147、 如果你改了代码,就要重新编译

148、 连线,下载

149、 效果

以上就是lcd1602这篇文章的一些介绍,希望对大家有所帮助。

免责声明:本文章由会员“高俊一”发布如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系

高俊一
免责声明:本文章由会员“高俊一”发布,如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务;如因作品内容、版权和其他问题请于本站联系