资源简介

msp430的12864实时动态绘制波形图程序,可循环显示波形自动清除残留数据,适合做示波器、心电图等,含详细注释,宏定义稍作修改即可用于其他单片机

资源截图

代码片段和文件信息

#include “LCD12864.h“

#define BIT_CS      BIT3    /*P6.3,片选信号*/
#define BIT_SID     BIT2    /*P6.2,串行数据*/
#define BIT_CLK     BIT1    /*P6.1,同步时钟*/
#define P_OUT       P6OUT
#define P_DIR       P6DIR

//注意!此处括号内请改为MCLK实际运行频率
#define MCLK_C (8)        
      
#define DELAY_MS(n) __delay_cycles(n*(1000L)*MCLK_C)
#define DELAY_US(n) __delay_cycles(n*MCLK_C)

typedef unsigned char uint8;
typedef unsigned int uint16;

uint8 x0 = 0 county = 0;
//记录液晶屏每个像素是否点亮
uint16 rec[8][64];

void Send_Byte(uint8 byte) {
uint8 i;
for (i = 0; i < 8; i++) {
if ((byte << i) & 0x80)
P_OUT |= BIT_SID;
else
P_OUT &= ~BIT_SID;
P_OUT &= ~BIT_CLK;
P_OUT |= BIT_CLK;
}
}

void Send_Cmd(uint8 cmd) {
P_OUT |= BIT_CS;
Send_Byte(0xf8);
Send_Byte(cmd & 0xf0);      //第二字节
Send_Byte((cmd << 4) & 0xf0);   //第三字节
DELAY_MS(1);
}

void Send_Dat(uint8 data) {
P_OUT |= BIT_CS;
Send_Byte(0xfa);
Send_Byte(data & 0xf0);      //第二字节
Send_Byte((data << 4) & 0xf0);  //第三字节
}

void Clear_GDRAM(void) {
uint8 i j k;
Send_Cmd(0x34) //打开扩展指令集

i = 0x80;
for (j = 0; j < 32; j++) {
Send_Cmd(i++);
Send_Cmd(0x80);
for (k = 0; k < 16; k++) {
Send_Dat(0x00);
}
}

i = 0x80;
for (j = 0; j < 32; j++) {
Send_Cmd(i++);
Send_Cmd(0x88);
for (k = 0; k < 16; k++) {
Send_Dat(0x00);
}
}
Send_Cmd(0x30); //回到基本指令集
}

/*******************************************
 函数名称:Ini_Lcd
 功    能:初始化液晶模块
 参    数:无
 返回值  :无
 ********************************************/
void Ini_LCD12864(void) {
P_DIR |= BIT_CLK + BIT_SID + BIT_CS;   //相应的位端口设置为输出
DELAY_MS(100);
Send_Cmd(0x30); /*功能设置:一次送8位数据基本指令集*/
Send_Cmd(0x02); /*DDRAM地址归位*/
Send_Cmd(0x0c); /*显示设定:开显示不显示光标不做当前显示位反白闪动*/
Send_Cmd(0x01); /*清屏,将DDRAM的位址计数器调整为“00H”*/
Send_Cmd(0x06); /*功能设置,点设定:显示字符/光标从左到右移位DDRAM地址加1*/
Clear_GDRAM();
}


//屏幕坐标依次为:左下角(00),左上角(063),右下角

评论

共有 条评论