12864液晶430单片机并口和串口C++类库.doc
文本预览下载声明
1、并口:
/*
作者:月传说
时间:2013-2-4
转载和复制请保留此信息
*/
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
#include msp430f2618.h//仅限于80或更多脚的型号。
#define DIYIHANG 0x80 //第一行的地址
#define DIERHANG 0x90 //第二行的地址
#define DISANHANG 0x88 //第三行的地址
#define DISIHANG 0x98 //第四行的地址
#define FANBAI 1
#define ZHENGCHANG 0//反白定义
#define ZUO 1
#define YOU 0//方向定义,确定字符显示靠左还是靠右
#define LCD_DataIn *shujudir=0x00 //数据口方向设置为输入
#define LCD_DataOut *shujudir=0xff //数据口方向设置为输出
#define LCD2MCU_Data *shujuin
#define MCU2LCD_Data *shujuout
#define LCD_CMDOut *kongzhidir|=rs+rw+en //控制口的三个控制位设置为输出
#define LCD_RS_H *kongzhiout|=rs
#define LCD_RS_L *kongzhiout=~rs
#define LCD_RW_H *kongzhiout|=rw
#define LCD_RW_L *kongzhiout=~rw
#define LCD_EN_H *kongzhiout|=en
#define LCD_EN_L *kongzhiout=~en
/*******************************************
函数名称:YanChiNus
功 能:实现N个微秒的延时
参 数:n--延时长度
返回值 :无
说明 :定时器A的计数时钟是2MHz,CPU主频16MHz
所以通过定时器延时能够得到极为精确的
us级延时。
使用前要打开XT2晶体并设置好定时器A的时钟为2M的子系统时钟,不分频。
TACTL |= TASSEL_2;
********************************************/
void YanChiNus(uint n)
{
TACTL |= TASSEL_2;
int t = n * 2;
TACTL |= MC_2 + TACLR; //连续计数
while(TAR t); //等待
TACTL = ~MC_2; //停止计数
TACTL = ~BIT0; //清除中断标志
}
/*******************************************
函数名称:YanChiNms
功 能:延时N个1ms的时间
参 数:n--延时长度
返回值 :无
说明 :使用定时器B延迟,使用前腰设置好定时器B的时钟为32768的辅助时钟,分频系数为8分频。
TBCTL |= TBSSEL_1 + ID_3;
********************************************/
void YanChiNms(uint n)
{
TBCTL |= TBSSEL_1 + ID_3;
int t = (int)(n * 4.096);
TBCTL |= MC_2 + TBCLR; //连续计数
while(TBR t); //等待
TBCTL = ~MC_2; //停止计数
TBCTL = ~BIT0; //清除中断标志
}
class YeJing
{
private:
uchar * shujudir;
uchar * kongzhidir;
uchar rs;
uchar rw;
uchar en;
uchar * shujuin;
uchar * shujuout;
uchar * kongzhiout;
void LCDCh
显示全部