⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12864.c

📁 MSP430ADC采样12864显示
💻 C
字号:
#include "MSP430FE427A.h"
#include"delay.h"

//宏定义I/O口有利于修改端口
#define send_1 P1OUT|=BIT0//数据口P1.0
#define send_0 P1OUT&=~BIT0
#define clk_0 P1OUT&=~BIT1//时钟口P1.1
#define clk_1 P1OUT|=BIT1
#define reset P1OUT&=~BIT2//复位口P1.2
#define no_reset P1OUT|=BIT2
#define cs P1OUT|=BIT3//串行片选信号P1.3
#define no_cs P1OUT&=~BIT3



char	Line_Buff[]={0x80,0x90,0x88,0x98};	//汉字显示坐标{LINE1,LINE2,LINE3,LINE4}

/*void delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++)
       for(j=0;j<10;j++);
}*/
void write_one_byte(unsigned char serial_data)//串口按位发送完一个字节的数据
{
	unsigned int i;
	for(i=0;i<8;i++)
	{
            if((serial_data<< i)&0x80)
            {
               send_1;
            }
            else 
            {
                send_0;            
            }
            clk_0;
            clk_1;
        }
}
void write_command(unsigned char command)//写命令
{
    cs;
    P1OUT|=BIT3;
    write_one_byte(0xf8);
    write_one_byte(command&0xf0);//命令要先发高四位
    write_one_byte((command<<4)&0xf0);//然后发低四位
    delay(2);
}
void write_data(unsigned char datas)//写数据
{
    cs;
    P1OUT|=BIT3;
    write_one_byte(0xfa);
    write_one_byte(datas&0xf0);//命令要先发高四位
    write_one_byte((datas<<4)&0xf0);//然后发低四位
    delay(2);
}
void display_inite()
{
    write_command(0x30);
    delay(50);
    write_command(0x08);
    delay(50);
    write_command(0x10);
    delay(50);
    write_command(0x0c);
    delay(50);
    write_command(0x01);
    delay(50);
    write_command(0x06);
    delay(50);
}
void write_a_arrays(unsigned char *array)
{
    while(*array>0)
    { 
        write_data(*array);
        array++;
        delay(50);
    }
}
/***************************
以上是底层驱动,不用理会
以下是应用层:
x:第几行
y:第几列
*array:要显示的东西,要加""
****************************/
void write_any_arrays(int x,int y,unsigned char *array)
{
    switch(x)
    {
        case 1:write_command(0x80+y-1);//第一行
               write_a_arrays(array);
               break;
        case 2:write_command(0x90+y-1);//第二行
               delay(50);
               write_a_arrays(array);
               break;
        case 3:write_command(0x88+y-1);//第三行
               delay(50);
               write_a_arrays(array);
               break;
        case 4:write_command(0x98+y-1);//第四行
               delay(50);
               write_a_arrays(array);
               break;
        default:break;
    }
}




/********************************************
*名称:Dis_Line()
*功能:在固定的行列显示
*入口参数:Line  第几行
         :Lie  第几列
         :Data  要显示的数据
*出口参数:无
*说明:Dis_Line(1,4,“6”)                                                                                                                                                                                                            
       在第一行第四列显示  数字6
************************************************/
void Dis_Line(char Line,char Lie ,int Data)
{
   int i;
   char Result[8];    //定义一个数组,存放数据的各位
   delay(50);
 for(i=0;i<4;i++)  	  //这里就两位数
  {
    Result[i]=Data%10+48;    //计算出数据的低位  模10求余数 ASCII码与数据差了48
    Data=Data/10;         //除法,计算商
  }
  write_command(Line_Buff[Line-1]+Lie-1);  //设置好起始坐标
  for(i=4;i>=1;i--)	  //从高位开始传
    write_data(Result[i-1]);
}
//void Dis_Two_Line(char Line,char Lie,int data)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -