数字文本显示器设计与制作Word下载.docx
《数字文本显示器设计与制作Word下载.docx》由会员分享,可在线阅读,更多相关《数字文本显示器设计与制作Word下载.docx(45页珍藏版)》请在冰豆网上搜索。
2.1.方案设计
使用Keiluvision4软件对STM32OPEN407Z-C测试版编程。
3.设计
3.1.硬件设计
3.1.1原理图
3.1.2LCD液晶屏端口
3.1.3用户按键
3.1.4摇杆键
3.2.软件设计
3.2.1.主要函数说明
(1)函数1
A.函数原型
intmain(void)
{
GPIO_Configuration();
LCD_Initializtion();
LCD_Clear(Blue);
GUI_Chinese(80,40,"
苏州大学应用技术学院"
White,Blue);
GUI_Text(100,60,"
10"
GUI_Chinese(120,60,"
信息"
GUI_Chinese(160,60,"
第一组"
GUI_Chinese(100,80,"
朱勇"
GUI_Chinese(160,80,"
杨志明"
GUI_Chinese(100,100,"
许多"
GUI_Chinese(160,100,"
苏仁阳"
GUI_Chinese(80,160,"
请选择输入位数"
sprintf(s1,"
%d"
n);
GUI_Text(240,160,(uint8_t*)s1,White,Blue);
B.函数实现
实现欢迎界面的显示,结构体的初始化。
(2)函数2
#include"
stm32f10x.h"
LCD/LCD.h"
#include<
stdio.h>
#ifdef__GNUC__
/*WithGCC/RAISONANCE,smallprintf(optionLDLinker->
Libraries->
Smallprintf
setto'
Yes'
)calls__io_putchar()*/
#definePUTCHAR_PROTOTYPEint__io_putchar(intch)
#else
#definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)
#endif/*__GNUC__*/
intn=1;
inta;
intb;
intc;
intd;
inte;
intsum;
intflag=1;
chars1[30];
chars2[30];
/*Privatefunctionprototypes-----------------------------------------------*/
voidGPIO_Configuration(void);
voidUSART_Configuration(void);
voidtran(void);
voidsums(void);
voidap(void);
voidbp(void);
voidcp(void);
voiddp(void);
voidep(void);
voidah(void);
voidbh(void);
voidch(void);
voiddh(void);
voideh(void);
/*******************************************************************************
*FunctionName:
Delay
*Description:
DelayTime
*Input:
-nCount:
*Output:
None
*Return:
*Attention:
*******************************************************************************/
voidDelay(uint32_tnCount)
for(;
nCount!
=0;
nCount--);
}
voidFLAG()
if(!
(GPIOC->
IDR&
0x0004))
{
flag=flag-1;
if(flag<
1)
flag=1;
Delay(0xfffff);
}
(GPIOA->
0x0001))
{
flag=flag+1;
if(flag>
n)
flag=n;
sprintf(s2,"
flag);
GUI_Text(100,60,(uint8_t*)s2,White,Blue);
voidap()
if((!
IDR&
0X0002))&
&
(flag==1))
a=a+1;
if(a>
9)
a=9;
Delay(0xfffff);
0X0008))&
a=a-1;
if(a<
0)
a=0;
voidbp()
(flag==2))
b=b+1;
if(b>
b=9;
b=b-1;
if(b<
b=0;
voidcp()
(flag==3))
c=c+1;
if(c>
c=9;
c=c-1;
if(c<
c=0;
voiddp()
(flag==4))
d=d+1;
if(d>
d=9;
d=d-1;
if(d<
d=0;
voidep()
(flag==5))
e=e+1;
if(e>
e=9;
e=e-1;
if(e<
e=0;
voidah()
sprintf(s1,"
a);
switch(a)
{
case1:
GUI_Chinese(60,120,"
一"
break;
case2:
二"
case3:
三"
case4:
四"
case5:
五"
case6:
六"
case7:
七"
case8:
八"
case9:
九"
case0:
零"
}
voidbh()
b);
switch(b)
GUI_Chinese(100,120,"
Whi