資源簡介
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部分題目答案一些基礎題目
評論
共有 條評論