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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2344|回復: 0
打印 上一主題 下一主題
收起左側

Proteus仿真HDM32GS12-B顯示驅動 單片機程序

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

這是在做傳感器實驗顯示的時候的副產物,可以顯示放在字庫文字,數字可以放在一個數組如uchar code xue[]={5,2,0,0,1,3,1,4,};不用在數字庫里面排序,優化了顯示代碼。顯示時可以不用分上下部分

單片機源程序如下:
  1. #include <intrins.h>
  2. #include <reg51.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. #define LCD_DATA P0
  6. sbit E1=P2^4;
  7. sbit E2=P2^5;
  8. sbit A0=P2^7;
  9. sbit RW=P2^6;        
  10. uchar code xue[]={5,2,0,0,1,3,1,4,};
  11. uchar code ziku[]=
  12. {
  13.         /*--  溫  --*/
  14.         0x10,0x60,0x02,0x8c,0x00,0x00,0xfe,0x92,0x92,0x92,0x92,0x92,0xfe,0x00,0x00,0x00,
  15.         0x04,0x04,0x7e,0x01,0x40,0x7e,0x42,0x42,0x7e,0x42,0x7e,0x42,0x42,0x7e,0x40,0x00,
  16.         /*--  度  --*/
  17.         0x00,0x00,0xfc,0x24,0x24,0x24,0xfc,0x25,0x26,0x24,0xfc,0x24,0x24,0x24,0x04,0x00,
  18.         0x40,0x30,0x8f,0x80,0x84,0x4c,0x55,0x25,0x25,0x25,0x55,0x4c,0x80,0x80,0x80,0x00,
  19. };
  20. uchar code shuzi[]=
  21. {
  22. /*--    0  --*/
  23. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
  24. /*--    1  --*/
  25. 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  26. /*--    2  --*/
  27. 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
  28. /*--    3  --*/
  29. 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
  30. /*--    4  --*/
  31. 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
  32. /*--    5  --*/
  33. 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
  34. /*--    6  --*/
  35. 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
  36. /*--    7  --*/
  37. 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
  38. /*--    8  --*/
  39. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  40. /*--    9  --*/
  41. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
  42. };
  43. void delay(uchar z)   
  44. {
  45.      int x;
  46.      for(x=z;x>0;x--);
  47. }
  48. void OUTMD(uchar i)//左頁
  49. {        
  50.    A0=1; //寫數據//發送數據
  51.    delay(5);
  52.    E1=1;
  53.    delay(10);
  54.    LCD_DATA=i;
  55.    delay(5);
  56.    E1=0;
  57. }
  58. void OUTSD(uchar i)//右頁
  59. {        
  60.    A0=1; //寫數據//發送數據
  61.    delay(5);
  62.    E2=1;
  63.    delay(10);
  64.    LCD_DATA=i;
  65.    delay(5);
  66.    E2=0;
  67. }
  68. void OUTMI(uchar i)//左頁
  69. {
  70.    A0=0; //寫指令//發送命令
  71.    delay(5);
  72.    E1=1;
  73.    delay(10);
  74.    LCD_DATA=i;
  75.    delay(5);
  76.    E1=0;
  77. }
  78. void OUTSI(uchar i)//左頁
  79. {
  80.    A0=0; //寫指令//發送命令
  81.    delay(5);
  82.    E2=1;
  83.    delay(10);
  84.    LCD_DATA=i;
  85.    delay(5);
  86.    E2=0;
  87. }
  88. void lcdini(void)//初始化
  89. {
  90.    RW=0;
  91.    OUTMI(0XE2);  OUTSI(0XE2);//??
  92.    OUTMI(0XAE);  OUTSI(0XAE);//POWER
  93.    OUTMI(0XA4);  OUTSI(0XA4);//????
  94.    OUTMI(0XA9);  OUTSI(0XA9);//1/32???
  95.    OUTMI(0XA1);  OUTSI(0XA1);//?????,????
  96.    OUTMI(0XE0);  OUTSI(0XE0);//??-??-???
  97.    OUTMI(0XEE);  OUTSI(0XEE);//???  ???-??-???
  98.    OUTMI(0X00);  OUTMI(0XC0);//?????,?????
  99.    OUTSI(0X00);  OUTSI(0XC0);
  100.    OUTMI(0XAF);  OUTSI(0XAF);//POWER SAVE ??????,?????
  101. }
  102. void SetPage ( uchar page0,uchar page1)
  103. {
  104. OUTMI(0xB8|page1);
  105. OUTSI(0xB8|page0);
  106. }
  107. void SetAddress ( uchar address0,uchar address1)
  108. {
  109. OUTMI(address1);
  110. OUTSI(address0);
  111. }
  112. void PutCharR(uchar ch)
  113. {
  114. OUTSD(ch);
  115. }
  116. void PutCharL(uchar ch)
  117. {
  118. OUTMD(ch);
  119. }
  120. void clrscr(void)
  121. {
  122. uchar  i;
  123. uchar  page;
  124. for (page=0;page<4;page++)
  125.   {
  126.     SetPage ( page, page);
  127.     SetAddress(0,0);
  128.     for (i=0;i<61;i++)
  129.         {
  130.           PutCharR(0);
  131.           PutCharL(0);
  132.         }
  133.    }
  134. }
  135. void Draw_wordh (uint wei, uint d_where, uint x_add, bit layer, uchar width,uchar *p)
  136. {                //???????
  137.   uchar x,address;        //address?????????
  138.   bit window=0;  //window??????
  139.   d_where = d_where*2*width;        
  140.         //SetAddress(0,0);
  141.   for (x=0;x<width;x++)
  142.         {   
  143.                 if (x_add>=61) {window=1;address=x_add%61;}//判斷左右半屏
  144.     else address=x_add;
  145.   if(layer==0)
  146.                 { //??????????
  147.      SetPage(wei,wei);
  148.      SetAddress(address,address);
  149.      if(window==1)PutCharR(p[x+d_where]);//右半屏顯示上半部分
  150.      else PutCharL(p[x+d_where]);//左
  151.                  }
  152.   else
  153.         {         //????????????
  154.    SetPage(wei+2,wei+2);
  155.    SetAddress(address,address);
  156.    if(window==1)PutCharR(p[x+d_where]);//??
  157.    else PutCharL(p[x+d_where]);
  158.   }
  159.     x_add++;
  160.   }}
復制代碼

Keil代碼與Proteus仿真下載: 顯示文字數字.zip (64.29 KB, 下載次數: 15)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区黄 | 亚洲国产精品suv | 四虎海外 | 韩日一区二区三区 | 亚洲视频第一页 | 国产一区2区 | 91精品国产乱码久久久久久 | 在线日韩精品视频 | 欧美亚洲视频 | 国产精品成人一区二区 | 精品欧美乱码久久久久久1区2区 | 青青伊人久久 | 亚洲一区二区三区 | 久久婷婷国产香蕉 | 美日韩精品| 日韩视频―中文字幕 | 成人欧美一区二区三区 | 毛片黄| 国产一区二区在线91 | 亚洲国产精品久久久久久 | 亚洲欧洲精品成人久久奇米网 | 国产日韩精品一区 | 久久成人免费观看 | 亚洲成人中文字幕 | 欧美日韩综合一区 | 99国产精品久久久 | 在线观看国产 | 色婷婷综合久久久久中文一区二区 | 亚洲精彩视频在线观看 | 欧美精品一区二区在线观看 | 中文字幕 在线观看 | 午夜精品一区 | 自拍视频在线观看 | 亚洲国产精品视频 | 日本精品裸体写真集在线观看 | 亚洲精品中文在线观看 | 91福利在线观看 | 青青草综合 | 国产免费自拍 | 久久久久久久综合 | 福利精品 |