久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7548|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

LCD12864(ks0108驅(qū)動)顯示時間和漢字

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:376586 發(fā)表于 2018-11-10 09:51 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#include "shuzi.h"  //字符庫頭文件
#include "hanzi.h"
#define uchar unsigned char
#define uint unsigned int
uint aa,s,m,h,cc,oo;

sbit cs1=P2^3;
sbit cs2=P2^4;
sbit rw=P2^2;
sbit rs=P2^1;
sbit le=P2^0;
sbit D7=P2^6;
sbit BZ=P2^7;
sbit K1=P3^0;
sbit K2=P3^1;
sbit K3=P3^2;

void delay(uint t)
{
        uint i,j;
        for(i=0;i<t;i++);
        for(j=0;j<10;j++);
}

void CheckState()//狀態(tài)檢查               
{
   rs=0; // 數(shù)據(jù)\指令選擇,D/I(RS)="L" ,表示 DB7∽DB0 為顯示指令數(shù)據(jù)
   rw=1; //R/W="H" ,E="H"數(shù)據(jù)被讀到DB7∽DB0
   P0=0x00;
   le=1;        //EN下降源
   delay(1);//延時
   le=0;
}

void write_com(uchar cmdcode)
{
    CheckState();//檢測LCD是否忙
        rs=0;
        rw=0;
        P0=cmdcode;               
        delay(1);
        le=1;
        delay(1);
        le=0;
}

  void write_date(uchar LCDDispdata)
{
    CheckState();//檢測LCD是否忙
        rs=1;
        rw=0;
        P0=LCDDispdata;         
        delay(1);
        le=1;
        delay(1);
        le=0;
}

void Clr_Scr()//清除LCD內(nèi)存程序
{
        uchar j,k;
        cs1=0; //左、右屏均開顯示
        cs2=0;
        write_com(0xb8+0);
        write_com(0x40+0);
        for(k=0;k<8;k++)//控制頁數(shù)0-7,共8頁
        {
                write_com(0xb8+k); //每頁每頁進(jìn)行寫
                  for(j=0;j<64;j++)  //每頁最多可寫32個中文文字或64個ASCII字符
                {
                      write_com(0x40+j);
                        write_date(0x00);//控制列數(shù)0-63,共64列,寫點內(nèi)容,列地址自動加1
                }
        }
}

void lcd_werite_x_y(uchar x,uchar y)  //左右屏顯示設(shè)置
{
          y=y&0x7f;                                 //限定范圍,列不能超過128
          x=x&0x07;                             //限定范圍,行不能超過8
          if(y<64)                    //如果列小于64
          {
                    cs1=1;                  //選通左半屏
                    cs2=0;                  //關(guān)閉右半屏
                    write_com(0x40+y);  //將列地址寫入  
          }
          else
          {
                    cs1=0;                  //關(guān)閉左半屏
                    cs2=1;                  //選通右半屏
                    y&=0x3f;
                    write_com(0x40+y);  //將列地址寫入         
          }
          write_com(0xb8+x);      //將行地址寫入       
}

void lcd_write_english(uchar x,uchar y, uchar en,uchar *dat) //左右屏顯示設(shè)置
{
      uchar i=0;
          lcd_werite_x_y(x,y);            //設(shè)定起始地址
          for(i=0;i<8;i++)
          {
                  write_date(dat[en*16+i]);
          }   //先寫上半個字,共8個字節(jié)
          lcd_werite_x_y(x+1,y);          //設(shè)定起始地址,此次將行地址加1,以便寫下行
          for(i=0;i<8;i++)
          {
              write_date(dat[en*16+8+i]);
          } //再寫下半個字,共8個字節(jié)
}

void lcd_write_chinese(uchar x,uchar y, uchar hz,uchar *dat)
{
          uchar i=0;       
          lcd_werite_x_y(x,y);             //設(shè)定起始地址
          for(i=0;i<16;i++)
          write_date(dat[hz*32+i]);    //先寫上半個字,共16個字節(jié)
          lcd_werite_x_y(x+1,y);           //設(shè)定起始地址,此次將行地址加1,以便寫下行
          for(i=0;i<16;i++)
          write_date(dat[hz*32+16+i]); //再寫下半個字,共16個字節(jié)
}

void time_shuzi()
{
                lcd_write_english(3,80,s/10,SHUZI);
                lcd_write_english(3,88,s%10,SHUZI);
                lcd_write_english(3,72,10,SHUZI);
                lcd_write_english(3,56,m/10,SHUZI);
                lcd_write_english(3,64,m%10,SHUZI);
                lcd_write_english(3,48,10,SHUZI);
                lcd_write_english(3,32,h/10,SHUZI);
                lcd_write_english(3,40,h%10,SHUZI);       
}

void time_week()
{
                lcd_write_english(0,8,2,SHUZI);
                lcd_write_english(0,16,0,SHUZI);
                lcd_write_english(0,24,1,SHUZI);
                lcd_write_english(0,32,8,SHUZI);
                lcd_write_chinese(0,40,9,HANZI);//年
                lcd_write_english(0,56,1,SHUZI);
                lcd_write_english(0,64,1,SHUZI);
                lcd_write_chinese(0,70,10,HANZI);// 月
                lcd_write_english(0,88,1,SHUZI);
                lcd_write_english(0,96,0,SHUZI);//日
                lcd_write_chinese(0,104,11,HANZI);

                lcd_write_chinese(3,0,12,HANZI);
                lcd_write_chinese(3,112,13,HANZI);

        //        lcd_write_chinese(6,0,14,HANZI);
        //        lcd_write_chinese(6,16,15,HANZI);
        //        lcd_write_chinese(6,32,16,HANZI);
        //        lcd_write_chinese(6,48,17,HANZI);

                lcd_write_chinese(6,80,0,HANZI);
                lcd_write_chinese(6,96,1,HANZI);
                lcd_write_chinese(6,112,6,HANZI);
       
}

void time_clock()
{
        if(cc==h&&oo==m)
        {
                BZ=~BZ;
                delay(10000);
        }
        lcd_write_chinese(6,0,14,HANZI); //鬧
        lcd_write_chinese(6,16,15,HANZI);//        鐘
        lcd_write_english(6,32,cc/10,SHUZI);
        lcd_write_english(6,40,cc%10,SHUZI);
        lcd_write_english(6,48,10,SHUZI);
        lcd_write_english(6,56,oo/10,SHUZI);
        lcd_write_english(6,64,oo%10,SHUZI);

}

void keyscna()
{
       
}

void init1()
{
          TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        s=0;
        m=55;
        h=8;
        cc=12;
        oo=0;
        BZ=0;
}

   void init()//初始化
{

        delay(2);       
        cs1=1;//剛開始關(guān)閉兩屏
        cs2=1;
        delay(2);
        write_com(0x3e);         //寫初始化命令
        write_com(0xb8+0);
        write_com(0xc0+0);
        write_com(0x40+0);
        write_com(0x3f);

}

void main()
{
        init1();
        init();
        Clr_Scr();
        while(1)
        {
                BZ=1;
                delay(10000);
                BZ=0;
                time_shuzi();
                time_week();
                time_clock();
        }
}

void time() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        aa++;
        if(aa==20)
        {
                aa=0;
                s++;
                if(s==60)
                {
                        s=0;
                        m++;
                        if(m==60)
                        {
                                m=0;
                                h++;
                                if(h==24)
                                {
                                        h=0;
                                }
                        }
                }
        }
}


12864.jpg (31.08 KB, 下載次數(shù): 138)

12864.jpg

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:437013 發(fā)表于 2019-5-27 22:40 | 只看該作者
不錯的資料
回復(fù)

使用道具 舉報

板凳
ID:421017 發(fā)表于 2019-8-8 22:13 | 只看該作者
為什么要把VOUT接到V0,不接可以嗎,VOUT輸出-5V
回復(fù)

使用道具 舉報

地板
ID:236699 發(fā)表于 2019-8-13 14:03 | 只看該作者
康澤威 發(fā)表于 2019-8-8 22:13
為什么要把VOUT接到V0,不接可以嗎,VOUT輸出-5V

有的可以,有的不可以,有的要接R103\R104電位器,不則屏不顯示。
回復(fù)

使用道具 舉報

5#
ID:282095 發(fā)表于 2019-8-13 15:42 | 只看該作者
要接入電位器啊 不然肯定是無法操作的哦
回復(fù)

使用道具 舉報

6#
ID:584814 發(fā)表于 2019-10-11 15:35 | 只看該作者
shuzi.h和hanzi.h在哪里 ?
回復(fù)

使用道具 舉報

7#
ID:151654 發(fā)表于 2019-10-19 15:58 | 只看該作者
不錯的樣子
回復(fù)

使用道具 舉報

8#
ID:155507 發(fā)表于 2020-10-3 11:46 | 只看該作者
man1234567 發(fā)表于 2019-10-11 15:35
shuzi.h和hanzi.h在哪里 ?

shuzi.h
  1. #ifndef __SHUZI_H__
  2. #define __SHUZI_H__
  3. #define uchar unsigned char

  4. //取模軟件:zimo221
  5. //取模方式:縱向取模  字節(jié)倒序
  6. uchar code SHUZI[]=
  7. {
  8. /*--  文字:  0  --*/
  9. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  10. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
  11. 0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
  12. /*--  文字:  1  --*/
  13. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  14. 0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,
  15. 0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,
  16. /*--  文字:  2  --*/
  17. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  18. 0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,
  19. 0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
  20. /*--  文字:  3  --*/
  21. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  22. 0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,
  23. 0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00,
  24. /*--  文字:  4  --*/
  25. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  26. 0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,
  27. 0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,
  28. /*--  文字:  5  --*/
  29. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  30. 0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,
  31. 0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00,
  32. /*--  文字:  6  --*/
  33. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  34. 0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,
  35. 0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,
  36. /*--  文字:  7  --*/
  37. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  38. 0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,
  39. 0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00,
  40. /*--  文字:  8  --*/
  41. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  42. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
  43. 0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  44. /*--  文字:  9  --*/
  45. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  46. 0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,
  47. 0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00,
  48. /*--  文字:  -  --*/
  49. ///*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=8x16   --*/
  50. //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  51. //0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
  52. };
  53. #endif
復(fù)制代碼

hanzi.h
  1. #ifndef __HANZI_H__
  2. #define __HANZI_H__
  3. #define uchar unsigned char

  4. //取模軟件:zimo221
  5. //取模方式:縱向取模  字節(jié)倒序
  6. uchar code HANZI[]=
  7. {
  8. /*--  文字:  星  --*/
  9. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  10. 0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,
  11. 0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,
  12. 0x00,0x44,0x42,0x49,0x49,0x49,0x49,0x7F,
  13. 0x49,0x49,0x49,0x49,0x41,0x40,0x00,0x00,

  14. /*--  文字:  期  --*/
  15. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  16. 0x00,0x04,0xFF,0x24,0x24,0x24,0xFF,0x04,
  17. 0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00,
  18. 0x88,0x48,0x2F,0x09,0x09,0x19,0xAF,0x48,
  19. 0x30,0x0F,0x02,0x42,0x82,0x7F,0x00,0x00,

  20. /*--  文字:  一  --*/
  21. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  22. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  23. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
  24. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  25. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  26. /*--  文字:  二  --*/
  27. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  28. 0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,
  29. 0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,
  30. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
  31. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,

  32. /*--  文字:  三  --*/
  33. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  34. 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,
  35. 0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
  36. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
  37. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,

  38. /*--  文字:  四  --*/
  39. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  40. 0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,
  41. 0x04,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
  42. 0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,
  43. 0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,

  44. /*--  文字:  五  --*/
  45. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  46. 0x00,0x02,0x42,0x42,0x42,0xC2,0x7E,0x42,
  47. 0x42,0x42,0x42,0xC2,0x02,0x02,0x00,0x00,
  48. 0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,
  49. 0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x00,

  50. /*--  文字:  六  --*/
  51. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  52. 0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x22,
  53. 0x2C,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  54. 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,
  55. 0x00,0x01,0x02,0x04,0x18,0x60,0x00,0x00,

  56. /*--  文字:  日  --*/
  57. /*--  宋體12;  此字體下對應(yīng)的點陣為:寬x高=16x16   --*/
  58. 0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,
  59. 0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,
  60. 0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,
  61. 0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00,
  62. };
  63. #endif
復(fù)制代碼

回復(fù)

使用道具 舉報

9#
ID:780879 發(fā)表于 2020-10-3 14:02 | 只看該作者
啟發(fā)很多
回復(fù)

使用道具 舉報

10#
ID:600695 發(fā)表于 2022-9-21 22:21 | 只看該作者
沒跑起來,不知道問題出在那
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧洲亚洲精品久久久久 | 中文字幕亚洲精品 | 欧美日韩在线免费观看 | 国产1区2区| 欧美在线视频网 | 久久久国产一区二区三区 | 欧美日韩在线视频观看 | 精品免费 | 逼逼网 | 亚洲精品一区二区三区在线 | 精品9999| 亚洲一区av | 国产精品一区二区视频 | 国产三级一区二区三区 | 日本五月婷婷 | 欧美性精品 | 一区二区三区四区视频 | 免费在线观看一区二区 | 精品久久一区二区 | 欧美成视频 | 亚洲一二三区免费 | 密室大逃脱第六季大神版在线观看 | 欧美激情视频一区二区三区在线播放 | 国产精品视频一二三 | 自拍偷拍第1页 | 91免费视频 | 午夜免费视频 | 免费看a | 中文字幕久久精品 | 亚洲视频在线看 | 69堂永久69tangcom | 亚洲国产精品久久人人爱 | 国产日韩欧美在线观看 | 精品9999| 国产精品无码永久免费888 | 天天影视亚洲综合网 | 97人人澡人人爽91综合色 | 视频一区二区中文字幕日韩 | 欧洲免费视频 | 日韩中文一区二区三区 | 91在线第一页 |