久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2376|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stm32_19264液晶LCD驅(qū)動(dòng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:629252 發(fā)表于 2019-10-24 09:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#ifndef__LCD_H
#define __LCD_H  
#include "sys.h"
#define LCD_RS  PFout(0)// PF.0
#define LCD_E   PFout(1)// PF.1
#define LCD_CS1 PFout(2)// PF.2
#define LCD_RST PFout(3)// PF.3
#define LCD_CS2 PFout(4)// PF.4
#define LCD_CS3 PFout(5)// PF.5
#define LCD_DATA(x)  GPIOE->ODR=(GPIOB->ODR&0x807F)|((x &0x00FF)<<7) //PE7~14,
作為數(shù)據(jù)線
#define LCD_PAGE_ADDR 0xb8
#define LCD_COL_ADDR  0x40   
void LCDPortSet(void); //LCD IO口配置
void LcdInit(void);   //初始化程序
void LcdClear(void); //清屏程序
void WriteChr16x16(u8 pag,u8 col, u8  *chr); //寫一個(gè)漢字   
#endif

/******************************************************lcd.c************************************************/
#include <stm32f10x_lib.h>   
#include "lcd.h"
#include "delay.h"
//LCD IO口配置
void LCDPortSet(void)
{

RCC->APB2ENR|=1<<6;      //使能PORTE時(shí)鐘
RCC->APB2ENR|=1<<7;      //使能PORTF時(shí)鐘
GPIOE->CRH&=0XF0000000;//PE8-14數(shù)據(jù)口
GPIOE->CRH|=0X03333333;
GPIOE->CRL&=0X0FFFFFFF;//PE7數(shù)據(jù)口
GPIOE->CRL|=0X30000000;  
GPIOE->ODR|=0X7F80;      //上拉
GPIOF->CRL&=0XF0000000;
GPIOF->CRL|=0X03333333;  //PF.0 1 2 3 4 5 6推挽輸出
GPIOF->ODR|=1<<0;      //PF.0 輸出高
GPIOF->ODR|=1<<1;      //PF.1 輸出高
GPIOF->ODR|=1<<2;      //PF.2 輸出高
GPIOF->ODR|=1<<3;      //PF.3 輸出高
GPIOF->ODR|=1<<4;      //PF.4 輸出高
GPIOF->ODR|=1<<5;      //PF.5 輸出高
GPIOF->ODR|=1<<6;      //PF.6 輸出高
}

void SelectChip1(void) //選擇第1屏
{
LCD_CS1=0;
LCD_CS2=1;
LCD_CS3=1;
}

void SelectChip2(void) //選擇第2屏
{
LCD_CS1=1;
LCD_CS2=0;
LCD_CS3=1;
}
void SelectChip3(void) //選擇第3屏
{
LCD_CS1=1;
LCD_CS2=1;
LCD_CS3=0;
}
void WriteCommand(u8 cmd)   //寫命令
{     
LCD_RS=0;   //寫命令
//RW=0;
LCD_DATA(cmd);
LCD_E=1;
delay_us(10);
LCD_E=0;
}
void WriteData(u8  dat)  //寫數(shù)據(jù)
{  
        LCD_RS=1;//寫數(shù)據(jù)
//RW=0;
LCD_DATA(dat);//數(shù)據(jù)輸出到數(shù)據(jù)口
   LCD_E=1; //寫入到LCD
   delay_us(10);
   LCD_E=0;
}

void LcdClear(void) //清屏
{
u16  j = 0;
u16  k = 0;
LCD_CS1 = 0;
LCD_CS2 = 0;
LCD_CS3 = 0;
WriteCommand(LCD_PAGE_ADDR + 0);
WriteCommand(LCD_COL_ADDR  + 0);
for(k=0;k<8;k++)
{
WriteCommand(LCD_PAGE_ADDR+k);
for(j=0;j<64;j++)  
{
WriteData(0x00);
}
}
LCD_CS1 = 1;
LCD_CS2 = 1;
LCD_CS3 = 1;
}

void LcdInit(void) //初始化程序
{
LCD_RST = 0;
delay_us(20);
LCD_RST = 1;
delay_us(5);
LCD_CS1=0;
LCD_CS2=0;
LCD_CS3=0;
WriteCommand(0x3f);  //設(shè)置開顯示命令
WriteCommand(0xc0);//設(shè)置起始位置
LCD_CS1 = 1;
LCD_CS2 = 1;
LCD_CS3 = 1;
LcdClear();   //清屏
}
void WriteChr16x16(u8 pag,u8 col,u8 *chr) //寫一個(gè)漢字
{
u8 i = 0;
u8 j = 0;
u8 col_t = 0;
WriteCommand(0xc0);
col_t = col;
for(i=0;i<2;i++)
{
  for(j=0;j<16;j++)
  {
switch(col_t&0xc0)
{
case 0:
SelectChip1();
WriteCommand(LCD_PAGE_ADDR + pag + i);
WriteCommand(LCD_COL_ADDR  + col_t - 0 );
WriteData(chr[16*i + j]);
col_t++;
break;
case 0x40:
SelectChip2();
WriteCommand(LCD_PAGE_ADDR + pag + i);
WriteCommand(LCD_COL_ADDR  + col_t - 64);
WriteData(chr[16*i + j]);
col_t++;
break;
case 0x80:
SelectChip3();
WriteCommand(LCD_PAGE_ADDR + pag + i);
WriteCommand(LCD_COL_ADDR  + col_t - 128);
WriteData(chr[16*i + j]);
col_t++;
break;
default:  break;
}
   
}
col_t=col_t-16;
}
}
/***************************************************main.c******************************************************/
/**
@說明:JBG19264 LCD測試程序
*/
#include <stm32f10x_lib.h>
#include "sys.h"
#include "delay.h"
#include "lcd.h"
u8 table[][32]={
/*--  文字:  我 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,
/*--  文字:  們 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x00,0x80,0x60,0xF8,0x07,0x00,0xF8,0x01,0x06,0x00,0x04,0x04,0x04,0xFC,0x00,0x00,
0x01,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,
/*--  文字:  都 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0xFE,0x02,0x22,0xDA,0x06,0x00,
0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0xFF,0x08,0x10,0x08,0x07,0x00,
/*--  文字:  是 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,
0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81,0x81,0x00,
/*--  文字:  好 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00,
0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
/*--  文字:  孩 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x02,0x02,0x02,0xF2,0x8A,0x46,0x08,0x88,0xC8,0xA8,0x99,0x8E,0x88,0x48,0x28,0x00,
0x02,0x42,0x81,0x7F,0x00,0x00,0x88,0x88,0x44,0x44,0x22,0x11,0x28,0x44,0x82,0x00,
/*--  文字:  子 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--  文字:  我 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,
/*--  文字:  們 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x00,0x80,0x60,0xF8,0x07,0x00,0xF8,0x01,0x06,0x00,0x04,0x04,0x04,0xFC,0x00,0x00,
0x01,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,
/*--  文字:  都 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0xFE,0x02,0x22,0xDA,0x06,0x00,
0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0xFF,0x08,0x10,0x08,0x07,0x00,
/*--  文字:  是 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,
0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81,0x81,0x00,
/*--  文字:  好 --*/
/*--  宋體12;  此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00,
0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00
};
int main(void)
{  
u8 i = 0;
Stm32_Clock_Init(9); //系統(tǒng)時(shí)鐘設(shè)置8MHz * 9 = 72MHz
delay_init(72);    //延時(shí)初始化
LCDPortSet();    //LCD口設(shè)置
LcdInit(); //LCM初始化程序
delay_ms(100);
while(1)
{
LCD_DATA(0x55);
delay_us(10);
LCD_DATA(0xf0);
while(1)
{         
delay_ms(1000);
for(i=0;i<12;i++)
WriteChr16x16(0,i*16,table[ i]);
for(i=0;i<12;i++)
WriteChr16x16(2,i*16,table[ i]);
for(i=0;i<12;i++)
WriteChr16x16(4,i*16,table[ i]);
for(i=0;i<12;i++)
WriteChr16x16(6,i*16,table[ i]);
delay_ms(500);
}   
}  

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-10-25 03:48 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲专区在线 | 成人国产精品久久久 | 久久久久久91 | 91在线看网站 | 欧美中文字幕一区二区三区亚洲 | 欧美特级黄色 | 精品无码久久久久久国产 | 一级片在线观看 | 最新国产视频 | 国产精品久久在线 | 一区二区三区日韩 | 999久久精品 | 国产视频h| 亚洲视频一区 | 99久久免费精品视频 | 精品1区2区 | 玖玖国产| 久久精品成人一区 | 一二三四在线视频观看社区 | 国产精品黄色 | 欧美精品影院 | 国产精品国产三级国产aⅴ浪潮 | av三级在线观看 | 久久国产一区二区三区 | 密室大逃脱第六季大神版在线观看 | 99精品欧美一区二区三区 | 国产伦精品一区二区三区高清 | 国产在线视频一区二区 | 成年免费大片黄在线观看岛国 | 婷婷久久精品一区二区 | 日韩电影免费在线观看中文字幕 | www.日日干 | 动漫www.被爆羞羞av44 | 亚洲第一成人av | 黄色大片免费网站 | 成人国产在线观看 | 在线视频一区二区 | 波多野结衣一二三区 | 久久久久久91香蕉国产 | 久久久综合网 | 欧美激情区 |