标题:
stm32c8t6 lcd1602的设计源码
[打印本页]
作者:
jebel
时间:
2018-4-19 19:54
标题:
stm32c8t6 lcd1602的设计源码
如附件所示
单片机源程序如下:
#include "Lcd_1602.h"
unchar count,s1num;
char miao,shi,fen;
unchar table[] = " ZNSYS ";
unchar table1[] = " 00 00.00";
void LCD_GPIO_init(void){
GPIO_InitTypeDef GPIO_InitStructure;
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
DBGMCU_CR&=0xFFFFFFDF;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_All);
}
void LCD_GPIO_WriteData(unchar data)
{
part_h_o=((data&0x80)>>7);
part_g_o=((data&0x40)>>6);
part_f_o=((data&0x20)>>5);
part_e_o=((data&0x10)>>4);
part_d_o=((data&0x08)>>3);
part_c_o=((data&0x04)>>2);
part_b_o=((data&0x02)>>1);
part_a_o=((data&0x01));
}
unchar LCD_GPIO_RedData(void)
{
unchar data=0x00;
data=0x80&(data+0x7f+part_a_i);
data=0xc0&(data+0x3f+part_b_i);
data=0xe0&(data+0x1f+part_c_i);
data=0xf0&(data+0x0f+part_d_i);
data=0xf8&(data+0x07+part_e_i);
data=0xfc&(data+0x03+part_f_i);
data=0xfe&(data+0x01+part_g_i);
data=0xff&(data+0x00+part_h_i);
return data;
}
void LCD_Write_com(unchar com)
{
lcd_rs=0;
lcd_en=0;
LCD_GPIO_WriteData(com);
delay_us(50);
lcd_en=1;
delay_us(50);
lcd_en=0;
}
void LCD_Write_date(unchar date)
{
lcd_rs=1;
lcd_en=0;
LCD_GPIO_WriteData(date);
delay_us(50);
lcd_en=1;
delay_us(50);
lcd_en=0;
}
void LCD_Init(void)
{
unchar num;
lcd_en=0;
fen=59;
miao=53;
shi=23;
lcd_rw=0;
LCD_Write_com(0x38);//16*2显示,5*7点阵,8位数据接口
LCD_Write_com(0x0c);//开显示,不显示光标
LCD_Write_com(0x06);//写个字符地址加一
LCD_Write_com(0x01);//显示清0,数据指针清零
LCD_Write_com(0x80);
for(num=0;num<15;num++)
{
LCD_Write_date(table[num]);
delay_us(50);
}
LCD_Write_com(0x80+0x40);
for(num=0;num<12;num++)
{
LCD_Write_date(table1[num]);
delay_us(50);
}
}
void Write_num(unchar add,unchar date){//add 4 7 10
unchar shi,ge;
shi=date/10;
ge=date%10;
LCD_Write_com(0x80+0x40+add);
LCD_Write_date(0x30+shi);
LCD_Write_date(0x30+ge);
}
/*void write_sfm(unchar add,unchar date)
{
unchar shi,ge;
shi=date/10;
ge=date%10;
LCD_Write_com(0x80+0x40+add);
LCD_Write_date(0x30+shi);
LCD_Write_date(0x30+ge);
}
void keyscan()
{
if(s1==0)
{
delay(5);
if(s1==0)
{ s1num++;
while(!s1);
if(s1num==1)
{
TR0=0;
LCD_Write_com(0x80+0x40+10);
LCD_Write_com(0x0f);
}
}
if(s1num==2)
{
write_com(0x80+0x40+7);
}
if(s1num==3)
{
write_com(0x80+0x40+4);
}
if(s1num==4)
{
s1num=0;
write_com(0x0c);
}
}
if(s1num!=0)
{
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!s2);
if(s1num==1)
{
miao++;
if(miao==60)
miao=0;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen++;
if(fen==60)
fen=0;
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
}
}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!s3);
if(s1num==1)
{
if(miao==0)
{
miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10);
miao--;
if(miao==-1)
miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen--;
if(fen==-1)
fen=59;
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi--;
if(shi==-1)
shi=23;
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
}
}
}
}
void main()
{
LCD_init();
while(1)
{
keyscan();
}
// while(1);
}
/////////////////////////////////////////////////////////////////////////////////////此处属于中断
void timer0() interrupt 1
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
LCD1602.zip
(2.16 KB, 下载次数: 106)
2018-4-19 19:53 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
洛阳一笑
时间:
2019-5-4 09:42
老哥好使嘛
作者:
dianzi741
时间:
2019-11-29 19:18
这个可以用吗
作者:
啦啦来咯啦
时间:
2021-5-10 18:58
有接线图吗
作者:
cGrease
时间:
2021-5-12 20:13
就两文件
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1