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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

自己移植的Nokia5110的代碼驅(qū)動(dòng)基于K60

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
使用的是山外的庫(kù)函數(shù)


單片機(jī)源程序如下:
  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();   //打開(kāi)背光燈
  32.     Nokia5110_RST_L();
  33.     DELAY_US(10);          //這個(gè)延時(shí)是必須的       
  34.     Nokia5110_RST_H();
  35.        
  36.     Nokia5110_CE_H();
  37.     Nokia5110_CE_L();
  38.                      //設(shè)置LCD
  39.     Nokia5110_Send(0x21, DC_CMD);        //使用擴(kuò)展命令設(shè)置Nokia5110模式
  40.     Nokia5110_Send(0xC8, DC_CMD);        //設(shè)置偏置電壓
  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);        //設(shè)定顯示模式,反轉(zhuǎn)顯示
  45.        
  46.     Nokia5110_Clear();
  47. }

  48. void Nokia5110_Clear(void)
  49. {
  50.     uint16 i;
  51.     Nokia5110_Send(0x40,DC_CMD);  //設(shè)置RAM的Y坐標(biāo)地址為0   
  52.     Nokia5110_Send(0x80,DC_CMD);  //設(shè)置RAM的X坐標(biāo)地址為0
  53.        
  54.     for(i=0; i<504; i++)          //共計(jì)504個(gè)像素點(diǎn)
  55.     Nokia5110_Send(0, DC_DATA);   //全部寫(xiě)零達(dá)到清除的目的  
  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. /*設(shè)置屏幕對(duì)比度,contrast的范圍為0~64;*/
  68. void Nokia5110_SetContrast(uint8 contrast)
  69. {
  70.         if(contrast > 64) contrast = 64;
  71.         Nokia5110_Send(0x21,DC_CMD);  //進(jìn)入拓展命令模式
  72.         Nokia5110_Send(0x80 | contrast,DC_CMD);  //設(shè)置對(duì)比度
  73.         Nokia5110_Send(0x20,DC_CMD);  //進(jìn)入基本命令模式
  74. }

  75. /*寫(xiě)一個(gè)字節(jié)*/
  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. /* 在液晶上寫(xiě)數(shù)字*/
  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)-對(duì)應(yīng)屏幕上的起始坐標(biāo),str-字符串指針 */
  115. void Nokia5110_WriteEnStr(uint8 X, uint8 Y, uint8 *str)
  116. {
  117.     Nokia5110_SetXY(X,Y);  //設(shè)置起始地址
  118.     while (*str != '\0')  //連續(xù)寫(xiě)入字符串?dāng)?shù)據(jù),直到檢測(cè)到結(jié)束符
  119.     {
  120.         Nokia5110_WriteChar(*str++);
  121.     }
  122.                 Nokia5110_Send(0,DC_DATA);
  123. }

  124. /*寫(xiě)一個(gè)中文字符*/
  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. /*寫(xiě)一幅圖像到液晶*/
  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. }
復(fù)制代碼

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


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美一区二区三区久久久 | 黄视频免费在线 | 福利一区视频 | 成人免费淫片aa视频免费 | 国产成人综合一区二区三区 | 亚洲精品九九 | 中文字幕在线一区 | 日本一区二区三区四区 | 国产乱肥老妇国产一区二 | 视频一区二区中文字幕 | 日韩 欧美 综合 | 夜夜爽99久久国产综合精品女不卡 | 国产aa| 久久久久久久久久影视 | 成人av播放 | 日韩一二三区 | 男女精品久久 | 精品国产色 | 91aiai | 成人片免费看 | 日韩在线视频一区 | 热久久久 | 国产精品久久精品 | 中文字幕久久精品 | 亚洲视频 欧美视频 | 日韩av啪啪网站大全免费观看 | 亚洲精选一区二区 | 高清人人天天夜夜曰狠狠狠狠 | av国产精品毛片一区二区小说 | 日韩在线一区二区三区 | 亚洲欧美日韩在线一区二区 | 中文字幕第90页 | 国产精品亚洲一区二区三区在线 | 久久久久久毛片免费观看 | 欧美精品日韩 | 97超碰人人草 | 国产日韩一区二区三区 | 色资源在线 | 中文字幕在线不卡 | 六月成人网 | 久久综合久久自在自线精品自 |