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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己移植的Nokia5110的代碼驅動基于K60

[復制鏈接]
跳轉到指定樓層
樓主
使用的是山外的庫函數


單片機源程序如下:
  1. #include "nokia5110.h"
  2. #include "fontbank.h"
  3. #include "MK60_gpio.h"

  4. void Nokia5110_Send(uint8 data, DCType dc)
  5. {
  6.   uint8 i;
  7.   if(dc == DC_DATA)
  8.     Nokia5110_DC_DATA();
  9.   else
  10.     Nokia5110_DC_CMD();
  11.    for(i=0; i<8; i++)
  12.   {
  13.     if((data<<i)&0x80)
  14.       Nokia5110_DIN_H();
  15.     else
  16.       Nokia5110_DIN_L();
  17.       Nokia5110_CLK_L();
  18.       DELAY_US(1);
  19.       Nokia5110_CLK_H();
  20.   }
  21. }


  22. void Nokia5110_Init(void)
  23. {
  24.    gpio_init(PTD1,GPO,1);   
  25.    gpio_init(PTD2,GPO,1);   
  26.    gpio_init(PTD3,GPO,1);   
  27.    gpio_init(PTD4,GPO,1);     
  28.    gpio_init(PTD5,GPO,1);
  29.    gpio_init(PTD6,GPO,1);   
  30.   
  31.     Nokia5110_LIGHT_ON();   //打開背光燈
  32.     Nokia5110_RST_L();
  33.     DELAY_US(10);          //這個延時是必須的       
  34.     Nokia5110_RST_H();
  35.        
  36.     Nokia5110_CE_H();
  37.     Nokia5110_CE_L();
  38.                      //設置LCD
  39.     Nokia5110_Send(0x21, DC_CMD);        //使用擴展命令設置Nokia5110模式
  40.     Nokia5110_Send(0xC8, DC_CMD);        //設置偏置電壓
  41.     Nokia5110_Send(0x06, DC_CMD);        //溫度校正
  42.     Nokia5110_Send(0x13, DC_CMD); //1:48
  43.     Nokia5110_Send(0x20, DC_CMD);        //使用基本命令
  44.     Nokia5110_Send(0x0E, DC_CMD);        //設定顯示模式,反轉顯示
  45.        
  46.     Nokia5110_Clear();
  47. }

  48. void Nokia5110_Clear(void)
  49. {
  50.     uint16 i;
  51.     Nokia5110_Send(0x40,DC_CMD);  //設置RAM的Y坐標地址為0   
  52.     Nokia5110_Send(0x80,DC_CMD);  //設置RAM的X坐標地址為0
  53.        
  54.     for(i=0; i<504; i++)          //共計504個像素點
  55.     Nokia5110_Send(0, DC_DATA);   //全部寫零達到清除的目的  
  56. }

  57. void Nokia5110_SetXY(uint8 X, uint8 Y)
  58. {
  59.     if(X > 13) X = 13;
  60.     if(Y > 5)  Y = 5;
  61.     X *=6;
  62.        
  63.     Nokia5110_Send(0x80 | X,DC_CMD);
  64.     DELAY_US(10);
  65.     Nokia5110_Send(0x40 | Y,DC_CMD);
  66. }

  67. /*設置屏幕對比度,contrast的范圍為0~64;*/
  68. void Nokia5110_SetContrast(uint8 contrast)
  69. {
  70.         if(contrast > 64) contrast = 64;
  71.         Nokia5110_Send(0x21,DC_CMD);  //進入拓展命令模式
  72.         Nokia5110_Send(0x80 | contrast,DC_CMD);  //設置對比度
  73.         Nokia5110_Send(0x20,DC_CMD);  //進入基本命令模式
  74. }

  75. /*寫一個字節*/
  76. void Nokia5110_WriteChar(uint8 ascii)
  77. {
  78.         uint8 i;
  79.         for(i=0; i<6; i++)
  80.         Nokia5110_Send(Font6x8[ascii-32][i],DC_DATA);
  81. }

  82. uint8 LongToString(uint8 *str, signed long dat)
  83. {
  84.         signed char i = 0;
  85.         unsigned char len = 0;
  86.         unsigned char buf[12];

  87.         if(dat < 0)
  88.         {
  89.                 dat = -dat;
  90.                 *str++ = '-';
  91.                 len++;
  92.         }
  93.         do{
  94.                 buf[i++] = dat % 10;
  95.                 dat /= 10;
  96.                 }while(dat > 0);
  97.         len += i;
  98.         while(i-- > 0)
  99.         {
  100.                 *str++ = buf[i] + '0';
  101.         }
  102.         *str = '\0';

  103.         return len;
  104.                
  105. }

  106. /* 在液晶上寫數字*/
  107. void Nokia5110_WriteNum(uint8 X,uint8 Y,uint32 number)
  108. {
  109.         uint8 str[12];
  110.        
  111.         LongToString(str,number);
  112.         Nokia5110_WriteEnStr(X,Y,str);
  113. }

  114. /* 在液晶上顯示字符串,(x,y)-對應屏幕上的起始坐標,str-字符串指針 */
  115. void Nokia5110_WriteEnStr(uint8 X, uint8 Y, uint8 *str)
  116. {
  117.     Nokia5110_SetXY(X,Y);  //設置起始地址
  118.     while (*str != '\0')  //連續寫入字符串數據,直到檢測到結束符
  119.     {
  120.         Nokia5110_WriteChar(*str++);
  121.     }
  122.                 Nokia5110_Send(0,DC_DATA);
  123. }

  124. /*寫一個中文字符*/
  125. void Nokia5110_WriteChinese(uint8 X, uint8 Y,uint8 GBK)
  126. {
  127.         uint8 i;
  128.   Nokia5110_SetXY(X,Y);
  129.         for(i=0; i<12; i++)
  130.         {
  131.           Nokia5110_Send(Font12x16_chinese[GBK][i],DC_DATA);
  132.         }
  133.         //delay_us(10);
  134.         Nokia5110_SetXY(X,Y+1);
  135.         for(i=12; i<24; i++)
  136.         {
  137.           Nokia5110_Send(Font12x16_chinese[GBK][i],DC_DATA);
  138.         }
  139. }

  140. /*寫一幅圖像到液晶*/
  141. void Nokia5110_WriteImage(void)
  142. {
  143.     uint8 row,column;
  144.     for(row=0; row<6; row++)
  145.     {
  146.        Nokia5110_SetXY(0,row);
  147.        for(column=0; column<83; column++)
  148.       {
  149.         Nokia5110_Send(image1[row][column],DC_DATA);
  150.        }
  151.     }
  152. }
復制代碼

所有資料51hei提供下載:
nokia5110.zip (4.14 KB, 下載次數: 6)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: h视频免费在线观看 | 国产精品成人一区二区三区夜夜夜 | 国产一区二区久久 | 国产一区二区视频免费在线观看 | 男人天堂网址 | 国产丝袜一区二区三区免费视频 | 一区二区三区四区电影 | 欧美久久一区二区 | 色资源在线观看 | 91视频88av| 国产精品美女久久久久久不卡 | 亚洲精品一区二区三区在线 | 亚洲二区视频 | 久久精品中文字幕 | 精品蜜桃一区二区三区 | 精产国产伦理一二三区 | 午夜三区 | 日韩精品一区二区三区在线播放 | 少妇精品久久久久久久久久 | 久久国产欧美日韩精品 | 免费看一区二区三区 | 欧美日韩精品 | 狠狠亚洲 | 高清一区二区三区 | 色吊丝在线 | 国产视频精品区 | 久久日韩粉嫩一区二区三区 | 99久久婷婷国产综合精品电影 | 在线播放一区二区三区 | 一级网站 | 久一久| 狠狠躁躁夜夜躁波多野结依 | 伊人久久一区二区 | 色播av| 日本高清视频网站 | 久久国产激情视频 | 男人天堂久久 | 国产二区精品视频 | 中文字幕在线观看av | 日韩中文字幕视频在线观看 | 欧美日韩亚洲视频 |