资源简介
STM32 实现12864液晶屏显示汉字和图片,且可在任意位置画点、横线、竖线、斜线。其中所有程序全部由自己编写,且所有功能可全部实现。

代码片段和文件信息
/**********************************************************************************
* 文件名 :12864.c
* 描述 :利用12864液晶屏显示任意汉字和图片
* 实验平台:THE_ONE_1 STM32开发板
* 库版本 :ST 3.5.0
*
* 作者 :ZXL
* 日期 :2013.8
* 备注 :无
**********************************************************************************/
#include “12864.h“
#include “monkey.h“
u16 data[480]; //定义一个15*32大小的数组
#define RS GPIO_Pin_8 // 数据/命令选择端
#define RS_H GPIO_SetBits(GPIOEGPIO_Pin_8)
#define RS_L GPIO_ResetBits(GPIOEGPIO_Pin_8)
#define RW GPIO_Pin_9 // 读/写选择端
#define RW_H GPIO_SetBits(GPIOEGPIO_Pin_9)
#define RW_L GPIO_ResetBits(GPIOEGPIO_Pin_9)
#define E GPIO_Pin_10 // 使能信号
#define E_H GPIO_SetBits(GPIOEGPIO_Pin_10)
#define E_L GPIO_ResetBits(GPIOEGPIO_Pin_10)
#define PSB_H GPIO_SetBits(GPIOEGPIO_Pin_11) // 并/串行选择端
#define DATA GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7
void delay(u16 x ) //延时
{
u16 ij;
for(i=0;i for(j=0;j<1000;j++);
}
void LCD_Write_Cmd(u8 cmd) //写命令
{
RS_L;
RW_L;
E_L;
GPIOE->ODR = (GPIOE->ODR & 0xFF00) | cmd;
delay(5);
E_H;
delay(5);
E_L;
}
void LCD_Write_Data(u16 data) //写数据
{
RS_H;
RW_L;
E_L;
GPIOE->ODR = (GPIOE->ODR & 0xFF00) | data;
delay(5);
E_H;
delay(5);
E_L;
}
void LCD_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定义一个GPIO_InitTypeDef类型的结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOEENABLE); //开启GPIOE的外设时钟
GPIO_InitStructure.GPIO_Pin = RS | RW | E | DATA;//选择要控制的GPIOE引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置引脚模式为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚速率为50MHZ
GPIO_Init(GPIOE&GPIO_InitStructure); //调用库函数,初始化GPIOE
delay(10);
PSB_H; //并行方式
LCD_Write_Cmd(0x30);delay(5);//基本指令集
LCD_Write_Cmd(0x0c);delay(5);//整体显示打开关光标
LCD_Write_Cmd(0x01);delay(5);//清除LCD的显示内容
LCD_Write_Cmd(0x02);delay(5);// 地址归位
LCD_Write_Cmd(0x06);delay(5);//游标右移
LCD_Write_Cmd(0x80);delay(5);//设定显示的起始地址
}
void LCD_Init_Picture(void) //清屏操作
{
u8 ij;
LCD_Write_Cmd(0x34);//打开拓展指令集,绘图指令关
for(j=0;j<8;j++) //清除第一行
{
for(i=0;i<32;i++)
{
LCD_Write_Cmd(0x80+i);//行
LCD_Write_Cmd(0x80+j);//列
LCD_Write_Data(0x00);//写高八位数据
LCD_Write_Data(0x00);//写低八位数据
}
}
for(j=0;j<8;j++) //清除第二行
{
for(i=0;i<32;i++)
{
LCD_Write_Cmd(0x80+i);
LCD_Write_Cmd(0x88+j);
LCD_Write_Data(0x00);
LCD_Write_Data(0x00);
}
}
LCD_Write_Cmd(0x30);//打开基本指令集
}
void LCD_Position(u8 xu8 y) //定位在第几行第y个位置显示
{
u8 position;
if(x==0) x=0x80; //第一行
else if(x==1) x=0x90; //第二行
else if(x==2) x=0x88; //第三行
else if(x==3) x=0x98; //第四行
position = x + y;
LCD_Write_Cmd(position);
}
u16 Exchange(u8 xx) //
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7713 2013-08-11 19:41 9. 12864\12864.c
文件 17273 2010-06-07 10:25 9. 12864\CMSIS\core_cm3.c
文件 85714 2011-02-09 14:59 9. 12864\CMSIS\core_cm3.h
文件 15766 2011-03-10 10:52 9. 12864\CMSIS\startup\startup_stm32f10x_cl.s
文件 15503 2011-03-10 10:52 9. 12864\CMSIS\startup\startup_stm32f10x_hd.s
文件 15692 2011-03-10 10:52 9. 12864\CMSIS\startup\startup_stm32f10x_hd_vl.s
文件 12376 2011-03-10 10:52 9. 12864\CMSIS\startup\startup_stm32f10x_ld.s
文件 13656 2011-03-10 10:52 9. 12864\CMSIS\startup\startup_stm32f10x_ld_vl.s
文件 12765 2011-03-10 10:52 9. 12864\CMSIS\startup\startup_stm32f10x_md.s
文件 14073 2011-03-10 10:51 9. 12864\CMSIS\startup\startup_stm32f10x_md_vl.s
文件 15955 2011-03-10 10:51 9. 12864\CMSIS\startup\startup_stm32f10x_xl.s
文件 633941 2011-03-10 10:51 9. 12864\CMSIS\stm32f10x.h
文件 36557 2011-03-10 10:51 9. 12864\CMSIS\system_stm32f10x.c
文件 2085 2011-03-10 10:51 9. 12864\CMSIS\system_stm32f10x.h
文件 8982 2011-03-10 10:47 9. 12864\FWlib\inc\misc.h
文件 21690 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_adc.h
文件 7555 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_bkp.h
文件 27559 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_can.h
文件 6573 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_cec.h
文件 2162 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_crc.h
文件 15233 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_dac.h
文件 3818 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_dbgmcu.h
文件 20754 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_dma.h
文件 6824 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_exti.h
文件 25445 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_flash.h
文件 27016 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_fsmc.h
文件 20175 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_gpio.h
文件 30029 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_i2c.h
文件 3828 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_iwdg.h
文件 4383 2011-03-10 10:47 9. 12864\FWlib\inc\stm32f10x_pwr.h
............此处省略90个文件信息
- 上一篇:高斯分布来建立背景模型
- 下一篇:北大POJ部分题目答案一些基础题目
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
评论
共有 条评论