• 大小: 881KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: STM32  

资源简介

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个文件信息

评论

共有 条评论