找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD19264程序_STC12单片机主控

[复制链接]
跳转到指定楼层
楼主
分享刚刚写好的19264屏程序,换点黑币用用


单片机源程序如下:
  1. #include "Delay.h"
  2. #include <math.h>
  3. #include "LCD19264.H"
  4. #include "Self_Encoding.H"
  5. #include "ADC.H"

  6. uint  number;          //数字传递全局变量
  7. uchar code *Char_Data;  //指向程序储存器的指针

  8. uchar data temp[14]={2,0,2,2,1,0,0,1,2,3,2,5,4,8};        //为时钟数字number传递临存数组
  9. char K = 0,DP;    //显示标题时,因分三段显示,而保存已显示过的位置
  10. uchar Additional_Inputs;//其他字符或数字输入值



  11. void STC15_Initialization() //STC15初始化
  12.         {
  13.                  P0M0 = 0X00;
  14.                  P0M1 = 0X00;
  15.                
  16.                  P1M0 = 0X00;
  17.                  P1M1 = 0X00;
  18.                
  19.                  P2M0 = 0X00;
  20.                  P2M1 = 0X00;
  21.                
  22.                  P3M0 = 0X00;
  23.                  P3M1 = 0X00;
  24.                
  25.                  P4M0 = 0X04;
  26.                  P4M1 = 0X00;
  27.                
  28.                  P5M0 = 0X00;
  29.                  P5M1 = 0X00;

  30.                 LDE_DATA = 1;
  31.         }
  32.                
  33.         


  34. /**********************LCD检测是否忙*************************/
  35. bit Read_Status()   //屏幕忙检测
  36. {
  37.          bit Temp;
  38.         Por_Data_Out = 0x00;                  //数据口先全部置位
  39.         LCD19264_RS  = 0;                                                                                        //0 = 写指令      1 = 写数据
  40.         LCD19264_RW  = 1;                                                                                        //低电平为 => 写    高电平为 => 读

  41.         LCD19264_RE  = 1;
  42.         Delay_uS(1);
  43.   Temp  =(bit)(Por_Data_Out& 0x00) ;   //取最高位,1为忙
  44.          LCD19264_RE  = 0;
  45.          return Temp ;
  46. }

  47. void LCD19264_WriteByte(uchar Designated_Area,uchar Num,uchar COM_DATA)  //Designated_Area指定区 Num = 0 写指令   Num = 1 写数据
  48. {

  49.          switch(Designated_Area)//【Num为屏幕的左,中,右显示选择项】
  50.                 {
  51.                         case 1:
  52.                                 LCD19264_CS1 = 0;  LCD19264_CS2 = 1; LCD19264_CS3 = 1;  //【Num为屏幕的左显示选择项】
  53.                                 break;
  54.                         case 2:
  55.                                 LCD19264_CS1 = 1;  LCD19264_CS2 = 0; LCD19264_CS3 = 1;  //【Num为屏幕的中显示选择项】
  56.                                 break;
  57.                         case 3:
  58.                                 LCD19264_CS1 = 1;  LCD19264_CS2 = 1;  LCD19264_CS3 = 0;  //【 Num为屏幕的右显示选择项】
  59.                                 break;
  60.                 }

  61.         LCD19264_RS     =  Num;        //  Num = 0 写指令   Num = 1 写数据
  62.         LCD19264_RW     =  0;          //  低电平为 写,     高电平为读
  63.         LCD19264_RE     =  1;
  64.          
  65.         Delay_uS(1);
  66.         Por_Data_Out    =  COM_DATA;
  67.         LCD19264_RE     =  0;
  68.         while(Read_Status());  //屏幕忙检测,= 1 表示模块在内部操作,此时模块不接受外部指令和数据
  69. }

  70. /*
  71. void Display_Start_Line(uchar Designated_Area,uchar X) //显示起始设置【指定区域 Designated_Area】 {1 , 1 ,(0~63) }
  72. {
  73.          LCD19264_WriteByte(Designated_Area,0,0XC0|X);        //【0 = 写指令】
  74.         
  75. }         */
  76.          
  77. void Set_Address_Y(uchar Designated_Area,uchar Address_Y) //设置列地址    {0 , 1,(0~63)}
  78. {
  79.                   LCD19264_WriteByte(Designated_Area,0,0X40|Address_Y); //【0 = 写指令】
  80. }

  81.         
  82.    
  83. void Set_Page(uchar Designated_Area,uchar Page_Address)  //设置页地址  
  84. {
  85.   LCD19264_WriteByte(Designated_Area,0,0XB8|Page_Address);//【0 = 写指令】  
  86. }         
  87.   

  88. void LCD19264_Initialization() //LCD19264初始化
  89. {
  90.   

  91.         LCD19264_WriteByte(1,0,0X3e);//关闭显示
  92.         LCD19264_WriteByte(1,0,0X02);
  93.         LCD19264_WriteByte(1,0,0X40);//设置 Y 地址
  94.          LCD19264_WriteByte(1,0,0XB8);//设置页地址
  95.   LCD19264_WriteByte(1,0,0XC0);//设置显示起始行
  96.          
  97.   LCD19264_WriteByte(2,0,0X3e);//关闭显示
  98.         LCD19264_WriteByte(2,0,0X02);//
  99.   LCD19264_WriteByte(2,0,0X40);//设置 Y 地址
  100.         LCD19264_WriteByte(2,0,0XB8);//设置页地址
  101.         LCD19264_WriteByte(2,0,0XC0);//设置显示起始行

  102.   
  103.         LCD19264_WriteByte(3,0,0X3e);//关闭显示
  104.         LCD19264_WriteByte(3,0,0X02);
  105.          LCD19264_WriteByte(3,0,0X40);//设置 Y 地址
  106.         LCD19264_WriteByte(3,0,0XB8);//设置页地址
  107.         LCD19264_WriteByte(3,0,0XC0);//设置显示起始行
  108.   
  109.   
  110. }



  111. /******************************************************************************************
  112. *函数名称: Disp_Dots
  113. *功能描述: 显示点、 横、 竖
  114. ******************************************************************************************/

  115. void Disp_Dots(uchar Data1, uchar Data2)//显示点,横,竖
  116. {
  117.         uchar i, j;
  118.         
  119.         for(j = 0; j < 8; j++)
  120.         {
  121.                 for(i = 0; i < 32; i++)
  122.                 {
  123.                   // 【Num为屏幕的左显示选择项】
  124.                   LCD19264_WriteByte(1,0,0XB8+j);      //设置页地址
  125.                          LCD19264_WriteByte(1,0,0X40+i*2);    //设置 Y 地址
  126.                   LCD19264_WriteByte(1,1,Data1);
  127.                          LCD19264_WriteByte(1,0,0X40+i*2 + 1);//设置 Y 地址
  128.                          LCD19264_WriteByte(1,1,Data2);
  129.                         
  130.                          // 【Num为屏幕的中显示选择项】
  131.                         LCD19264_WriteByte(2,0,0XB8+j);      //设置页地址
  132.                          LCD19264_WriteByte(2,0,0X40+i*2);    //设置 Y 地址
  133.                   LCD19264_WriteByte(2,1,Data1);
  134.                          LCD19264_WriteByte(2,0,0X40+i*2 + 1);//设置 Y 地址
  135.                          LCD19264_WriteByte(2,1,Data2);

  136.                         // 【Num为屏幕的右显示选择项】
  137.                         LCD19264_WriteByte(3,0,0XB8+j);      //设置页地址
  138.                          LCD19264_WriteByte(3,0,0X40+i*2);    //设置 Y 地址
  139.                   LCD19264_WriteByte(3,1,Data1);
  140.                          LCD19264_WriteByte(3,0,0X40+i*2 + 1);//设置 Y 地址
  141.                          LCD19264_WriteByte(3,1,Data2);
  142.                  }
  143.         }
  144. }
复制代码

Keil5代码下载:
附件只含程序不含其它任何文件.7z (66.07 KB, 下载次数: 46)

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:230742 发表于 2022-10-5 19:33 | 只看该作者
我也有2个19264的屏,好像是0108驱动的。下载学习一下。感谢分享。
回复

使用道具 举报

板凳
ID:419072 发表于 2022-10-5 19:54 来自手机 | 只看该作者
啥型号的19264啊
回复

使用道具 举报

地板
ID:366877 发表于 2022-10-6 13:29 | 只看该作者
电路图能分享一下吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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