资源简介
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部分题目答案一些基础题目
相关资源
- stm32_cjson_demo.rar
- DHT22(AM2302)STM32f103程序
- STM32库函数助手
- STM32F103+ENC28J60+Webserver
- STM32f407ZGT6
- STM32+SHT30(DS18B20)+0.96寸OLED(IIC)的
- 《STM32开发指南》第三十四章 ADXL345三
- STM32的FLASH模拟EEPROM程序,亲测可用
- STM32F103RCT6使用I2C通讯PCF8591数模转换模
- stm32f103c8t6+ESP826 设置为AP模式
- STM32如何通过USB转串口线程序
- STM32F4076路串口DMA发送&接收实验
- 几十个开源的STM32项目.zip
- stm32f10x相关库文件 (包含: stm32f10x
- keil uVision5纯黑背景 keil字体颜色配置
- 芯达STM32 《如何使用SecureCRT串口终端
- STM32F103,4*4矩阵按键
- STM32F103C8T6核心板测试程序(RTC).ra
- FlashTool STM32F103ZET6通过USB串口烧写
- STM32FOC电机控制角度速度计算源代码
- STM32晶振选型-晶振不起振-晶振及负载
- stm32_实现Modbus,采用rtu,内含通信协
- STM32 ADCDMA实现
- STM32F103通过模拟IIC读取LIS3DH 解析数据
- 基于STM32的智能小型机械臂设计
- STM32f407 SDcard
- 基于STM32步进电机红外代码循迹小车主
- STM32F103RBT6+DM9000CEP+UIP Telnet功能实现工
- STM32F103VCT6+W5500 telnet功能实现
- 真正的标准C写的ECC加密算法
评论
共有 条评论