文档详情

12864液晶430单片机并口和串口C++类库.doc

发布:2017-08-29约4.19万字共46页下载文档
文本预览下载声明
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
显示全部
相似文档