#include "lcd.h"
static u8 lcd_buffer[lcd_buffer_size];
static u8 lcd_buffer_tmp[lcd_buffer_size];
static u8 lcd_addr[lcd_buffer_size]={0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F};
void tm1722_write_command(u8 data)
{
u8 i;
STB(0);
for(i = 0; i < 8; i++)
{
CLK(0);
delay_us(lcd_delay);
if(data & 0x01)
{
DIO(1);
}
else
{
DIO(0);
}
delay_us(lcd_delay);
CLK(1);
data >>= 1;
delay_us(lcd_delay);
}
STB(1);
delay_us(lcd_delay);
}
void tm1722_write_data(u8 addr, u8 data)
{
addr |= 0xc0;
u8 i;
STB(0);
for(i = 0; i < 8; i++)
{
CLK(0);
delay_us(lcd_delay);
if(addr & 0x01)
{
DIO(1);
}
else
{
DIO(0);
}
delay_us(lcd_delay);
CLK(1);
addr >>= 1;
delay_us(lcd_delay);
}
for(i = 0; i < 8; i++)
{
CLK(0);
delay_us(lcd_delay);
if(data & 0x01)
{
DIO(1);
}
else
{
DIO(0);
}
delay_us(lcd_delay);
CLK(1);
data >>= 1;
delay_us(lcd_delay);
}
STB(1);
delay_us(lcd_delay);
}
void tm1722_init(void)
{
memset(lcd_buffer, 0x00, sizeof(lcd_buffer));
memset(lcd_buffer_tmp, 0xff, sizeof(lcd_buffer));
}
void lcd_on(void)
{
}
void lcd_all(u8 on)
{
if(on)
{
memset(lcd_buffer, 0xff, sizeof(lcd_buffer));
}
else
{
memset(lcd_buffer, 0, sizeof(lcd_buffer));
}
}
void lcd_icon_level(u8 on)
{
if(on)
{
lcd_buffer[0] |= 0x08;// T1
lcd_buffer[0] |= 0x80;// T3
lcd_buffer[3] |= 0x80;// T2
lcd_buffer[1] |= 0x80;// T4
}
else
{
lcd_buffer[0] &= ~0x08;// T1
lcd_buffer[0] &= ~0x80;// T3
lcd_buffer[3] &= ~0x80;// T2
lcd_buffer[1] &= ~0x80;// T4
}
}
void lcd_level(u8 on, u8 digit)
{
lcd_buffer[7] &= ~0x0F;// 1A 1B 1C 1D
lcd_buffer[0] &= ~0x07;// 1E 1F 1G
if(on)
{
switch(digit)
{
case 0:
lcd_buffer[7] |= 0x0F;// 1A 1B 1C 1D
lcd_buffer[0] |= 0x05;// 1E 1F
break;
case 1:
lcd_buffer[7] |= 0x06;// 1B 1C
break;
case 2:
lcd_buffer[7] |= 0x0D;// 1A 1B 1D
lcd_buffer[0] |= 0x03;// 1E 1G
break;
case 3:
lcd_buffer[7] |= 0x0F;// 1A 1B 1C 1D
lcd_buffer[0] |= 0x02;// 1G
break;
case 4:
lcd_buffer[7] |= 0x06;// 1B 1C
lcd_buffer[0] |= 0x06;// 1F 1G
break;
case 5:
lcd_buffer[7] |= 0x0B;// 1A 1C 1D
lcd_buffer[0] |= 0x06;// 1F 1G
break;
case 6:
lcd_buffer[7] |= 0x0B;// 1A 1C 1D
lcd_buffer[0] |= 0x07;// 1E 1F 1G
break;
case 7:
lcd_buffer[7] |= 0x0E;// 1A 1B 1C
break;
case 8:
lcd_buffer[7] |= 0x0F;// 1A 1B 1C 1D
lcd_buffer[0] |= 0x07;// 1E 1F 1G
break;
case 9:
lcd_buffer[7] |= 0x0F;// 1A 1B 1C 1D
lcd_buffer[0] |= 0x06;// 1F 1G
break;
}
}
}
void lcd_shots(u8 on)
{
if(on)
{
lcd_buffer[5] |= 0x08;// T5
}
else
{
lcd_buffer[5] &= ~0x08;// T5
}
}
void lcd_a1(u8 on)
{
if(on)
{
lcd_buffer[6] |= 0x08;// T6
}
else
{
lcd_buffer[6] &= ~0x08;// T6
}
}
void lcd_pane(u8 on)
{
if(on)
{
lcd_buffer[2] |= 0x80;// T7
}
else
{
lcd_buffer[2] &= ~0x80;// T7
}
}
void lcd_digit2(u8 on, u8 digit) // digit2
{
lcd_buffer[5] &= ~0xF7;// 2A 2B 2C 2D 2E 2F 2G
if(on)
{
switch(digit)
{
case 0:
lcd_buffer[5] |= 0xF5;// 2A 2B 2C 2D 2E 2F
break;
case 1:
lcd_buffer[5] |= 0x60;// 2B 2C
break;
case 2:
lcd_buffer[5] |= 0xD3;// 2A 2B 2D 2E 2G
break;
case 3:
lcd_buffer[5] |= 0xF2;// 2A 2B 2C 2D 2G
break;
case 4:
lcd_buffer[5] |= 0x66;// 2B 2C 2G 2F
break;
case 5:
lcd_buffer[5] |= 0xB6;// 2A 2C 2D 2F 2G
break;
case 6:
lcd_buffer[5] |= 0xB7;// 2A 2C 2D 2E 2F 2G
break;
case 7:
lcd_buffer[5] |= 0xE0;// 2A 2B 2C
break;
case 8:
lcd_buffer[5] |= 0xF7;// 2A 2B 2C 2D 2E 2F 2G
break;
case 9:
lcd_buffer[5] |= 0xF6;// 2A 2B 2C 2D 2F 2G
break;
}
}
// else
// {
// switch(digit)
// {
// case 0:
// lcd_buffer[5] &= ~0xF5;// 2A 2B 2C 2D 2E 2F
// break;
// case 1:
// lcd_buffer[5] &= ~0x60;// 2B 2C
// break;
// case 2:
// lcd_buffer[5] &= ~0xD3;// 2A 2B 2D 2E 2G
// break;
// case 3:
// lcd_buffer[5] &= ~0xF2;// 2A 2B 2C 2D 2G
// break;
// case 4:
// lcd_buffer[5] &= ~0x66;// 2B 2C 2G 2F
// break;
// case 5:
// lcd_buffer[5] &= ~0xB6;// 2A 2C 2D 2F 2G
// break;
// case 6:
// lcd_buffer[5] &= ~0xB7;// 2A 2C 2D 2E 2F 2G
// break;
// case 7:
// lcd_buffer[5] &= ~0xE0;// 2A 2B 2C
// break;
// case 8:
// lcd_buffer[5] &= ~0xF7;// 2A 2B 2C 2D 2E 2F 2G
// break;
// case 9:
// lcd_buffer[5] &= ~0xF6;// 2A 2B 2C 2D 2F 2G
// break;
// }
// }
}
void lcd_digit3(u8 on, u8 digit) // digit3
{
lcd_buffer[6] &= ~0xF7;// 3A 3B 3C 3D 3E 3F 3G
if(on)
{
switch(digit)
{
case 0:
lcd_buffer[6] |= 0xF5;// 3A 3B 3C 3D 3E 2F
break;
case 1:
lcd_buffer[6] |= 0x60;// 3B 3C
break;
case 2:
lcd_buffer[6] |= 0xD3;// 3A 3B 3D 3E 3G
break;
case 3:
lcd_buffer[6] |= 0xF2;// 3A 3B 3C 3D 3G
break;
case 4:
lcd_buffer[6] |= 0x66;// 3B 3C 3G 3F
break;
case 5:
lcd_buffer[6] |= 0xB6;// 3A 3C 3D 3F 3G
break;
case 6:
lcd_buffer[6] |= 0xB7;// 3A 3C 3D 3E 3F 3G
break;
case 7:
lcd_buffer[6] |= 0xE0;// 3A 3B 3C
break;
case 8:
lcd_buffer[6] |= 0xF7;// 3A 3B 3C 3D 3E 3F 3G
break;
case 9:
lcd_buffer[6] |= 0xF6;// 3A 3B 3C 3D 3F 3G
break;
}
}
// else
// {
// switch(digit)
// {
// case 0:
// lcd_buffer[6] &= ~0xF5;// 3A 3B 3C 3D 3E 3F
// break;
// case 1:
// lcd_buffer[6] &= ~0x60;// 3B 3C
// break;
// case 2:
// lcd_buffer[6] &= ~0xD3;// 3A 3B 3D 3E 3G
// break;
// case 3:
// lcd_buffer[6] &= ~0xF2;// 3A 3B 3C 3D 3G
// break;
// case 4:
// lcd_buffer[6] &= ~0x66;// 3B 3C 3G 3F
// break;
// case 5:
// lcd_buffer[6] &= ~0xB6;// 3A 3C 3D 3F 3G
// break;
// case 6:
// lcd_buffer[6] &= ~0xB7;// 3A 3C 3D 3E 3F 3G
// break;
// case 7:
// lcd_buffer[6] &= ~0xE0;// 3A 3B 3C
// break;
// case 8:
// lcd_buffer[6] &= ~0xF7;// 3A 3B 3C 3D 3E 3F 3G
// break;
// case 9:
// lcd_buffer[6] &= ~0xF6;// 3A 3B 3C 3D 3F 3G
// break;
// }
// }
}
void lcd_digit4(u8 on, u8 digit) // digit4
{
lcd_buffer[0] &= ~0x70;// 4E 4F 4G
lcd_buffer[1] &= ~0x0F;// 4A 4B 4C 4D
if(on)
{
switch(digit)
{
case 0:
lcd_buffer[0] |= 0x50;// 4E 4F
lcd_buffer[1] |= 0x0F;// 4A 4B 4C 4D
break;
case 1:
lcd_buffer[1] |= 0x06;// 4B 4C
break;
case 2:
lcd_buffer[0] |= 0x30;// 4E 4G
lcd_buffer[1] |= 0x0D;// 4A 4B 4D
break;
case 3:
lcd_buffer[0] |= 0x20;// 4G
lcd_buffer[1] |= 0x0F;// 4A 4B 4C 4D
break;
case 4:
lcd_buffer[0] |= 0x60;// 4G 4F
lcd_buffer[1] |= 0x06;// 4B 4C
break;
case 5:
lcd_buffer[0] |= 0x60;// 4F 4G
lcd_buffer[1] |= 0x0B;// 4A 4C 4D
break;
case 6:
lcd_buffer[0] |= 0x70;// 4E 4F 4G
lcd_buffer[1] |= 0x0B;// 4A 4C 4D
break;
case 7:
lcd_buffer[1] |= 0x0E;// 4A 4B 4C
break;
case 8:
lcd_buffer[0] |= 0x70;// 4E 4F 4G
lcd_buffer[1] |= 0x0F;// 4A 4B 4C 4D
break;
case 9:
lcd_buffer[0] |= 0x60;// 4F 4G
lcd_buffer[1] |= 0x0F;// 4A 4B 4C 4D
break;
}
}
// else
// {
// switch(digit)
// {
// case 0:
// lcd_buffer[0] &= ~0x50;// 4E 4F
// lcd_buffer[1] &= ~0x0F;// 4A 4B 4C 4D
// break;
// case 1:
// lcd_buffer[1] &= ~0x06;// 4B 4C
// break;
// case 2:
// lcd_buffer[0] &= ~0x30;// 4E 4G
// lcd_buffer[1] &= ~0x0D;// 4A 4B 4D
// break;
// case 3:
// lcd_
STM32F103实现TM1722驱动程序
需积分: 5 35 浏览量
2024-03-11
16:22:21
上传
评论
收藏 3KB ZIP 举报
kuangnufeng
- 粉丝: 13
- 资源: 10
最新资源
- matlab+数据预处理+线性回归预测+异常值+检测+适用于各种类型的数据集
- 2023-04-06-项目笔记 - 第一百六十二阶段 - 4.4.2.160全局变量的作用域-160 -2024.06.12
- 串口接收什么,并发送什么给主机
- java+sql企业固定资产管理系统(论文+系统+开题报告+任务书+中期考核报告+任务书+评语表+答辩PPT).zip
- Qtcustomplot显示波形
- C语言解四元一次方程组
- 移动式升降台 移动式升降台
- 串口打印学号姓名,当串口以A为包头D为包尾发送一段数据时,串口接收处理,从而控制步进电机正转反转停止,并且可以使用OLED显示
- 数据结构基本知识讲解及习题
- xxx班xxx组JavaWeb期末实训.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈