datasheet
超过460,000+ 应用技术资源下载
null

MSP430-12864驱动

  • 1星
  • 日期: 2015-07-27
  • 大小: 3.8KB
  • 所需积分:1分
  • 下载次数:2
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: MSP430

MSP430F5529串行显示12864驱动

#include msp430f5529.h #include 12864.h #define CS_H P1OUT=BIT2 #define CS_L P1OUT&=~BIT2 #define SID_H P1OUT=BIT3 #define SID_L P1OUT&=~BIT3 #define SCLK_H P1OUT=BIT4 #define SCLK_L P1OUT&=~BIT4 #define PSB_H P1OUT&=~BIT5 unsigned char hang[5] = {0,0x80,0x90,0x88,0x98}; void delayms(uchar t) { uint k; for(;t0;t--) for(k=150;k0;k--); } 函数名void SendByte(unsigned char dat) 功能按照液晶的串口通信协议,发送字节 参数输入 dat 说明 void SendByte(unsigned char dat) { unsigned int i; for (i=0; i8; i++) { if ((dati) & 0x80) { SID_H; } else { SID_L; } SCLK_L; SCLK_H; } } 函数名unsigned char ReceiveByte(void) 功能按照液晶的串口通信协议,接收字节 参数输出 ((0xf0&temp1)+(0x0f&temp2)) 说明 unsigned char ReceiveByte(void) { unsigned char i,temp1,temp2; temp1 = 0; temp2 = 0; CS_H; for (i = 0; i 8; i++) { temp1 = temp11; SCLK_L; SCLK_H; SCLK_L; if (P1OUT=BIT3) { temp1++; } } for (i = 0; i 8; i++) { temp2 = temp21; SCLK_L; SCLK_H; SCLK_L; if (P1OUT=BIT3) { temp2++; } } return ((0xf0&temp1)+(0x0f&temp2)); } 函数名void CheckBusy(void) 功能忙位检测 参数 说明 void CheckBusy(void) { do { SendByte(0xfc); 11111,rw(1),rs(0),0 } while (0x80&ReceiveByte()); BF(.7) = 1 Busy } 函数名void WriteCom(unsigned char cmdcode) 功能写串口指令 参数输入 cmdcode 说明 void WriteCom(unsigned char cmdcode) { CS_H; delayms(10); CheckBusy(); SendByte(0xf8); 11111,RW(0),RS(0),0 SendByte(cmdcode & 0xf0); SendByte((cmdcode 4) & 0xf0); } 函数名void WriteCom(unsigned char cmdcode) 功能写串口指令 参数输入 cmdcode 说明 void WriteData(unsigned char dat) { CS_H; delayms(10); CheckBusy(); SendByte(0xfa); 11111,RW(0),RS(1),0 SendByte(dat & 0xf0); SendByte((dat 4) & 0xf0); } 函数名void LCD12864_Init(void) 功能LCD12864初始化 参数 说明 void LCD12864_Init(void) { PSB = 0; 选择并行显示方式 P1DIR=BIT2+BIT3+BIT4+BIT5; delayms(10); WriteCom(BasInsLib); 选择基本指令库 delayms(1); WriteCom(BasInsLib);; delayms(1); WriteCom(ShowON); 开显示(无游标、不反白) delayms(2); WriteCom(ClrGDRAM); 清除显示,并且设定地址指针为00H delayms(20); WriteCom(InPointSet); 指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位 LCD12864_ClrGDRAM(); delay_ms(50); } 函数名unsigned long int LCD12864_Pow(uchar m,uchar n) 功能求m^n的函数 参数输入 m,n 说明 unsigned int LCD12864_Pow(unsigned char m, unsigned char n) { unsigned int result=1; while (n--) { result=m; } return result; } 函数名 void LCD12864_Char(uchar x,uchar y,uchar ch) 功能 LCD12864任意位置显示字符 参数 输入 x,y,ch 说明 void LCD12864_Char(char x,char y,char ch) { if ((y%2)!=0) 判断奇数位 { WriteCom(hang[x]+y2); WriteData(ch); } else { WriteCom(hang[x]+y2-1); SendByte(1); WriteData(ch); } } 函数名 void LCD12864_String(unsigned char x,unsigned char y,unsigned char p) 功能 LCD12864显示字符串 参数 输入 x,y,p 说明 void LCD12864_String(unsigned char x,unsigned char y,unsigned char p) { WriteCom(hang[x]+y-1); while (p0) { WriteData(p); p++; } } void LCD12864_ShowNum(char x, char y, int num, char len, char mode) { unsigned char t,temp; unsigned char enshow=0; if ((y%2)!=0) { WriteCom(hang[x]+y2); } else { WriteCom(hang[x]+y2-1); SendByte(1); } for (t=0; tlen; t++) { temp = (numLCD12864_Pow(10,len-t-1))%10; if (enshow==0 && t(len-1)) { if (temp==0) { mode==0 WriteData(' ') WriteData('0'); continue; } else { enshow=1; } } WriteData(temp+'0'); } }
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子

$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })