当前位置: 首页 > news >正文

stc8g1k08a adc采集电压输出到串口和屏幕

ADC通道3(P3.3) 测量高于3.3v的需要接电阻分压

在这里插入图片描述
在这里插入图片描述
hex文件

#include "stc8g.h"
#include "stdio.h"
#include <intrins.h>
#include "string.h"
#define LCD_CS P55;//CS片选
#define LCD_SDA P54;//SDA数据
#define LCD_SCL P32;//SCL时钟
#define LCD_CS_CLR P55=0;
#define LCD_CS_SET P55=1;
#define LCD_SPI_SDA_CLR P54=0;
#define LCD_SPI_SDA_SET P54=1;
#define	LCD_SPI_SCL_CLR P32=0;
#define	LCD_SPI_SCL_SET P32=1;

#define LCD_RD_SET 1;//复位清屏 我没接在单片机上
#define	LCD_RS_SET 0;

#define COL  128		//x轴最大值
#define ROW  128		//y轴最大值
#define COL_Pre  0		
#define ROW_Pre  0	

#define WHITE       0xFFFF
#define BLACK      	0x0000	  
#define BLUE       	0x001F 
#define BRED        0XF81F
#define GRED 			 	0XFFE0
#define GBLUE			 	0X07FF
#define RED         0xF800
#define MAGENTA     0xF81F
#define GREEN       0x07E0
#define CYAN        0x7FFF
#define YELLOW      0xFFE0
#define BROWN 			0XBC40
#define BRRED 			0XFC07 
#define GRAY  			0X8430 
#define GRAY25      0xADB5


typedef unsigned char u8;
typedef unsigned short u16;
u16 POINT_COLOR = WHITE,BACK_COLOR = 0x0;  

void LCD_InitPins(void) {//初始化
    P5M0 = 0xFF; P5M1 = 0x00; // 设置P5为推挽输出
   
    P3M0 = (P3M0 & ~0x08) | 0x07; P3M1 = (P3M1 & ~0x07) | 0x08; //p30-32 推挽 p33 高阻

    LCD_CS_SET;  // 初始时CS为高电平
}
	
void  SendDataSPI(unsigned char dat)
{  
   unsigned char i;
   for(i=0; i<8; i++)			
   {  
      if( (dat&0x80)==0x80 ){
				LCD_SPI_SDA_SET;}
      else{
				LCD_SPI_SDA_CLR;}
      dat <<= 1;
			LCD_SPI_SCL_CLR;
      LCD_SPI_SCL_SET;			
   }
}

void WriteComm(unsigned char dt)
{ 
	LCD_CS_CLR;
	
	LCD_SPI_SDA_CLR;
	LCD_SPI_SCL_CLR;
	LCD_SPI_SCL_SET;		
	
	SendDataSPI(dt);
	
	LCD_CS_SET;
}
void WriteData(unsigned char dt)
{
	LCD_CS_CLR;
	LCD_SPI_SDA_SET;
	LCD_SPI_SCL_CLR;
	LCD_SPI_SCL_SET;		
	SendDataSPI(dt);
	LCD_CS_SET;
}

void SendData(unsigned int color)
{
	WriteData(color>>8);
	WriteData(color);
}


void LCD_IC_Init(void)// ILI9163C初始化
{

	// ILI9163C, 用于 LB1.41
	
	WriteComm(0x11); // 退出睡眠模式
	
	WriteComm(0x26); // 设置默认伽马值
	WriteData(0x04);
	
	WriteComm(0xB1); // 设置帧率
	WriteData(0x0C);
	WriteData(0x14);
	
	WriteComm(0xC0); // 设置 VRH1[4:0] & VC[2:0] 用于 VCI1 & GVDD
	WriteData(0x0C);
	WriteData(0x05);
	
	WriteComm(0xC1); // 设置 BT[2:0] 用于 AVDD & VCL & VGH & VGL
	WriteData(0x02); // 0x00
	
	WriteComm(0xC5); // 设置 VMH[6:0] & VML[6:0] 用于 VOMH & VCOML
	WriteData(0x29);  // 31  21  29
	WriteData(0x43);  // 58   48  43
	
	WriteComm(0xC7);
	WriteData(0x40);
	
	WriteComm(0x3a); // 设置颜色格式
	WriteData(0x05);
	
	WriteComm(0x2A); // 设置列地址
	WriteData(0x00);
	WriteData(0x00);
	WriteData(0x00);
	WriteData(0x7F);
	
	WriteComm(0x2B); // 设置页地址
	WriteData(0x00);
	WriteData(0x00);
	WriteData(0x00);
	WriteData(0x9F);
	
	WriteComm(0x36); // 设置扫描方向
	WriteData(0xC8); // 0xc8
	
	WriteComm(0xB7); // 设置源输出方向
	WriteData(0x00);
	
	WriteComm(0xF2); // 启用伽马位
	WriteData(0x01);
	
	WriteComm(0xE0);
	WriteData(0x36); // p1
	WriteData(0x29); // p2
	WriteData(0x12); // p3
	WriteData(0x22); // p4
	WriteData(0x1C); // p5
	WriteData(0x15); // p6
	WriteData(0x42); // p7
	WriteData(0xB7); // p8
	WriteData(0x2F); // p9
	WriteData(0x13); // p10
	WriteData(0x12); // p11
	WriteData(0x0A); // p12
	WriteData(0x11); // p13
	WriteData(0x0B); // p14
	WriteData(0x06); // p15
	
	WriteComm(0xE1);
	WriteData(0x09); // p1
	WriteData(0x16); // p2
	WriteData(0x2D); // p3
	WriteData(0x0D); // p4
	WriteData(0x13); // p5
	WriteData(0x15); // p6
	WriteData(0x40); // p7
	WriteData(0x48); // p8
	WriteData(0x53); // p9
	WriteData(0x0C); // p10
	WriteData(0x1D); // p11
	WriteData(0x25); // p12
	WriteData(0x2E); // p13
	WriteData(0x34); // p14
	WriteData(0x39); // p15
	WriteComm(0x29); // 显示开启
	WriteComm(0x2c);
}

code const unsigned char asc2_1608[95][16]={	  
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x33,0xF8,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00},/*""",2*/
{0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00},/*"#",3*/
{0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00},/*"$",4*/
{0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00},/*"%",5*/
{0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08},/*"&",6*/
{0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00},/*"(",8*/
{0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00},/*"*",10*/
{0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00},/*"+",11*/
{0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"-",13*/
{0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00},/*"/",15*/
{0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"0",16*/
{0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"1",17*/
{0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00},/*"2",18*/
{0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00},/*"4",20*/
{0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00},/*"5",21*/
{0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00},/*"6",22*/
{0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},/*"8",24*/
{0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00},/*"<",28*/
{0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00},/*"=",29*/
{0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00},/*">",30*/
{0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00},/*"?",31*/
{0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00},/*"@",32*/
{0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04},/*"A",33*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00},/*"B",34*/
{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00},/*"C",35*/
{0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"D",36*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00},/*"E",37*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00},/*"F",38*/
{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00},/*"G",39*/
{0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04},/*"H",40*/
{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00},/*"I",41*/
{0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00},/*"J",42*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00},/*"K",43*/
{0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00},/*"L",44*/
{0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00},/*"M",45*/
{0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00},/*"N",46*/
{0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"O",47*/
{0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00},/*"P",48*/
{0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00},/*"Q",49*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04},/*"R",50*/
{0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00},/*"S",51*/
{0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00},/*"T",52*/
{0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00},/*"U",53*/
{0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00},/*"V",54*/
{0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00},/*"W",55*/
{0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04},/*"X",56*/
{0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00},/*"Y",57*/
{0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00},/*"[",59*/
{0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00},/*"\",60*/
{0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00},/*"^",62*/
{0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01},/*"_",63*/
{0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04},/*"a",65*/
{0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"b",66*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04},/*"d",68*/
{0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00},/*"e",69*/
{0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00},/*"f",70*/
{0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00},/*"g",71*/
{0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"h",72*/
{0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00},/*"j",74*/
{0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00},/*"k",75*/
{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"l",76*/
{0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC},/*"m",77*/
{0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"n",78*/
{0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00},/*"o",79*/
{0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"p",80*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01},/*"q",81*/
{0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00},/*"s",83*/
{0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00},/*"t",84*/
{0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04},/*"u",85*/
{0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00},/*"v",86*/
{0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00},/*"w",87*/
{0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00},/*"x",88*/
{0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00},/*"y",89*/
{0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00},/*"~",94*/
};  

void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend) //设置显示区域
{
	 WriteComm(0x2a);
	 WriteData((Xstart)>>8);
	 WriteData((Xstart));
	 WriteData((Xend)>>8);
	 WriteData(Xend);
	
	 WriteComm(0x2b);
	 WriteData((Ystart)>>8);
	 WriteData((Ystart));
	 WriteData((Yend)>>8);
	 WriteData(Yend);

	 WriteComm(0x2c); 	
}



void WriteOneDot(unsigned int color)//单个点
{
	LCD_CS_CLR;
	LCD_RD_SET;
	LCD_RS_SET;
	SendData(color);
	LCD_CS_SET;
}
void LCD_SetCursor(unsigned short Xpos, unsigned short Ypos)//单点画布
{	 	
	BlockWrite(Xpos,Xpos+1,Ypos,Ypos+1);
}
void LCD_Fast_DrawPoint(unsigned short x,unsigned short y,unsigned short color)//画点
{	  
	LCD_SetCursor(x,y);	
	WriteOneDot(color);				
}
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)//显示字符
{  							  
	u8 temp,t1,t;
	u16 y0=y;
	u8 csize=(size/8+((size%8)?1:0))*(size/2);		
 	num=num-' ';
	for(t=0;t<csize;t++)//t--左右镜像
	{   
		if(size==16)temp=asc2_1608[num][t]; 
		//else if (size==12)temp=asc2_1206[num][t]; 		
		//else if(size==24)temp=asc2_2412[num][t];	
		else return;							
		for(t1=0;t1<8;t1++) //宽度8 
		{			    
			if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);
			else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);
			temp<<=1;
			y++;      
			if(y>=ROW)return;		
			if((y-y0)==size)   
			{
				y=y0;  
				x++;   
				if(x>=COL)return;	
				break;
			}
		}  	 
	}  	    	   	 	  
} 


void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)//显示字符串
{ 
	u8 x0=x;
	width+=x;
	height+=y;
    while((*p<='~')&&(*p>=' '))
    {       
        if(x>=width){x=x0;y+=size;}
        if(y>=height)break;//͋³ö
        LCD_ShowChar(x,y,*p,size,0);
        x+=size/2;
        p++;
    }  
}	

void draw_rectangle(int x1,int y1,int x2,int y2,int color){//绘制矩形

		int i,j;
		LCD_CS_CLR;
		BlockWrite(0,COL,0,ROW);
		
		for(i=0;i<COL;i++)
		{
		  for(j=0;j<ROW;j++)
			{    if(j>x1&&j<x2&&i>y1&&i<y2){
				
			SendData(color);
			}
			else{
			SendData(BLACK);
			}
					
				}
			}
			LCD_CS_SET;

}


void ADCInit()//初始化
{
    P_SW2 |= 0x80;
		ADCTIM = 0x3f;                              //00111111设置ADC内部时序
    P_SW2 &= 0x7f;
    ADCCFG = 0x2f;                              //00101111 右对齐 设置ADC时钟为系统时钟/2/16
    ADC_CONTR |= 0x80;                           //adc电源开
}
int ADCRead(u8 channel)
{
    int res;
		ADC_RES = 0;
		ADC_RESL = 0;
		ADC_CONTR =0xc0|channel;//0x40|0x80| 开启adc电源 开始adc转换 选择adc通道
		_nop_();
    _nop_();
    while (!(ADC_CONTR & 0x20));                //查询ADC_LAG完成标志
    ADC_CONTR &= ~0x20;                         //清完成标志
    res = (ADC_RES << 8) | ADC_RESL;            //读取ADC结果
		return res;
	//return	((u16)ADC_RES * 256 + (u16)ADC_RESL);
}

void msg_send(char msg[]){//发送字符串函数
	int i=0;
	while(msg[i]){
	SBUF=msg[i];
	while(!TI);
	TI=0;
	i++;
	}
}
	

#define ADCTIM  (*(unsigned char volatile xdata *)0xfea8)

int *BGV;
char internal_ref[8],vcc[8],adc3_v[8],adc_s[8],adc3[4];
int ref_v,v;
u16 res,res1,res2;
void main(){
		//串口控制
	ES = 1;//允许串口中断
	SM0 = 0;
	SM1 = 1;//sm0 0 sm1 1 设置串口1工作在模式1,可变波特率8位数据方式
	SM2 = 0;//多机通信模式 模式0和1设置为0
	RI = 0;//接收位标志清零
	TI = 0;//发送位标志清零
	REN = 1;//允许接收数据
	
	TMOD &= 0xCF; //1100 1111 设置定时器定时器1模式0
	TL1 = 0xE8;			//设置定时初始值
	TH1 = 0xFF;			//设置定时初始值
	TR1=1;//启用定时器1
	
	
	
	LCD_InitPins();//端口初始化
	LCD_IC_Init();//屏幕初始化
	draw_rectangle(1,128,1,128,BLACK);//绘制黑色背景
	
	P3M0 &= ~0x08; P3M1 |= 0x08;  //配置P33高阻输入,用于adc采集
	BGV = (int code *)0x1ff7;//rom
	ref_v=*BGV;//从rom读取内部1.2v电压值
	sprintf(internal_ref,"%d",ref_v);//转换字符串
	ADCInit();  //ADC初始化
	P_SW2 |= 0x80;      //使能访问XFR
	
while(1){
	
	res = ADCRead(3);//p33 adc值
	adc3[0]=res/1000+'0';
	adc3[1]=res%1000/100+'0';
	adc3[2]=res%100/10+'0';
	adc3[3]=res%10+'0';
	msg_send(adc3);

	sprintf(adc_s,"%d",res);//转换字符串
	LCD_ShowString(0,0,122,20,16,"adc:");
	LCD_ShowString(32,0,122,20,16,adc3);//显示adc值
	
	
	
	v =(long)res*v/1024L;//p33 电压计算
	sprintf(adc3_v,"%d",(int)v);
	

	res = ADCRead(15);    //读取内部1.19v
	v = (int)(1024L * ref_v/ res); 
	sprintf(vcc,"%d",v);
	
	
	
	LCD_ShowString(0,22,122,20,16,"p33:");
	LCD_ShowString(56,22,122,20,16," mv");
	LCD_ShowString(32,22,122,20,16,adc3_v);//显示adc3电压计算值
	
	
	LCD_ShowString(0,44,122,20,16,"vcc:");
	LCD_ShowString(32,44,122,22,16,vcc);//显示vcc电压值
	LCD_ShowString(64,44,122,22,16,"mv");
	
//LCD_ShowString(0,66,122,20,16,"ref:");
//LCD_ShowString(32,66,122,20,16,internal_ref);//显示内部1.19v电压值
//LCD_ShowString(64,66,122,22,16,"mv");
	
	
}	


}

相关文章:

  • 深入理解 QScrollArea 的 widgetResizable 属性
  • C++——静态成员
  • flutter 专题 六十八 Flutter 多图片上传
  • C++:函数
  • AF3 OpenFoldDataLoader类解读
  • PostgreSQL 一文从安装到入门掌握基本应用开发能力!
  • 【C++】--- string的使用
  • go游戏后端开发24:写完赢三张游戏
  • C++中如何使用STL中的list定义一个双向链表,并且实现增、删、改、查操作
  • #SVA语法滴水穿石# (012)关于 first_match、throughout、within 的用法
  • 华为交换机配置指南:基础到高级命令详解
  • 51单片机使用定时器实现LCD1602的时间显示(STC89C52RC)
  • 迭代器运算详解(四十二)
  • OSI模型中协议数据单元(PDU)
  • 21 天 Python 计划:MySQL库相关操作
  • 深信服护网蓝初面试题
  • TYUTJava阶段测试
  • Spring 概念
  • 初探:简道云系统架构及原理
  • 定时器的实现方案:红黑树、最小堆与时间轮
  • 小型网站开发小论文/百度网盘官网登录入口
  • 河南省工程建设信息网一体化平台/企业网站排名优化
  • 互联网网站建设哪里好/知名seo公司
  • 公司网站建设费怎么入账/百度官网首页下载
  • 怎么做好一个网站/湖南百度推广代理商
  • wordpress怎么换行/搜索优化是什么意思