#include <msp430F249.h>
#include <string.h>
#include "mfrc522_driver.h"
#include "mfrc522_config.h"
#include "mfrc522_main.h"
#include "timer.h"
#include "beep.h"
#include "FL100G.h"
#include "ST7735S.h"
#include "ST7735font.h"
#ifdef OPENDOORCNT
extern unsigned int opendoorcnt;
#endif //OPENDOORCNT
extern unsigned char sd2405[7];
unsigned char DisplayOn; //液晶屏显示/关闭
unsigned char num_display; //显示内容标志号
unsigned char Last_display;
unsigned char num_password; //密码输入位数
unsigned char Password_ID; //开门密码编号
unsigned char num_ID; //开门用户编号
unsigned char WLC_ID; //遥控器编号
unsigned char Channel_ID; //无线信道编号
unsigned char ChannelNum; //433信道
unsigned char RecordUsers_ID; //用户查询编号
unsigned char intime[12]; //手动调整时间存储数组
unsigned char flag_intime; //手动调整时间位置标志
unsigned char pos_intime[12]={3,4,7,8,11,12,4,5,7,8,10,11};//手动调整时间输入位置信息
unsigned char flag_ID;
_lcd_dev lcddev;
//LCD的画笔颜色和背景色
unsigned int POINT_COLOR=0x0000; //画笔颜色
unsigned int BACK_COLOR=0xFFFF; //背景色
#define LCD_ST7735S_SPI
#define ST7735_DELAY {delay_us(1);}
//==============================================================
// Function Name: void ST7735_IO_Init(void)
// Parameters: none
// Return value: none
// Description: this function is used to inite the IO
// Tips: 4线SPI 模式,用到5根线,片选CS 复位脚RST 数据命令DC 时钟 数据
//============================================================
void ST7735_IO_Init(void)
{
P2DIR |= ST7735_REST+ST7735_DC+ST7735_SCLK+ST7735_SDA;
P3DIR |= ST7735_CS;
P1DIR |= ST7735_BL;
ST7735_CS_DISABLE();
ST7735_BL_DISABLE();
}
//==============================================================
// Function Name: void ST7735_SPI_Write_Data(unsigned char data)
// Parameters: data:发送的数据
// Return value: none
// Description: this function is used to set the starting address of the char we are want to display
// Tips: 与SSD1306不同的地方,在下发命令的时候,若是多字节命令,发第一个字节时DC=0,其他字节时需要DC=1
// 根据4线SPI,DC=1时,发送数据 DC=0时发送命令
//============================================================
void ST7735_SPI_Byte_Wr(unsigned char data)
{
unsigned char i;
ST7735_SPI_OUT();
for(i=0;i<8;i++)
{
ST7735_SPI_CLK_LOW;
if(data&0x80)
{
ST7735_SPI_DAT_HIGH;
}
else
{
ST7735_SPI_DAT_LOW;
}
data <<= 1;
ST7735_DELAY;
ST7735_SPI_CLK_HIGH;
ST7735_DELAY;
}
ST7735_SPI_CLK_LOW;
}
//==============================================================
// Function Name: unsigned char ST7735_SPI_Byte_Re(void)
// Parameters: data:发送的数据
// Return value: none
// Description: this function is used to set the starting address of the char we are want to display
// Tips: 根据数据手册P39页,4线SPI串口读数据时序,对于不同的命令读时序不同
//============================================================
unsigned char ST7735_SPI_Byte_Re(void)//对LED操作基本用不到读,都是写操作
{
unsigned char i;
unsigned char data=0;
ST7735_SPI_IN();
for(i=0;i<8;i++)
{
ST7735_SPI_CLK_LOW;
ST7735_DELAY;
ST7735_SPI_CLK_HIGH;
data <<= 1;
if(ST7735_SPI_DAT)
{
data |= 1;
}
}
ST7735_SPI_CLK_LOW;
return(data);
}
//==============================================================
// Function Name: void ST7735_SPI_Write_Data(unsigned char data)
// Parameters: data:发送的数据
// Return value: none
// Description: this function is used to set the starting address of the char we are want to display
// Tips: 与SSD1306不同的地方,在下发命令的时候,若是多字节命令,发第一个字节时DC=0,其他字节时需要DC=1
// 根据4线SPI,DC=1时,发送数据 DC=0时发送命令
// 注意、注意、注意:这里采用的4线8bit的通讯方式,因此每个命令后面跟8位数据-参考规格书,也就是说只用8位,高8位是无效的,
// 因此,这里尽管传递来的是16位的数据,只发送低8位即可,若发送两次8位数据,从设备只识别前面的8位数据
// 若采用并口16位或18位通讯模式时,发送16位或18位数据,从设备会从认为数据线上的16或18位数据时有效的,
//============================================================
void ST7735_SPI_Write_Data(unsigned int data)//写入16位的数据,实际是颜色信息
{
ST7735_CS_ENABLE();
ST7735_SPI_DC_DATA();
ST7735_SPI_Byte_Wr(data); //写入数据低8位
ST7735_CS_DISABLE();
}
//==============================================================
// Function Name: void ST7735_SPI_Write_Data_16bit(unsigned char data)
// Parameters: data:发送的数据
// Return value: none
// Description: this function is used to set the starting address of the char we are want to display
// Tips: 与SSD1306不同的地方,在下发命令的时候,若是多字节命令,发第一个字节时DC=0,其他字节时需要DC=1
// 根据4线SPI,DC=1时,发送数据 DC=0时发送命令
// 尽管采用4线串口通讯,但是颜色信息时,根据选用的颜色模式来配置,比如RGB565,则识别16位数据,需要连续发送2个字节
// 所以当写颜色数据时,需要连续下发16位数据,参考数据手册P58页
//============================================================
void ST7735_SPI_Write_Data_16bit(unsigned int data)//写入16位的数据,实际是颜色信息
{
ST7735_CS_ENABLE();
ST7735_SPI_DC_DATA();
ST7735_SPI_Byte_Wr(data>>8);//写入数据高8位
ST7735_SPI_Byte_Wr(data); //写入数据低8位
ST7735_CS_DISABLE();
}
//==============================================================
// Function Name: void ST7735_SPI_Read_Data(unsigned char data)
// Parameters: data:发送的数据
// Return value: none
// Description: this function is used to set the starting address of the char we are want to display
// Tips: 与SSD1306不同的地方,在下发命令的时候,若是多字节命令,发第一个字节时DC=0,其他字节时需要DC=1
// 根据4线SPI,DC=1时,发送数据 DC=0时发送命令
// Tips: 根据ST7735S数据手册P39页,4线SPI串口读数据时序,对于不同的命令读时序不同
//============================================================
unsigned char ST7735_SPI_Read_Data(unsigned int reg)//写入16位的数据,实际是颜色信息
{
unsigned char temp=0;
ST7735_CS_ENABLE();
ST7735_SPI_DC_COMMAND();
ST7735_SPI_Byte_Wr(reg);//参考数据手册,写完命令后,直接读数据
ST7735_SPI_DC_DATA();
temp=ST7735_SPI_Byte_Re();
temp=ST7735_SPI_Byte_Re();//这里是读8位数据,若是读24位或32位,需要修改下面的返回值变量类型
ST7735_CS_DISABLE();
return temp;//这里是8位的为了通配可设置为32位
}
//==============================================================
// Function Name: void ST7735_SPI_Write_Command(unsigned char command)
// Parameters: command:发送的命令
// Return value: none
// Description: this function is used to set the starting address of the char we are want to display
// Tips: 与SSD1306不同的地方,在下发命令的时候,若是多字节命令,发第一个字节时DC=0,命令;其他字节时需要DC=1,数据
//============================================================
void ST7735_SPI_Write_Command(unsigned int command)
{
ST7735_CS_ENABLE();
ST7735_SPI_DC_COMMAND();
ST7735_SPI_Byte_Wr(command);
ST7735_CS_DISABLE();
}
#define LCD_ST7735S_8080
#define LCD_ST7735S_DRIVES
//==============================================================
// Function Name: void LCD_ST7735_Write_Reg(vunsigned int regval)
// Parameters: none
// Return value: none
// Description: this function is used to initialization IIC
// Tips:向LCD写命令
//============================================================
void LCD_ST7735_Write_Reg( unsigned int regval)
{
ST7735_SPI_Write_Command(regval);
}
//==============================================================
// Function Name: void LCD_ST7735_Write_Data(vunsigned int data)
// Parameters: none
// Return value: none
// Description: this function is used to initialization IIC
// Tips:

qq_23727547
- 粉丝: 5
最新资源
- 中小企业网络推广方案策划范文复习课程------.pdf
- 实训4-1防火墙与网络隔离技术.doc
- hplc测定蛋白质含量方法验证.pptx
- 基于图像的敏感信息识别
- 消防通信指挥车方案.doc
- 网络沟通技巧.docx
- 2023年全国大学生物联网设计竞赛模板.docx
- 奕福茶叶网络营销策划书.doc
- 基于AT89C51单片机的智能水表设计2.doc
- 项目管理(第1部分).ppt
- 酒店无线网络设计方案.doc
- 十分钟了解区块链.pptx
- 以太网接口设计方案样本.doc
- 2023年8月福师离线作业计算机应用基础期末试卷.doc
- 物流网络的构造和库存管理.pptx
- 网络整合教学模式市公开课一等奖百校联赛优质课金奖名师赛课获奖课件.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


