新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > stm32單片機12864驅動

        stm32單片機12864驅動

        作者: 時間:2016-11-29 來源:網絡 收藏
        /****************************************************************
        【文 件 名 稱】lcd12864.h【功 能 描 述】lcd12864 頭文件【 作 者 】shifu*****************************************************************/#ifndef __LCD12864_H#define __LCD12864_H//****************************************************************#include "stm32f10x_gpio.h"#include "systick_delay.h"http://*****************************************************************//管腳定義#define GPIO_LCD GPIOE#define RCC_APB2Periph_GPIO_LCD RCC_APB2Periph_GPIOE//片選#define LCD_CS_1 GPIO_LCD->BSRR = GPIO_Pin_8#define LCD_CS_0 GPIO_LCD->BRR = GPIO_Pin_8//數據#define LCD_SID_1 GPIO_LCD->BSRR = GPIO_Pin_9#define LCD_SID_0 GPIO_LCD->BRR = GPIO_Pin_9//同步時鐘#define LCD_CLK_1 GPIO_LCD->BSRR = GPIO_Pin_10#define LCD_CLK_0 GPIO_LCD->BRR = GPIO_Pin_10//復位 低電平復位#define LCD_RET_1 GPIO_LCD->BSRR = GPIO_Pin_11#define LCD_RET_0 GPIO_LCD->BRR = GPIO_Pin_11#define LCD_Write_Con_Cmd (uc32)0xf8000000 // 1111 1000 0000 0000 0000 0000 0000 0000#define LCD_Write_Dis_Data (uc32)0xfa000000 // 1111 1010 0000 0000 0000 0000 0000 0000//********************函數聲明************************************void LCD_Port_Config(void);void LCD_Init(void);void LCD_Write(u32 inst, u8 ddata);void LCD_Dis_Str(u8 row, u8 col, u8 *str);void LCD_Dis_Digital(u8 row, u8 col,u32 Dig_Data);void LCD_Clear(void);void LCD_Reset(void);void LCD_Dis_Frame(void);void LCD_Clear_GDRAM(void);void LCD_Clear_Graphics(u8 row, u8 col, u8 row_Pixel, u8 col_Pixel);void LCD_Dis_Graphics(u8 row, u8 col, u8 row_Pixel, u8 col_Pixel, u8 *Dis_Data);/*****************************************************************液晶模塊指令集定義*****************************************************************0x01 //清顯示指令0x06 //設置輸入模式0x0c //設置開顯控制0x30 //功能設定(基本指令)0x34 //功能設定(擴充指令)0x36 //打開繪圖(擴充指令)*****************************************************************/#endif/****************************************************************************【文 件 名 稱】lcd12864.c【功 能 描 述】lcd12864 驅動【 作 者 】shifu****************************************************************************//**************************************************************************/#include "lcd12864.h"#include "stm32f10x_lib.h"/****************************************************************************【功能說明】I/O端口功能、方向設定****************************************************************************/void LCD_Port_Config(void){GPIO_InitTypeDef GPIO_InitStructure;/* 使能端口時鐘*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_LCD, ENABLE);/* 配置所用管腳為推免輸出,端口速度為50MHz*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIO_LCD, &GPIO_InitStructure);}/****************************************************************************【功能說明】 LCD寫字節函數入口參數 inst=cmd/data: 命令/數據標志(data:寫顯示數據 cmd:寫控制指令)x : 命令/數據字節****************************************************************************/void LCD_Write(u32 inst, u8 ddata){u32 temp = inst;u32 i,t;temp |= ((u32)(ddata & (u8)0xf0) << 16) + ((u32)(ddata & (u8)0x0f) << 12);LCD_CS_1; //選中12864//拉低CLK引腳,準備產生上升沿LCD_CLK_0;//串行傳送24個二進制位for(i=0;i<24;i++){if(temp & 0x80000000) LCD_SID_1;else LCD_SID_0;//拉高CLK引腳,產生一個上升沿,最高位被傳送到LCD模塊中LCD_CLK_1;t = 0x10; while(t--); //延時 lcd讀取數據//拉低CLK引腳,準備產生上升沿LCD_CLK_0;//左移一位,準備下一個待傳送的位temp = temp<<1;}LCD_CS_0; //取消選中12864}/****************************************************************************【功能說明】LCD字符串顯示函數:void LCD_Dis_Str(u8 x, u8 y, u8 *str);入口參數 row: 字符串起始顯示位置的行col: 字符串起始顯示位置的列str: 指向待顯示字符串的字符指針,字符串以
        
        
        主站蜘蛛池模板:
        洪江市|
        蓝田县|
        津市市|
        靖远县|
        清苑县|
        施甸县|
        平潭县|
        玛多县|
        普格县|
        图木舒克市|
        肇庆市|
        贡嘎县|
        太白县|
        志丹县|
        南木林县|
        左云县|
        迁西县|
        巴里|
        浦城县|
        佛坪县|
        南漳县|
        宜兴市|
        呼玛县|
        东丽区|
        冕宁县|
        商都县|
        六枝特区|
        桂阳县|
        昔阳县|
        潢川县|
        玉屏|
        慈溪市|
        北流市|
        北川|
        龙游县|
        阳信县|
        广水市|
        遂川县|
        桂东县|
        瑞昌市|
        寻乌县|