久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32f103驅動lcd程序
[打印本頁]
作者:
南風溪
時間:
2017-4-11 18:03
標題:
stm32f103驅動lcd程序
#include "stm32f10x.h"
#include"12864.h"
#include"delay.h"
/************************************************************************************************
//FILE:液晶12864驅動程序
//DATE:2012/07/11
************************************************************************************************/
/************************************************************************************************
@f_name: void LCD12864_InitPort(void)
@brief: 初始化硬件端口配置
@param: None
@return: None
************************************************************************************************/
void LCD12864_InitPort(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定義結構體
RCC_APB2PeriphClockCmd(GPIOCLK|RCC_APB2Periph_AFIO, ENABLE); //使能功能復用IO時鐘,不開啟復用時鐘不能顯示
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); //把調試設置普通IO口
GPIO_InitStructure.GPIO_Pin = LCD_GPIO_DAT; //數據口配置成開漏輸出模式,此模式下讀輸入寄存器的值得到IO口狀態
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //開漏輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD12864_GPIO , &GPIO_InitStructure); //IO口初始化函數(使能上述配置)
GPIO_InitStructure.GPIO_Pin = LCD_GPIO_CMD;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD12864_GPIO , &GPIO_InitStructure);
GPIO_Init(LCD12864_GPIO , &GPIO_InitStructure); //初始化IO口配置
GPIO_Write(LCD12864_GPIO ,0xffff);
}
/************************************************************************************************
@f_name: void NOP(void)
@brief: 延時函數
@param: None
@return: None
************************************************************************************************/
void NOP(void)
{ u8 i; for(i=0; i<100; i++); }
/************************************************************************************************
@f_name: u8 LCD12864_busy(void)
@brief: 檢測忙狀態
@param: None
@return: None
************************************************************************************************/
u8 LCD12864_busy(void)
{
u8 x;
LCD_RS(0);
LCD_RW(1);
LCD_EN(1);
NOP();
NOP();
x=Text_Busy;
LCD_EN(0);
return x;
}
/************************************************************************************************
@f_name: void LCD12684_Wcmd(u8 dat)
@brief: 寫指令
@param: u8 dat 輸入指令
@return: None
************************************************************************************************/
void LCD12684_Wcmd(u8 dat)
{
while(LCD12864_busy()); //忙檢測
LCD_RS(0);
LCD_RW(0);
LCD_EN(0);
NOP();
NOP();
LCD_WriteData(dat);
NOP();
NOP();
LCD_EN(1);
NOP();
NOP();
LCD_EN(0);
}
/************************************************************************************************
@f_name: void LCD12684_Wcmd(u8 dat)
@brief: 寫數據
@param: u8 dat 輸入數據
@return: None
************************************************************************************************/
void LCD12684_Wdat(u8 dat)
{
while(LCD12864_busy()); //忙檢測
LCD_RS(1);
LCD_RW(0);
LCD_EN(0);
NOP();
NOP();
LCD_WriteData(dat);
NOP();
NOP();
LCD_EN(1);
NOP();
NOP();
LCD_EN(0);
}
/************************************************************************************************
@f_name: void LCD12864_Init(void)
@brief: 液晶初始化
@param: None
@return: None
************************************************************************************************/
void LCD12864_Init(void)
{
LCD_PSB(1); //并口方式
LCD_RST(0); //液晶復位 低電平有效
delay_ms(3);
LCD_RST(1); //置高電平等待復位
delay_ms(3);
LCD12684_Wcmd(0x34); //擴充指令操作
delay_ms(5);
LCD12684_Wcmd(0x30); //基本指令操作
delay_ms(5);
LCD12684_Wcmd(0x0c); //顯示開,關光標
delay_ms(5);
LCD12684_Wcmd(0x01); //清除LCD的顯示內容
delay_ms(5);
}
/************************************************************************************************
@f_name: void LCD12864_Clr(void)
@brief: 清屏
@param: None
@return: None
************************************************************************************************/
void LCD12864_Clr(void)
{
LCD12684_Wcmd(0x34); //擴充指令操作 “繪圖”
delay_ms(5);
LCD12684_Wcmd(0x30); //基本指令操作
delay_ms(5);
LCD12684_Wcmd(0x01); //清屏
delay_ms(5);
}
/************************************************************************************************
@f_name: void LCD12864_Pos(u8 x,u8 y)
@brief: 設置顯示位置
@param: u8 x:X軸 u8 y:Y軸
@return: None
************************************************************************************************/
void LCD12864_Pos(u8 x,u8 y)
{
u8 pos;
if (x==1) {x=0x80;}
else if (x==2) {x=0x90;}
else if (x==3) {x=0x88;}
else if (x==4) {x=0x98;}
else x=0x80;
pos = x+y ;
LCD12684_Wcmd(pos); //顯示地址
}
/************************************************************************************************
@f_name: void LCD12864_PhotoDis(u8 *bmp)
@brief: 顯示圖形
@param: u8 *bmp 圖形數組
@return: None
************************************************************************************************/
void LCD12864_PhotoDis(u8 *bmp)
{
u8 i,j;
LCD12684_Wcmd(0x34); //關閉圖形顯示
for(i=0;i<32;i++)
{
LCD12684_Wcmd(0x80+i); //先寫入水平坐標值
LCD12684_Wcmd(0x80); //寫入垂直坐標值
for(j=0;j<16;j++) //再寫入兩個8位元的數據
LCD12684_Wdat(*bmp++);
delay_ms(1);
}
for(i=0;i<32;i++)
{
LCD12684_Wcmd(0x80+i);
LCD12684_Wcmd(0x88);
for(j=0;j<16;j++)
LCD12684_Wdat(*bmp++);
delay_ms(1);
}
LCD12684_Wcmd(0x36); //寫完數據,開圖形顯示
}
/************************************************************************************************
@f_name: void LCD_ShowString(u8 x,u8 y,const u8 *p)
@brief: 顯示字符串
@param: u8 *bmp 圖形數組
@return: None
************************************************************************************************/
void LCD_ShowString(u8 x,u8 y,const u8 *p)
{
u8 temp;
if(x>4) {x=1;}
if(y>4) {y=0;}
LCD12864_Pos(x,y);
temp=*p;
while(temp!='\0')
{
LCD12684_Wdat(temp);
temp=*(++p);
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天天综合网天天综合色
|
www.xxxx欧美
|
日本一卡精品视频免费
|
国产精品久久精品
|
欧美日韩国产一区二区三区
|
久草欧美视频
|
天堂一区
|
欧美 日韩 国产 成人 在线 91
|
日韩欧美国产一区二区三区
|
久久精品国产久精国产
|
免费黄色av
|
亚洲一区二区国产
|
国产精品久久久久无码av
|
澳门永久av免费网站
|
欧美一区不卡
|
国产二区视频
|
国内精品久久影院
|
国产91亚洲精品
|
日韩精品无码一区二区三区
|
亚洲精品日日夜夜
|
国产精品99久久久久
|
国产精品第2页
|
国产视频福利一区
|
午夜精品一区二区三区在线视频
|
日韩视频一区在线观看
|
国产精品高潮呻吟久久av黑人
|
中文字幕一级毛片视频
|
色频
|
亚洲欧美日韩中文字幕一区二区三区
|
日韩中文一区二区三区
|
一区二区三区精品视频
|
国产亚洲欧美在线
|
中文字幕乱码亚洲精品一区
|
99国产欧美
|
91高清免费
|
成人av播放
|
久久999
|
欧美视频在线免费
|
在线观看www高清视频
|
日本一二三区高清
|
蜜桃特黄a∨片免费观看
|