找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8946|回复: 10
打印 上一主题 下一主题
收起左侧

12864.h头文件下载 可直接调用的51单片机液晶驱动程序

  [复制链接]
跳转到指定楼层
楼主
我这个12864.h 头文件的调用方法(51单片机)是不是很简单:
  1. #include<stc12c5a60s2.h>
  2. #include<12864.h>

  3. void main()
  4. {
  5. LCDInit();
  6. Str_6x12(1,0,"苏冰航");
  7. Str_6x12(2,0,"2015212211035");        
  8.         
  9. while(1){}

  10. }
复制代码



12864.h液晶驱动的头文件内容预览(附件里面可下载完整代码):
  1. #include <STC12C5A60S2.H>
  2. #include <string.H>
  3. #include <intrins.h>

  4. #define uint  unsigned int
  5. #define uchar unsigned char
  6. /**************************************************************
  7. 12864基本指令宏定义
  8. **************************************************************/
  9. #define     SCREEN_CLEAR            0XF4        //整屏清屏命令
  10. #define     BACK_ONOFF              0XB5        //背光开关命令
  11. #define     CONTRAST_GRADIENT       0XE6        //对比度调整命令
  12. #define     TEMPERATURE_SET         0XEE        //设置温度补偿开关和系数命令
  13. #define     SOFT_RESET              0XEF        //复位命令
  14. #define     SINGLE_DOT              0XF2        //任意点: 显示命令
  15. #define     DRAWLINE                0XC5        //任意点: 画线
  16. #define     SCREEN_ONOFF            0XFE        //屏幕开命令
  17. #define     STR_ASCII_8X8_LOC       0XDF        //任意点: 显示8X8ASCII字符串命令
  18. #define     STR_6X12                0XB9        //固定处: 显示12X12中文和6X12ASCII混合字符串命令
  19. #define     WHOLE_MOVE_RIGHT        0XF8        //整屏右移命令


  20. //********************
  21. //UART口初始化 串口中断初始化
  22. //********************
  23. void Uart_Init(void)
  24. {
  25.         TMOD = 0x20;                                //timer 1 working mode 1
  26.         TL1  = 0xfa;                                //   fa=9600 for 1.0592mhz Fosc,and ...
  27.         TH1  = 0xfa;                                //...fd=19200 for 11.0592mhz Fosc
  28.         SCON = 0x50;//d8                         //uart mode 3,ren==1   1100 1000
  29.         PCON = 0x80;                                //smod=1
  30.         TR1  = 1;                                //start timer1
  31. }
  32. //********************
  33. //延时函数100us
  34. //********************
  35. void Delay_100us(uint j)          //对于11.0592MHz时钟延时100us
  36. {
  37.         uchar i;
  38.         while(j--)
  39.         {
  40.                 for(i=0;i<12;i++)
  41.                 {}
  42.         }
  43. }
  44. //*********************
  45. //串口方式写数据
  46. //*********************
  47. void put_char(uchar ch)
  48. {        
  49.         SBUF = ch;  
  50.         while( TI == 0 );                        //查询法
  51.           TI = 0;
  52. }
  53. /*************************************************************
  54. 函数名称:Screen_Clear
  55. 函数功能:整屏清屏
  56. 调用函数:NO
  57. 被调函数:NO
  58. 输入参数:NO
  59. 输出参数:NO
  60. 函数返回:NO
  61. 其他说明:NO     
  62. *************************************************************/
  63. void Screen_Clear(void)
  64. {                                                
  65.         put_char(SCREEN_CLEAR);                                                                   //0xE3 行位置0-7 列位置0-25 ASC2字符代码 9*16 0-9数字
  66.         Delay_100us(600);        //延时
  67. }
  68. /*************************************************************
  69. 函数名称:Back_Onoff
  70. 函数功能:背光开关命令
  71. 调用函数:NO
  72. 被调函数:NO
  73. 输入参数:Back-背光开关(0/1)
  74. 输出参数:NO
  75. 函数返回:NO
  76. 其他说明:NO
  77. *************************************************************/
  78. void Back_Onoff(unsigned char Back)
  79. {
  80.     put_char(BACK_ONOFF);
  81.     put_char(Back);
  82.         Delay_100us(600);        //延时
  83. }
  84. /*************************************************************
  85. 函数名称:Contrast_Gradient
  86. 函数功能:显示对比度设置
  87. 调用函数:NO
  88. 被调函数:NO
  89. 输入参数:Contrast-对比度级数(0-63)
  90. 输出参数:NO
  91. 函数返回:NO
  92. 其他说明:NO
  93. *************************************************************/
  94. void Contrast_Gradient(unsigned char Contrast)
  95. {
  96.     put_char(CONTRAST_GRADIENT);
  97.     put_char(Contrast);
  98.         Delay_100us(600);        //延时
  99. }
  100. /*************************************************************
  101. 函数名称:Temperature_Set
  102. 函数功能:温度补偿开关和系数
  103. 调用函数:NO
  104. 被调函数:NO
  105. 输入参数:Temperature-温度补偿系数,0-关闭,1-5为系数
  106. 输出参数:NO
  107. 函数返回:NO
  108. 其他说明:NO
  109. *************************************************************/
  110. void Temperature_Set(unsigned char Temperature)
  111. {
  112.     put_char(TEMPERATURE_SET);
  113.     put_char(Temperature);
  114.         Delay_100us(600);        //延时
  115. }
  116. /*************************************************************
  117. 函数名称:Soft_Reset
  118. 函数功能:复位
  119. 调用函数:NO
  120. 被调函数:NO
  121. 输入参数:NO
  122. 输出参数:NO
  123. 函数返回:NO
  124. 其他说明:NO
  125. *************************************************************/
  126. void Soft_Reset(void)
  127. {
  128.     put_char(SOFT_RESET);
  129.         Delay_100us(600);        //延时
  130. }
  131. /*************************************************************
  132. 函数名称:Whole_Move_Right
  133. 函数功能:整屏右移
  134. 调用函数:NO
  135. 被调函数:NO
  136. 输入参数:NO
  137. 输出参数:NO
  138. 函数返回:NO
  139. 其他说明:NO     
  140. *************************************************************/
  141. void Whole_Move_Right(void)
  142. {
  143.         put_char(WHOLE_MOVE_RIGHT);                                                                   //0xE3 行位置0-7 列位置0-25 ASC2字符代码 9*16 0-9数字
  144.         Delay_100us(100);        //延时
  145. }
  146. /*************************************************************
  147. 函数名称:Single_Dot
  148. 函数功能:在指定位置显示一个点
  149. 调用函数:NO
  150. 被调函数:NO
  151. 输入参数:Y-行数(0-63),X-列数(0-127)
  152. 输出参数:NO
  153. 函数返回:NO
  154. 其他说明:在MCU端口初始化时调用     
  155. *************************************************************/
  156. void Single_Dot(unsigned char Y, unsigned char X)
  157. {
  158.     put_char(SINGLE_DOT);
  159.     put_char(Y);
  160.     put_char(X);
  161.         Delay_100us(100);        //延时
  162. }
  163. /*************************************************************
  164. 函数名称:Drawline
  165. 函数功能:任意点画线
  166. 调用函数:NO
  167. 被调函数:NO
  168. 输入参数:CursorY-起始点行坐标(0-63),CursorX-起始点坐标(0-127)
  169.           LH-0画垂直线,1画水平线,Line-画清零/实线/虚线(0/1/2)
  170.           S-显示内容
  171. 输出参数:NO
  172. 函数返回:NO
  173. 其他说明:NO
  174. *************************************************************/
  175. void Drawline(unsigned char CursorY, unsigned char CursorX,
  176.                           unsigned char LH, unsigned char Line, unsigned char LineLen)
  177. {
  178.     put_char(DRAWLINE);
  179.     put_char(CursorY);
  180.     put_char(CursorX);
  181.     put_char(LH);
  182.     put_char(Line);
  183.     put_char(LineLen);                 // 显示字符
  184.         Delay_100us(600);        //延时
  185. }
  186. /*************************************************************
  187. 函数名称:Screen_Onoff
  188. 函数功能:屏幕全亮命令0/1
  189. 调用函数:NO
  190. 被调函数:NO
  191. 输入参数:Switch-开关(0/1)
  192. 输出参数:NO
  193. 函数返回:NO
  194. 其他说明:NO
  195. *************************************************************/
  196. void Screen_Onoff(unsigned char Switch)
  197. {
  198.     put_char(SCREEN_ONOFF);
  199.     put_char(Switch);
  200.     put_char(02);
  201.         Delay_100us(600);        //延时
  202. }
  203. /*************************************************************
  204. 函数名称:Str_Ascii_8x8_Loc
  205. 函数功能:任意点显示一个8X8的ASCII字符串
  206. 调用函数:NO
  207. 被调函数:NO
  208. 输入参数:CursorY-左上角行坐标(0-56),CursorX-左上角坐标(0-120)
  209.           S-显示内容
  210. 输出参数:NO
  211. 函数返回:NO
  212. 其他说明:NO
  213. *************************************************************/
  214. void Str_Ascii_8x8_Loc(unsigned char CursorY, unsigned char CursorX, unsigned char *s)
  215. {
  216.     put_char(STR_ASCII_8X8_LOC);
  217.     put_char(CursorY);
  218.     put_char(CursorX);
  219.     while (*s)                          
  220.     {
  221.         put_char(*s);                 // 显示字符
  222.         s++;
  223.     }
  224.     put_char(0X00);                   //结束符
  225.         Delay_100us(600);        //延时
  226. }
  227. /*************************************************************
  228. 函数名称:Str_6x12
  229. 函数功能:在指定位置显示12X12中文和6X12ASCII字符串
  230. 调用函数:NO
  231. 被调函数:NO
  232. 输入参数:Y-行数(0-3),X-列数(0-15), *S-显示内容
  233. 输出参数:NO
  234. 函数返回:NO
  235. 其他说明:NO
  236. *************************************************************/
  237. void Str_6x12(unsigned char Y, unsigned char X, unsigned char *s)
  238. {
  239.     put_char(STR_6X12);
  240.     put_char(Y);
  241.     put_char(X);
  242.     while (*s)                          
  243.     {
  244.         put_char(*s);                 // 显示字符
  245.         s++;
  246.     }
  247.     put_char(0X00);                   //结束符
  248.         Delay_100us(600);        //延时
  249. }R
  250. /***********************************************************
  251. 函数名称:LCDInit
  252. 函数功能:12864初始化
  253. 输入参数:无
  254. ***********************************************************/
  255. void LCDInit(void)
  256. {
  257.         uchar i;
  258.         Soft_Reset();                                        //复位
  259.         Screen_Clear();                 //函数功能:整屏清屏
  260.         Uart_Init();                        //串口初始化
  261.         Back_Onoff(1);                                        //打开背光

  262.         …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


全部资料下载地址:
12864.rar (33.71 KB, 下载次数: 180)




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:375003 发表于 2018-7-28 01:12 | 只看该作者
终于搞好了,好深的坑啊.错误的地方太多.浪费太多的时间,有图有真象.

IMG_0193.JPG (2.01 MB, 下载次数: 30)

IMG_0193.JPG

OLED12864.zip

74.58 KB, 下载次数: 30, 下载积分: 黑币 -5

评分

参与人数 1黑币 +80 收起 理由
admin + 80 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:219862 发表于 2017-7-15 13:05 | 只看该作者
谢楼主分享
回复

使用道具 举报

地板
ID:217154 发表于 2018-4-23 20:38 | 只看该作者
谢谢楼主分享,最近正在做这方面的,很需要~~~
回复

使用道具 举报

5#
ID:343953 发表于 2018-6-3 13:37 | 只看该作者
我来看看哈
回复

使用道具 举报

6#
ID:377923 发表于 2018-7-23 14:58 | 只看该作者
好东西,可是小白下载不到啊。 5555

评分

参与人数 1黑币 +5 收起 理由
huaxinnan + 5 资助一下

查看全部评分

回复

使用道具 举报

7#
ID:269211 发表于 2018-7-25 16:55 | 只看该作者
你这个是带字库的吧。
回复

使用道具 举报

8#
ID:379198 发表于 2018-7-25 23:16 | 只看该作者
谢楼主分享
回复

使用道具 举报

9#
ID:522838 发表于 2019-4-27 12:35 | 只看该作者
楼主这个硬件怎么连接呢
回复

使用道具 举报

10#
ID:243394 发表于 2019-7-8 16:38 | 只看该作者
谢楼主分享
回复

使用道具 举报

11#
ID:452731 发表于 2019-7-11 23:32 | 只看该作者
四根线连接,和一般的连接方式不同
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表