找回密码
 立即注册

QQ登录

只需一步,快速开始

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

MSP430版本的LCD5110驱动程序

[复制链接]
跳转到指定楼层
楼主
MSP430版本的LCD5110驱动程序


所有资料51hei提供下载:
MSP430版本LCD5110.rar (2.56 KB, 下载次数: 505)


单片机源程序如下:
  1. #include "5110.h"

  2. unsigned char Font_code[][6] =
  3. {
  4.     {0x00,0x00,0x00,0x00,0x00,0x00},// (0)
  5.     {0x00,0x00,0x00,0x4F,0x00,0x00},//!(1)
  6.     {0x00,0x00,0x07,0x00,0x07,0x00},//"(2)
  7.     {0x00,0x14,0x7F,0x14,0x7F,0x14},//#(3)
  8.     {0x00,0x24,0x2A,0x7F,0x2A,0x12},//$(4)
  9.     {0x00,0x23,0x13,0x08,0x64,0x62},//%(5)
  10.     {0x00,0x36,0x49,0x55,0x22,0x50},//&(6)
  11.     {0x00,0x00,0x05,0x03,0x00,0x00},//'(7)
  12.     {0x00,0x00,0x1C,0x22,0x41,0x00},//((8)
  13.     {0x00,0x00,0x41,0x22,0x1C,0x00},//)(9)
  14.     {0x00,0x14,0x08,0x3E,0x08,0x14},//*(10)
  15.     {0x00,0x08,0x08,0x3E,0x08,0x08},//+(11)
  16.     {0x00,0x00,0x50,0x30,0x00,0x00},//,(12)
  17.     {0x00,0x08,0x08,0x08,0x08,0x08},//-(13)
  18.     {0x00,0x00,0x60,0x60,0x00,0x00},//.(14)
  19.     {0x00,0x20,0x10,0x08,0x04,0x02},///(15)
  20.     {0x00,0x3E,0x51,0x49,0x45,0x3E},//0(16)
  21.     {0x00,0x00,0x42,0x7F,0x40,0x00},//1(17)
  22.     {0x00,0x42,0x61,0x51,0x49,0x46},//2(18)
  23.     {0x00,0x21,0x41,0x45,0x4B,0x31},//3(19)
  24.     {0x00,0x18,0x14,0x12,0x7F,0x10},//4(20)
  25.     {0x00,0x27,0x45,0x45,0x45,0x39},//5(21)
  26.     {0x00,0x3C,0x4A,0x49,0x49,0x30},//6(22)
  27.     {0x00,0x01,0x71,0x09,0x05,0x03},//7(23)
  28.     {0x00,0x36,0x49,0x49,0x49,0x36},//8(24)
  29.     {0x00,0x06,0x49,0x49,0x29,0x1E},//9(25)
  30.     {0x00,0x00,0x36,0x36,0x00,0x00},//:(26)
  31.     {0x00,0x00,0x56,0x36,0x00,0x00},//;(27)
  32.     {0x00,0x08,0x14,0x22,0x41,0x00},//<(28)
  33.     {0x00,0x14,0x14,0x14,0x14,0x14},//=(29)
  34.     {0x00,0x00,0x41,0x22,0x14,0x08},//>(30)
  35.     {0x00,0x02,0x01,0x51,0x09,0x06},//?(31)
  36.     {0x00,0x32,0x49,0x79,0x41,0x3E},//@(32)
  37.     {0x00,0x7E,0x11,0x11,0x11,0x7E},//A(33)
  38.     {0x00,0x7F,0x49,0x49,0x49,0x3E},//B(34)
  39.     {0x00,0x3E,0x41,0x41,0x41,0x22},//C(35)
  40.     {0x00,0x7F,0x41,0x41,0x22,0x1C},//D(36)
  41.     {0x00,0x7F,0x49,0x49,0x49,0x41},//E(37)
  42.     {0x00,0x7F,0x09,0x09,0x09,0x01},//F(38)
  43.     {0x00,0x3E,0x41,0x49,0x49,0x7A},//G(39)
  44.     {0x00,0x7F,0x08,0x08,0x08,0x7F},//H(40)
  45.     {0x00,0x00,0x41,0x7F,0x41,0x00},//I(41)
  46.     {0x00,0x20,0x40,0x41,0x3F,0x01},//J(42)
  47.     {0x00,0x7F,0x08,0x14,0x22,0x41},//K(43)
  48.     {0x00,0x7F,0x40,0x40,0x40,0x40},//L(44)
  49.     {0x00,0x7F,0x02,0x04,0x02,0x7F},//M(45)
  50.     {0x00,0x7F,0x04,0x08,0x10,0x7F},//N(46)
  51.     {0x00,0x3E,0x41,0x41,0x41,0x3E},//O(47)
  52.     {0x00,0x7F,0x09,0x09,0x09,0x06},//P(48)
  53.     {0x00,0x3E,0x41,0x51,0x21,0x5E},//Q(49)
  54.     {0x00,0x7F,0x09,0x19,0x29,0x46},//R(50)
  55.     {0x00,0x46,0x49,0x49,0x49,0x31},//S(51)
  56.     {0x00,0x01,0x01,0x7F,0x01,0x01},//T(52)
  57.     {0x00,0x3F,0x40,0x40,0x40,0x3F},//U(53)
  58.     {0x00,0x1F,0x20,0x40,0x20,0x1F},//V(54)
  59.     {0x00,0x3F,0x40,0x38,0x40,0x3F},//W(55)
  60.     {0x00,0x63,0x14,0x08,0x14,0x63},//X(56)
  61.     {0x00,0x03,0x04,0x78,0x04,0x03},//Y(57)
  62.     {0x00,0x61,0x51,0x49,0x45,0x43},//Z(58)
  63.     {0x00,0x00,0x7F,0x41,0x41,0x00},//[(59)
  64.     {0x00,0x15,0x16,0x7C,0x16,0x15},//\(60)
  65.     {0x00,0x00,0x41,0x41,0x7F,0x00},//](61)
  66.     {0x00,0x04,0x02,0x01,0x02,0x04},//^(62)
  67.     {0x00,0x40,0x40,0x40,0x40,0x40},//_(63)
  68.     {0x00,0x00,0x01,0x02,0x04,0x00},//`(64)
  69.     {0x00,0x20,0x54,0x54,0x54,0x78},//a(65)
  70.     {0x00,0x7F,0x48,0x44,0x44,0x38},//b(66)
  71.     {0x00,0x38,0x44,0x44,0x44,0x20},//c(67)
  72.     {0x00,0x38,0x44,0x44,0x48,0x7F},//d(68)
  73.     {0x00,0x38,0x54,0x54,0x54,0x18},//e(69)
  74.     {0x00,0x08,0x7E,0x09,0x01,0x02},//f(70)
  75.     {0x00,0x0C,0x52,0x52,0x52,0x3E},//g(71)
  76.     {0x00,0x7F,0x08,0x04,0x04,0x78},//h(72)
  77.     {0x00,0x00,0x44,0x7D,0x40,0x00},//i(73)
  78.     {0x00,0x20,0x40,0x44,0x3D,0x00},//j(74)
  79.     {0x00,0x7F,0x10,0x28,0x44,0x00},//k(75)
  80.     {0x00,0x00,0x41,0x7F,0x40,0x00},//l(76)
  81.     {0x00,0x7E,0x02,0x0C,0x02,0x7C},//m(77)
  82.     {0x00,0x7E,0x04,0x02,0x02,0x7C},//n(78)
  83.     {0x00,0x38,0x44,0x44,0x44,0x38},//o(79)
  84.     {0x00,0x7C,0x14,0x14,0x14,0x08},//p(80)
  85.     {0x00,0x08,0x14,0x14,0x18,0x7C},//q(81)
  86.     {0x00,0x7C,0x08,0x04,0x04,0x08},//r(82)
  87.     {0x00,0x48,0x54,0x54,0x54,0x20},//s(83)
  88.     {0x00,0x04,0x3F,0x44,0x40,0x20},//t(84)
  89.     {0x00,0x3C,0x40,0x40,0x20,0x7C},//u(85)
  90.     {0x00,0x1C,0x20,0x40,0x20,0x1C},//v(86)
  91.     {0x00,0x3C,0x40,0x30,0x40,0x3C},//w(87)
  92.     {0x00,0x44,0x28,0x10,0x28,0x44},//x(88)
  93.     {0x00,0x0C,0x50,0x50,0x50,0x3C},//y(89)
  94.     {0x00,0x44,0x64,0x54,0x4C,0x44},//z(90)
  95.     {0x00,0x00,0x08,0x36,0x41,0x00},//{(91)
  96.     {0x00,0x00,0x00,0x7F,0x00,0x00},//|(92)
  97.     {0x00,0x00,0x41,0x36,0x08,0x00},//}(93)
  98.     {0x00,0x08,0x04,0x08,0x10,0x08},//~(94)
  99.     {0x00,0x08,0x08,0x2A,0x1C,0x08},//?ú(127)
  100.     {0x00,0x08,0x1C,0x2A,0x08,0x08},//??(128)
  101.     {0x00,0x04,0x02,0x7F,0x02,0x04},//?ü(129)
  102.     {0x00,0x10,0x20,0x7F,0x20,0x10},//?y(130)
  103.     {0x00,0x1C,0x2A,0x32,0x2A,0x1C},//D|??(131)
  104.     {0x00,0x1C,0x22,0x44,0x22,0x1C} //°?D?(132)
  105. };

  106. /*--------------------------------------------------------------*/
  107. // 写一个字节的命令或者数字
  108. //commond==0写指令, commond==1写数据
  109. void LCD_write_byte(uchar date, uchar commond)
  110. {
  111.   uchar i;
  112.   CE0;
  113.   if(commond == 1)
  114.   {
  115.     DC1;
  116.   }
  117.   else
  118.   {
  119.     DC0;
  120.   }
  121.   for(i = 8; i > 0; i--)
  122.   {
  123.     if(date & 0x80)
  124.     {
  125.       DIN1;
  126.     }
  127.     else
  128.     {
  129.       DIN0;
  130.     }
  131.     CLK0;
  132.     date = date << 1;
  133.     CLK1;
  134.   }
  135.   CE1;
  136. }

  137. /*--------------------------------------------------------------*/
  138. //设定开始写的位置
  139. void LCD_set_XY(uchar X, uchar Y)
  140. {
  141.   LCD_write_byte(0x40 | Y, 0);// 行 0-5
  142.   LCD_write_byte(0x80 | X, 0);// 列 0-83/12
  143. }

  144. /*--------------------------------------------------------------*/
  145. //清屏
  146. void LCD_clr_scr(void)//
  147. {
  148.   unsigned int i;
  149.   LCD_write_byte(0x80, 0);
  150.   LCD_write_byte(0x40, 0);
  151.   for(i = 504; i; i--)
  152.   {
  153.     LCD_write_byte(0x00, 1);
  154.   }
  155. }

  156. /*--------------------------------------------------------------*/
  157. //字符输出(6*8字体)
  158. //x: 0 - 13
  159. //y: 0 - 5
  160. void LCD_printc(unsigned char x, unsigned char y, unsigned char c_dat)
  161. {
  162.     unsigned char i;
  163.     c_dat -= 32;        
  164.     x *= 6;            
  165.     LCD_set_XY(x, y);
  166.     for(i = 0; i < 6; i++)
  167.     {
  168.         LCD_write_byte(Font_code[c_dat][i], 1);
  169.     }
  170. }

  171. /*--------------------------------------------------------------*/
  172. //字符串输出(6*8字体)
  173. //x: 0 - 13
  174. //y: 0 - 5
  175. void LCD_prints(unsigned char x, unsigned char y, unsigned char *s_dat)
  176. {
  177.     while(*s_dat && x < 14)
  178.     {
  179.         LCD_printc(x++, y, *s_dat);
  180.         s_dat++;
  181.     }
  182. }

  183. /*--------------------------------------------------------------*/
  184. //字符串输出,自动换行(6*8字体)
  185. //x: 0 - 13
  186. //y: 0 - 5
  187. void LCD_printsl(unsigned char x, unsigned char y, unsigned char *s_dat)
  188. {
  189.     while(*s_dat)
  190.     {
  191.         LCD_printc(x++, y, *s_dat);
  192.         s_dat++;
  193.         if(x == 14)
  194.         {
  195.             x = 0;
  196.             y++;
  197.         }
  198.         if(y == 6)
  199.         {
  200.             y = 0;
  201.         }
  202.     }
  203. }

  204. /*--------------------------------------------------------------*/
  205. //定位输出数字
  206. //x: 0 - 13
  207. //y: 0 - 5
  208. //num: 0 - 65535    要显示的数字
  209. //num_bit: 0 - 5    数字的位数
  210. void LCD_printn(unsigned char x, unsigned char y, unsigned int num, unsigned char num_bit)
  211. {
  212.     signed   char i;
  213.     unsigned char ii;
  214.     unsigned char dat[6];
  215.     for(i = 0; i < 6; i++)
  216.     {
  217.         dat[i] = 0;   
  218.     }
  219.     i = 0;
  220.     while(num / 10)                     
  221.     {
  222.         dat[i] = num % 10;              
  223.         num /= 10;
  224.         i++;
  225.     }
  226.     dat[i] = num;                     
  227.     ii = i;                             
  228.     for(; i >= 0; i--)
  229. ……………………

  230. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码





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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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