版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、苏州大学 应用技术学院?电子技术综合设计?实验报告实验名称数字文本朗读器班级/小组10信息01组报告人姓名/学号XXX 1016407018完成日期2013-10-28?电子技术综合设计?实验报告实验名称:数字文本显示器的设计与制作研究苏州大学 应用技术学院10信息班级01小组姓名: 学号:1016407029姓名: 学号:1016407011姓名: 学号:1016407020姓名: 学号:10164070182021年10月目 录 TOC o 1-3 h z u HYPERLINK l _Toc23469 1. 任务 PAGEREF _Toc23469 4 HYPERLINK l _Toc2
2、8263 1.1. 描述 PAGEREF _Toc28263 4 HYPERLINK l _Toc23199 1.1.1. 组成 PAGEREF _Toc23199 4 HYPERLINK l _Toc9905 1.1.2. 功能 PAGEREF _Toc9905 4 HYPERLINK l _Toc22135 1.2. 要求 PAGEREF _Toc22135 4 HYPERLINK l _Toc30880 1.2.1. 根本要求 PAGEREF _Toc30880 4 HYPERLINK l _Toc30056 1.2.2. 扩展要求 PAGEREF _Toc30056 4 HYPERLI
3、NK l _Toc11836 1.2.3. 分工 PAGEREF _Toc11836 4 HYPERLINK l _Toc11117 2. 方案 PAGEREF _Toc11117 4 HYPERLINK l _Toc23872 2.1. 方案设计 PAGEREF _Toc23872 4 HYPERLINK l _Toc10815 3. 设计 PAGEREF _Toc10815 4 HYPERLINK l _Toc16332 3.1. 硬件设计 PAGEREF _Toc16332 4 HYPERLINK l _Toc23998 3.1.1 原理图 PAGEREF _Toc23998 5 HYP
4、ERLINK l _Toc11145 3.1.2 LCD液晶屏端口 PAGEREF _Toc11145 6 HYPERLINK l _Toc16627 3.2. 软件设计 PAGEREF _Toc16627 7 HYPERLINK l _Toc25411 3.2.1. 软件结构 PAGEREF _Toc25411 7 HYPERLINK l _Toc30678 3.2.2. 主要函数说明 PAGEREF _Toc30678 7 HYPERLINK l _Toc7684 4. 测试 PAGEREF _Toc7684 7 HYPERLINK l _Toc15476 4.1. 测试内容1 PAGER
5、EF _Toc15476 7 HYPERLINK l _Toc14376 4.1.1. 测试结果 PAGEREF _Toc14376 7 HYPERLINK l _Toc25138 4.1.2. 测试评价 PAGEREF _Toc25138 8 HYPERLINK l _Toc7283 5. 总结 PAGEREF _Toc7283 8 HYPERLINK l _Toc20626 5.1. 任务完成情况 PAGEREF _Toc20626 8 HYPERLINK l _Toc6687 5.2. 缺乏之处 PAGEREF _Toc6687 8 HYPERLINK l _Toc15272 5.3.
6、报告总结 PAGEREF _Toc15272 9 HYPERLINK l _Toc3249 附录左齐标题1 PAGEREF _Toc3249 10 HYPERLINK l _Toc10264 附录1:原理图 PAGEREF _Toc10264 10 HYPERLINK l _Toc23568 附录2:源程序 PAGEREF _Toc23568 11任务描述组成数字文本显示器硬件设计是以STM32 OPEN407Z-C测试版以及LCD液晶显示屏组成。Open103ZARM模块主要是由USB电源接口, JTAG接口,复位按钮模块,串行口等组成。功能在数字文本显示器系统中,用户启动后,用液晶屏上显示
7、欢送界面,按用户键进入主界面,然后可以通过摇杆键,输入的任意一一组数字,在屏幕上会显示该数字,并且可以显示该数字的个,十,百,千等位。最后按复位按钮可以使系统回到初始状态。要求根本要求 随机输入一组数字,LCD显示该数字,并且该数字的各个位。 当密码输入其他字符时无法读出该数字。 完成实验报告,其中包括:硬件设计,软件设计,调试过程,完成的主要内容,实物照片,任务分工说明。扩展要求当输入任意数字时,该系统能够能读出该数字。分工总体设计许多 1016407011硬件设计杨志明 1016407029软件设计朱勇 1016407020报 告苏仁阳 1016407018方案方案设计使用Keil uvi
8、sion4 软件对STM32 OPEN407Z-C测试版编程。设计硬件设计 原理图 LCD液晶屏端口 用户按键 摇杆键软件设计主要函数说明函数1函数原型int main(void)GPIO_Configuration(); LCD_Initializtion();LCD_Clear(Blue);GUI_Chinese(80,40,苏州大学应用技术学院,White,Blue);GUI_Text(100,60,10,White,Blue);GUI_Chinese(120,60,信息,White,Blue);GUI_Chinese(160,60,第一组,White,Blue);GUI_Chinese
9、(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,(uint8_t*)s1,White,Blue);函数实现实现欢送界面的显示,结构体的初始化。函数2函数原型#include stm32f10 x.h#include LCD/LCD.h#incl
10、ude #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 PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endif /* _GNUC_ */int n=1;int a;int b;int c;int d;int e;int s
11、um;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 cp(void);void dp(void);void ep(void);void ah(void);void bh(void);void ch(void);void dh(void);void eh(void);
12、/* 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 FLAG()if(!(GPIOC-IDR & 0 x0004) flag=flag-1; if(flagIDR & 0 x0001) flag=flag+1; if(flagn) flag=n; Delay(0 xf
13、ffff);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(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=1)a=a-1;if(aIDR&0X0002)&(flag=2)b=b+1;if(b9)b=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=2)b=b-1;if(bIDR&0X0002)&(flag=3)c=c+1;i
14、f(c9)c=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=3)c=c-1;if(cIDR&0X0002)&(flag=4)d=d+1;if(d9)d=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=4)d=d-1;if(dIDR&0X0002)&(flag=5)e=e+1;if(e9)e=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=5)e=e-1;if(eIDR & 0 x0002)n=n+1;if(n5)n=5;Delay(0 xfffff);if
15、(!(GPIOC-IDR&0X0008)n=n-1;if(nIDR & 0 x0002)tran();sprintf(s1,%d,n);GUI_Text(240,160,(uint8_t*)s1,White,Blue); void tran()LCD_Clear(Blue);while(1)while(n=1)FLAG();ap();sprintf(s1,%d,a);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=2)FLAG();ap();bp();sprintf(s1,%d
16、%d,a,b);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=3)FLAG();ap();bp();cp();sprintf(s1,%d %d %d,a,b,c);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=4)FLAG();ap();bp();cp();dp();sprintf(s1,%d %d %d %d,a,b,c,d);GUI_Text(100,120
17、,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=5)FLAG();ap();bp();cp();dp();ep();sprintf(s1,%d %d %d %d %d,a,b,c,d,e);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();void sums()LCD_Clear(Blue);while(1)if(n=1)ah();if(n=2)ah();bh();GUI_Chinese(80,80,十,White
18、,Blue);if(n=3)ah();bh();ch();GUI_Chinese(80,120,百,White,Blue);GUI_Chinese(120,120,十,White,Blue);if(n=4)ah();bh();ch();dh();GUI_Chinese(80,120,千,White,Blue);GUI_Chinese(120,120,百,White,Blue);GUI_Chinese(160,120,十,White,Blue);if(n=5)ah();bh();ch();dh();eh();GUI_Chinese(80,120,万,White,Blue);GUI_Chinese
19、(120,120,千,White,Blue);GUI_Chinese(160,120,百,White,Blue);GUI_Chinese(200,120,十,White,Blue);/* Function Name : GPIO_Configuration* Description : Configure GPIO Pin* Input : None* Output : None* Return : None* Attention : None*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB
20、2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA , ENABLE); /* * LED1 - PB15 , LED2 - PB14 , LED3 - PB13 , LED4 - PB12 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Ini
21、tStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_I
22、nitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure);#ifdef USE_FULL_ASSERT/* * brief Reports the name of the source file and the source line number * where the assert_pa
23、ram error has occurred. * param file: pointer to the source file name * param line: assert_param error line source number * retval None */void assert_failed(uint8_t* file, uint32_t line) /* User can add his own implementation to report the file name and line number, ex: printf(Wrong parameters value
24、: file %s on line %drn, file, line) */ /* Infinite loop */ while (1) #endif函数实现通过摇杆任意输入一个数字,在LCD上会显示该数字的个,十,百,千,万等位。测试测试内容1测试结果测试评价测试结果根本符合本设计的要求,可能还有些缺乏之处有待改善。总结任务完成情况根本上完成了该设计系统所需要的根本功能,任意输入一个数字就会在LCD上显示该数字的各个位。缺乏之处该系统没有接入SPEAKER模块,不能通过语音读出该数字,而且只能通过摇杆输入数字。报告总结在此一周左右的实训中,我们都对ARM模拟板有了初步的认识,对其外围的一些功
25、能模块也有了一定的了解。从确定课题到最后的测试也不是那么顺利的,在其间我们也遇到了好些困难。在编写程序时,编好的程序无法写入到ARM中,LCD没有显示。最后在同学和丁老师的帮助下,我们很好的解决了这个问题。在实训的过程中,我们除了ARM还学到了很多东西。我们明白了要做好任何事情都是需要耐心和恒心的,同时我们也懂得了团队合作的意义。在此我要向和我一起努力过的组员和给予我们支持和帮助的丁老师以及同学表示诚挚的感谢。附录左齐标题1附录1:原理图附录2:源程序#include stm32f10 x.h#include LCD/LCD.h#include #ifdef _GNUC_ /* With GC
26、C/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 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
27、 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 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* De
28、scription : Delay Time* Input : - nCount: Delay Time* Output : None* Return : None* Attention : None*/void Delay (uint32_t nCount) for(; nCount != 0; nCount-);void FLAG()if(!(GPIOC-IDR & 0 x0004) flag=flag-1; if(flagIDR & 0 x0001) flag=flag+1; if(flagn) flag=n; Delay(0 xfffff);sprintf(s2,%d,flag);GU
29、I_Text(100,60,(uint8_t*)s2,White,Blue);void ap()if(!(GPIOC-IDR&0X0002)&(flag=1)a=a+1;if(a9)a=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=1)a=a-1;if(aIDR&0X0002)&(flag=2)b=b+1;if(b9)b=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=2)b=b-1;if(bIDR&0X0002)&(flag=3)c=c+1;if(c9)c=9;Delay(0 xfffff);if(
30、!(GPIOC-IDR&0X0008)&(flag=3)c=c-1;if(cIDR&0X0002)&(flag=4)d=d+1;if(d9)d=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=4)d=d-1;if(dIDR&0X0002)&(flag=5)e=e+1;if(e9)e=9;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)&(flag=5)e=e-1;if(eIDR & 0 x0002)n=n+1;if(n5)n=5;Delay(0 xfffff);if(!(GPIOC-IDR&0X0008)n=n-1;if
31、(nIDR & 0 x0002)tran();sprintf(s1,%d,n);GUI_Text(240,160,(uint8_t*)s1,White,Blue); void tran()LCD_Clear(Blue);while(1)while(n=1)FLAG();ap();sprintf(s1,%d,a);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=2)FLAG();ap();bp();sprintf(s1,%d %d,a,b);GUI_Text(100,120,(ui
32、nt8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=3)FLAG();ap();bp();cp();sprintf(s1,%d %d %d,a,b,c);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();while(n=4)FLAG();ap();bp();cp();dp();sprintf(s1,%d %d %d %d,a,b,c,d);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if
33、(!(GPIOC-IDR & 0 x0001)sums();while(n=5)FLAG();ap();bp();cp();dp();ep();sprintf(s1,%d %d %d %d %d,a,b,c,d,e);GUI_Text(100,120,(uint8_t*)s1,White,Blue);if(!(GPIOC-IDR & 0 x0001)sums();void sums()LCD_Clear(Blue);while(1)if(n=1)ah();if(n=2)ah();bh();GUI_Chinese(80,80,十,White,Blue);if(n=3)ah();bh();ch()
34、;GUI_Chinese(80,120,百,White,Blue);GUI_Chinese(120,120,十,White,Blue);if(n=4)ah();bh();ch();dh();GUI_Chinese(80,120,千,White,Blue);GUI_Chinese(120,120,百,White,Blue);GUI_Chinese(160,120,十,White,Blue);if(n=5)ah();bh();ch();dh();eh();GUI_Chinese(80,120,万,White,Blue);GUI_Chinese(120,120,千,White,Blue);GUI_C
35、hinese(160,120,百,White,Blue);GUI_Chinese(200,120,十,White,Blue);/* Function Name : GPIO_Configuration* Description : Configure GPIO Pin* Input : None* Output : None* Return : None* Attention : None*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Per
36、iph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA , ENABLE); /* * LED1 - PB15 , LED2 - PB14 , LED3 - PB13 , LED4 - PB12 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_
37、Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO
38、_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure);#ifdef USE_FULL_ASSERT/* * brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * pa
39、ram file: pointer to the source file name * param line: assert_param error line source number * retval None */void assert_failed(uint8_t* file, uint32_t line) /* User can add his own implementation to report the file name and line number, ex: printf(Wrong parameters value: file %s on line %drn, file
40、, line) */ /* Infinite loop */ while (1) #endif附录3:实物照片及测试记录恋爱运UP一绪Lets月亭方正!気持今Flying Get!dou都斗豆逗陡抖痘兜读蚪窦篼蔸乧侸兠凟剅吺唗投斣枓梪橷毭氀浢渎渎瞗窬窦脰艔豆读逾郖酘酡钭鋀钭閗闘阧餖饾斗鬦鬪鬬鬭du读度毒渡堵独肚镀赌睹杜督都犊妒顿蠹笃嘟渎椟牍黩髑芏儥凟剢剫匵厾噣土涂妬嬻宅帾斁晵暏樚枢橐椟殬殰涜渎牍犊独琽瓄皾睾秺窦竺笁笃纛荰蝳螙蠧裻襡襩覩诧読读讟诧豄赌贕醏錖镀锗鑟锗闍阇陼靯韇韣韥顿騳黩duan段短断端锻缎椴煅簖偳剬塅媏彖断毈瑖碫篅簖缎专腶葮褍踹躖锻鍴dui对队堆兑敦镦碓怼憝兊兑垖埻塠夺夺対对嵟憞怼捶杸濧濻瀢瀩痽磓祋綐膭薱謉譈譵追鈗锐锐錞鎚镦鐜锐陮队頧鴭dul乧dun吨顿蹲墩敦钝盾囤遁不趸沌盹镦礅炖砘伅俊吨墪壿庉忳敦憞撉撴楯橔潡炖犜獤碷腞腯蜳豚踲蹾趸逇遯钝镦鐜顿驐duo多朵夺舵剁垛跺惰堕掇哆驮度躲踱沲咄铎裰哚缍亸仛兊兑兑凙刴剟剫吋喥嚉嚲垜埵堕墯夛夺奲媠嫷尮崜嶞憜挅挆捶揣敓敚敠敪朶杂杕枤柁柂柮桗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年9月重庆巫山县人民医院招聘儿科康复治疗工作人员3人笔试备考题库及答案解析
- 2026北京大学力学与工程科学学院招聘1名劳动合同制工作人员笔试备考题库及答案解析
- 2027中国农业银行浙江省分行校园招聘笔试模拟试题及答案解析
- 2026年度郑州新郑市公益性岗位招聘12名笔试备考题库及答案解析
- 2026四川大学华西医院医保真实世界研究与评价中心项目制科研助理招聘1人考试模拟试题及答案解析
- 大唐四川发电有限公司2027年高校毕业生招聘(第一批)考试备考题库及答案解析
- 2026年金门县教师招聘考试备考试题及答案解析
- 2026中国学生体育联合会大学乒乓球分会招聘1人考试模拟试题及答案解析
- 2026福建医科大学招聘安全保卫工作人员5人笔试备考试题及答案解析
- 2026-湖南大学教师消防安全管理员招聘考试参考题库-含答案
- GB 24284-2026大型焰火燃放安全技术规程
- 自考00277行政管理学重点复习资料
- (零模)苏州市2027届高三年级9月阳光调研试卷 生物试卷(含答案)
- 血常规解读:从化验单到临床线索
- 2026年江苏省泰州市抗震办公室(审图中心)招聘1人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年世界职业院校技能大赛“智能网联汽车技术组”参考试题及答案
- 2025年江苏泰州市中考语文试卷真题及答案详解(精校打印)
- (2026年)护理部垂直管理及精细化管理课件
- 2026年殡葬系统版遗体火化师技能知识试题
- RB/T 104-2024能源管理体系交通运输企业认证要求
- (2026年)血浆置换及血浆分离吸附护理要点课件
评论
0/150
提交评论