《电子技术综合设计实验报告:数字文本显示器的设计与制作研究》由会员分享,可在线阅读,更多相关《电子技术综合设计实验报告:数字文本显示器的设计与制作研究(63页珍藏版)》请在金锄头文库上搜索。
1、苏州大学 应用技术学院电子技术综合设计实验报告实验名称数字文本朗读器班级/小组10信息01组报告人姓名/学号XXX 1016407018完成日期2013-10-28电子技术综合设计实验报告实验名称:数字文本显示器的设计与制作研究苏州大学 应用技术学院10信息班级01小组姓名: 学号:1016407029姓名: 学号:1016407011姓名: 学号:1016407020姓名: 学号:10164070182013年10月目 录1. 任务41.1. 描述41.1.1. 组成41.1.2. 功能41.2. 要求41.2.1. 基本要求41.2.2. 扩展要求41.2.3. 分工42. 方案42.1.
2、 方案设计43. 设计43.1. 硬件设计43.1.1 原理图53.1.2 LCD液晶屏端口63.2. 软件设计73.2.1. 软件结构73.2.2. 主要函数说明74. 测试74.1. 测试内容174.1.1. 测试结果74.1.2. 测试评价85. 总结85.1. 任务完成情况85.2. 不足之处85.3. 报告总结9附录左齐标题110附录1:原理图10附录2:源程序111. 任务1.1. 描述1.1.1. 组成数字文本显示器硬件设计是以STM32 OPEN407Z-C测试版以及LCD液晶显示屏组成。Open103ZARM模块主要是由USB电源接口, JTAG接口,复位按钮模块,串行口等组
3、成。1.1.2. 功能在数字文本显示器系统中,用户启动后,用液晶屏上显示欢迎界面,按用户键进入主界面,然后可以通过摇杆键,输入的任意一一组数字,在屏幕上会显示该数字,并且可以显示该数字的个,十,百,千等位。最后按复位按钮可以使系统回到初始状态。1.2. 要求1.2.1. 基本要求 随机输入一组数字,LCD显示该数字,并且该数字的各个位。 当密码输入其他字符时无法读出该数字。 完成实验报告,其中包括:硬件设计,软件设计,调试过程,完成的主要内容,实物照片,任务分工说明。1.2.2. 扩展要求当输入任意数字时,该系统能够能读出该数字。1.2.3. 分工总体设计许多 1016407011硬件设计杨志
4、明 1016407029软件设计朱勇 1016407020报 告苏仁阳 10164070182. 方案2.1. 方案设计使用Keil uvision4 软件对STM32 OPEN407Z-C测试版编程。3. 设计3.1. 硬件设计 原理图 LCD液晶屏端口 用户按键 摇杆键3.2. 软件设计3.2.1. 主要函数说明(1) 函数1A. 函数原型int main(void)GPIO_Configuration(); LCD_Initializtion();LCD_Clear(Blue);GUI_Chinese(80,40,苏州大学应用技术学院,White,Blue);GUI_Text(100,6
5、0,10,White,Blue);GUI_Chinese(120,60,信息,White,Blue);GUI_Chinese(160,60,第一组,White,Blue);GUI_Chinese(100,80,朱勇,White,Blue);GUI_Chinese(160,80,杨志明,White,Blue);GUI_Chinese(100,100,许多,White,Blue);GUI_Chinese(160,100,苏仁阳,White,Blue);GUI_Chinese(80,160,请选择输入位数,White,Blue);sprintf(s1,%d,n);GUI_Text(240,160,(
6、uint8_t*)s1,White,Blue);B. 函数实现实现欢迎界面的显示,结构体的初始化。(2) 函数2A. 函数原型#include stm32f10x.h#include LCD/LCD.h#include #ifdef _GNUC_ /* With GCC/RAISONANCE, small printf (option LD Linker-Libraries-Small printf set to Yes) calls _io_putchar() */ #define PUTCHAR_PROTOTYPE int _io_putchar(int ch)#else #define
7、PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endif /* _GNUC_ */int n=1;int a;int b;int c;int d;int e;int sum;int flag=1;char s130;char s230;/* Private function prototypes -*/void GPIO_Configuration(void);void USART_Configuration(void);void tran(void);void sums(void);void ap(void);void bp(void);void
8、cp(void);void dp(void);void ep(void);void ah(void);void bh(void);void ch(void);void dh(void);void eh(void);/* Function Name : Delay* Description : Delay Time* Input : - nCount: Delay Time* Output : None* Return : None* Attention : None*/void Delay (uint32_t nCount) for(; nCount != 0; nCount-);void F
9、LAG()if(!(GPIOC-IDR & 0x0004) flag=flag-1; if(flagIDR & 0x0001) flag=flag+1; if(flagn) flag=n; Delay(0xfffff);sprintf(s2,%d,flag);GUI_Text(100,60,(uint8_t*)s2,White,Blue);void ap()if(!(GPIOC-IDR&0X0002)&(flag=1)a=a+1;if(a9)a=9;Delay(0xfffff);if(!(GPIOC-IDR&0X0008)&(flag=1)a=a-1;if(aIDR&0X0002)&(flag
10、=2)b=b+1;if(b9)b=9;Delay(0xfffff);if(!(GPIOC-IDR&0X0008)&(flag=2)b=b-1;if(bIDR&0X0002)&(flag=3)c=c+1;if(c9)c=9;Delay(0xfffff);if(!(GPIOC-IDR&0X0008)&(flag=3)c=c-1;if(cIDR&0X0002)&(flag=4)d=d+1;if(d9)d=9;Delay(0xfffff);if(!(GPIOC-IDR&0X0008)&(flag=4)d=d-1;if(dIDR&0X0002)&(flag=5)e=e+1;if(e9)e=9;Delay
11、(0xfffff);if(!(GPIOC-IDR&0X0008)&(flag=5)e=e-1;if(e0)e=0;Delay(0xfffff);void ah()sprintf(s1,%d,a);switch (a)case 1:GUI_Chinese(60,120,一,White,Blue);break;case 2:GUI_Chinese(60,120,二,White,Blue);break;case 3: GUI_Chinese(60,120,三,White,Blue);break;case 4: GUI_Chinese(60,120,四,White,Blue);break;case 5:GUI_Chinese(60,120,五,White,Blue);break;case 6:GUI_Chinese(60,120,六,White,Blue);break;case 7:GUI_Chinese(60,120,七,White,Blue);