12864串行输入
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include "stm32f10x_lib.h"
//#include "stm32f10x_it.h"
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;
/* 函数申明-----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void WWDG_Configuration(void);
void Delay(u32 nTime);
void Delayms(vu32 m);
/* 变量定义----------------------------------------------*/
/*
******************************************************************************** ** 函数名称:main(void)
** 函数功能:主函数
** 输入:无
** 输出:无
** 返回:无
******************************************************************************** */
#define uchar unsigned char
#define uint unsigned int
void write_com(uchar com);
void write_data(uchar data);
void LCD_init(void);
uint com,num,i;
uchar data;
/* 变量定义----------------------------------------------*/
/*矩阵键盘PC口好用,PB口不好用,因为PB4复位后功能特定*/
//数据
uchar ss1[]={"0123456789"};
u8 ss2[]={"jizhundianya"};
/*
******************************************************************************** ** 函数名称:main(void)
** 函数功能:主函数
** 输入:无
** 输出:无
** 返回:无
******************************************************************************** */
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
LCD_init();
Delayms(100); //初始化LCD
write_com(0x80); //显示位置第一行
for(num=0;num<10;num++)
{
write_data(ss1[num]);
Delayms(1);
}
write_com(0x90);
for(num=0;num<12;num++)
{
write_data(ss2[num]);
Delayms(1);
} //显示位置第二行
}
void write_com(uchar com) //命令语句
{
uchar i;
uchar i_com;
i_com=0xf8;
//写命令
GPIO_SetBits(GPIOA, GPIO_Pin_5); // CS选通。pA.5作为片选位。
GPIO_ResetBits(GPIOA, GPIO_Pin_3); // SCLK低电平
,PA.3作为时钟信号。
for(i=0;i<8;i++)
{
if((i_com&0x80))
{
GPIO_SetBits(GPIOA, GPIO_Pin_4); //pa.4作为串行数据口。
}
else
{
GPIO_ResetBits(GPIOA, GPIO_Pin_4);
}
GPIO_ResetBits(GPIOA, GPIO_Pin_3); //拉低时钟口。
Delayms(1);
GPIO_SetBits(GPIOA, GPIO_Pin_3);//拉高时钟口。
Delayms(1);
i_com=i_com<<1; // 依次移位从高到低送到4号管脚即SID中
}
i_com=com;
i_com&=0xf0;
for(i=0;i<8;i++)
{
if(i_com&0x80)
{
GPIO_SetBits(GPIOA, GPIO_Pin_4);
}
else
{
GPIO_ResetBits(GPIOA, GPIO_Pin_4); // 按位
输入
}
GPIO_ResetBits(GPIOA, GPIO_Pin_3);
Delayms(1);
GPIO_SetBits(GPIOA, GPIO_Pin_3); //
Delayms(1);
i_com=i_com<<1; // 依次
移位从高到低送到4号管脚即SID中
}
i_com=com;
i_com<<=4;
for(i=0;i<8;i++)
{
if(i_com&0x80)
{
GPIO_SetBits(GPIOA, GPIO_Pin_4);
}