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

📄 3310lcd_function.c

📁 本程序简单的示范了如何使用3310液晶。 显示静止的英文显示静止的中文 显示移动的中文显示静止的图片 使用PWM控制3310的背光亮度
💻 C
字号:
#include <avr/io.h>
#include <avr/delay.h>
#include <avr/pgmspace.h>
#include "3310LCD_main.h"
#include "3310LCD_function.h"
#include "english_6x8_pixel.h"

/*-----------------------------------------------------------------------
LCD_init          : 3310LCD初始化
-----------------------------------------------------------------------*/
void LCD_init(void)
{
    PORTB &= ~(1 << LCD_nRST);		// 产生一个让LCD复位的低电平脉冲
    _delay_ms(1);
    PORTB |= (1 << LCD_nRST);

    PORTB &= ~(1 << LCD_nCE);
    _delay_us(10);
    PORTB |= (1 << LCD_nCE);		// LCD SPI同步

    LCD_write_byte(0x21, 0);		// 使用扩展命令设置LCD模式
    LCD_write_byte(0x80 + 0x48, 0);	// 设置偏置电压
    LCD_write_byte(0x04 + 0x02, 0);	// 温度校正
    LCD_write_byte(0x10 + 0x03, 0);	// 1:48
    LCD_write_byte(0x20, 0);  		// 使用基本命令
    LCD_clear();		 			// 清屏
    LCD_write_byte(0x0c, 0);		// 设定显示模式,正常显示
}

/*-----------------------------------------------------------------------
LCD_write_byte    : 使用SPI接口写数据到LCD
 
输入参数:	data    :写入的数据;
			command :写数据/命令选择;
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
{
    PORTB &= ~(1 << LCD_nCE) ;			// 使能LCD
    if (command == 0)
        PORTB &= ~(1 << LCD_DnC);		// 传送命令
    else
        PORTB |= (1 << LCD_DnC);		// 传送数据
    SPDR = data;			 			// 传送数据到SPI寄存器
    while ((SPSR & (1 << SPIF)) == 0);	// 等待数据传送完

⌨️ 快捷键说明

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