锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

电赛 电容触摸串口屏

时间:2023-07-08 10:37:00 m1c电容

???九层妖塔从垒土开始
在这里插入图片描述


电赛 触摸串口屏

  • 一、分类:电阻屏 or 电容屏
  • 二、淘晶驰电容触摸串口屏
  • 三、上位机
  • 四、MCU
  • `main.c`
  • `UART.H`
  • `UART.c`


一、分类:电阻屏 or 电容屏

介绍触摸屏的基本原理
分析触摸屏的工作原理
STM32CubeMX系列|触摸屏

二、淘晶驰电容触摸串口屏

USART HMI 资料中心

三、上位机

四、MCU

main.c

#include  #include  #include   #define uchar unsigned char #define uint unsigned int     uchar Receive; uchar S1_num; uchar S4_num; void GPIO(void);      //IO口初始化函数  void Delay10ms();  //@11.0592MHz  void main(void) { 
             GPIO();  UartInit();       ///串行口1初始化函数   ES=1;  EA=1;   S1 = 1 ; S2 = 1; S3 = 0; S4 = 0; S5 = 0;    while(1)  { 
          // UART_Send_start()///确保串口HMI正常通信  // UART_Send_Str("page0.t0.txt=\"灯1亮\""); // UART_Send_END();  // Delay10ms(); //  // UART_Send_start()///确保串口HMI正常通信  // UART_Send_Str("page0.t0.txt=\"灯1灭\""); // UART_Send_END();     }  }/span> //-----------------------------------IO口初始化函数-----------------------------// void GPIO(void) { 
          P0M1=0; P0M0=0; P1M1=0; P1M0=0; P2M1=0; P2M0=0; P3M1=0; P3M0=0; P4M1=0; P4M0=0; P5M1=0; P5M0=0; } 

UART.H

#ifndef _UART_H_
#define _UART_H_

#include 
  
#define uchar unsigned char
#define uint unsigned int
	

sbit S1 = P0^0;
sbit S2 = P0^1;
sbit S3 = P0^2;
sbit S4 = P0^3;
sbit S5 = P0^4;

extern uchar Receive;

void UartInit(void);	//9600bps@11.0592MHz 串行口1初始化函数
void UART_Send_Byte(unsigned char dat);	//发送一个字节 串行发送采用查询方式
void UART_Send_Str(char *s);
void UART_Send_END(void);
void UART_Send_start(void);
void Delay10ms();		//@11.0592MHz

#endif

UART.c


#include 
#include 



//-------------------------------------串行口1初始化函数-----------------------------//
void UartInit(void)		//9600bps@11.0592MHz
{ 
        
	SCON = 0x50;		 //8位数据,可变波特率
	AUXR |= 0x40;		 //定时器1时钟为Fosc,即1T
	AUXR &= 0xFE;		 //串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		 //设定定时器1为16位自动重装方式
	TL1 = 0xE0;		   //设定定时初值
	TH1 = 0xFE;		   //设定定时初值
	ET1 = 0;		     //禁止定时器1中断
	TR1 = 1;		     //启动定时器1
}

void UART_Send_Byte(unsigned char dat)	//发送一个字节 串行发送采用查询方式
{ 
        
 	//ES=0; //关串行口1中断
  TI=0;      //清除发送中断标志位
  SBUF=dat;  //将数据写入缓冲区
  while(!TI);//等待发送结束
  TI=0;
}


void UART_Send_Str(char *s)   //发送一个字符串
{ 
        
 int i=0;
 while(s[i]!=0)
 { 
        
 	UART_Send_Byte(s[i]);
 	i++;
 }
 
}
void UART_Send_END(void)  //发送结束信号
{ 
        
	 UART_Send_Byte(0xFF);
	 UART_Send_Byte(0xFF);
	 UART_Send_Byte(0xFF);
}


void UART_Send_start(void)
{ 
        
	 Delay10ms();	
	 UART_Send_END();
	 Delay10ms();	
}


void Delay10ms()		//@11.0592MHz
{ 
        
	unsigned char i, j;

	i = 108;
	j = 145;
	do
	{ 
        
		while (--j);
	} while (--i);
}




void uart_isr() interrupt 4
{ 
        
  if(RI==1)
   { 
        
	  RI=0;       //清除RI位
    Receive=SBUF;
  	switch(Receive)
		{ 
        
			case 0X01: { 
        S1 = 0 ; S2 = 1; S3 = 0; S4 = 0; S5 = 1;} break;   //交越
			case 0X02: { 
        S1 = 1 ; S2 = 1; S3 = 0; S4 = 0; S5 = 0;} break;   //标准
			case 0X03: { 
        S1 = 1 ; S2 = 0; S3 = 0; S4 = 0; S5 = 0;} break;   //顶部
			case 0X04: { 
        S1 = 1 ; S2 = 1; S3 = 1; S4 = 0; S5 = 0;} break;   //底部
			case 0X05: { 
        S1 = 1 ; S2 = 1; S3 = 0; S4 = 1; S5 = 0;} break;   //双向
		}
	 }
}
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章