標(biāo)題:
STM32單片機(jī)+LCD1602測試程序 1602.c 1602.h文件
[打印本頁]
作者:
sdmsmdld
時(shí)間:
2022-5-13 21:46
標(biāo)題:
STM32單片機(jī)+LCD1602測試程序 1602.c 1602.h文件
STM32 +LCD1602 液晶屏程序
1602.h 文件
#ifndef __1602_H
#define __1602_H
#include "sys.h"
void init1602(void);
void write_com(unsigned char com);
void write_dat(unsigned char date);
//void write_2date(unsigned char a,unsigned char b);
#endif
復(fù)制代碼
1602.c 文件
#include <stm32f10x_lib.h>
#include "1602.h"
#include "sys.h"
#include "delay.h"
#define rd PCout(8)
#define wr PCout(7)
#define en PCout(6)
void init1602()
{
AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->MAPR|=0X04000000;
RCC->APB2ENR|=1<<2; //使能PORTA時(shí)鐘
RCC->APB2ENR|=1<<4; //使能PORTC時(shí)鐘
// RCC->APB2ENR|=1<<0; //開啟輔助時(shí)鐘
//pc6-pc9推挽輸出
GPIOC->CRH&=0XFFFFFF00;
GPIOC->CRL&=0X00FFFFFF;
GPIOC->CRH|=0X00000033;
GPIOC->CRL|=0X33000000;
GPIOC->ODR|=0X03C0;
//Pa推挽輸出
GPIOA->CRL&=0X00000000;
GPIOA->CRL|=0X33333333;
GPIOA->ODR|=0XFF;
// delay_ms(5);
// write_com(0x38);
// delay_ms(5);
// write_com(0x38);
delay_ms(5);
write_com(0x38);
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
}
/*******************寫指令函數(shù)************************/
void write_com(unsigned char com)
{
rd=0;
wr=0;
en=0;
delay_ms(2);
GPIOA->ODR=0X00FF&com;
delay_ms(5);
en=1;
delay_ms(5);
en=0;
delay_ms(5);
}
/*******************寫數(shù)據(jù)函數(shù)************************/
void write_dat(unsigned char date)
{
rd=1;
wr=0;
en=0;
delay_ms(2);
GPIOA->ODR=0X00FF&date;
delay_ms(5);
en=1;
delay_ms(5);
en=0;
}
復(fù)制代碼
/*******************************************************************************
*程序功能: 基于stm32驅(qū)動1602LCD顯示的簡單測試
*使用說明:使用ALIENTEK mini開發(fā)板和開發(fā)箱顯示模塊
*硬件連接:1602的連接請參照頭文件的注釋
*備 注:沒有經(jīng)過其他硬件測試,但借助開發(fā)箱LCD的顯示無異常
*作 者:CCZ
*******************************************************************************/
#include <stm32f10x_lib.h>
#include "sys.h"
#include "delay.h"
#include "1602.h"
u8 table1[]="ARM-Stm32 CCZ" ;
u8 table2[]="HELLO Tomorrow" ;
int main(void)
{
u8 cc;
Stm32_Clock_Init(9); //系統(tǒng)時(shí)鐘設(shè)置
delay_init(72); //延時(shí)初始化
init1602();
write_com(0x80); //第一行的首地址
for(cc=0;cc<13;cc++)
{
write_dat(table1[cc]);
delay_ms(3);
}
write_com(0x80+0x40); //第二行的首地址
for(cc=0;cc<15;cc++)
{
write_dat(table2[cc]);
delay_ms(3);
}
while(1);
}
復(fù)制代碼
Keil代碼下載:
stm32 1602測試程序.7z
(1.05 MB, 下載次數(shù): 48)
2022-5-14 01:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1