标题:
STM32单片机+LCD1602测试程序 1602.c 1602.h文件
[打印本页]
作者:
sdmsmdld
时间:
2022-5-13 21:46
标题:
STM32单片机+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
复制代码
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时钟
RCC->APB2ENR|=1<<4; //使能PORTC时钟
// RCC->APB2ENR|=1<<0; //开启辅助时钟
//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);
}
/*******************写指令函数************************/
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);
}
/*******************写数据函数************************/
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;
}
复制代码
/*******************************************************************************
*程序功能: 基于stm32驱动1602LCD显示的简单测试
*使用说明:使用ALIENTEK mini开发板和开发箱显示模块
*硬件连接:1602的连接请参照头文件的注释
*备 注:没有经过其他硬件测试,但借助开发箱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); //系统时钟设置
delay_init(72); //延时初始化
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);
}
复制代码
Keil代码下载:
stm32 1602测试程序.7z
(1.05 MB, 下载次数: 48)
2022-5-14 01:26 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1