12864串行输入

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

}

相关文档
最新文档