電子技術綜合設計實驗報告:數(shù)字文本顯示器的設計與制作研究_第1頁
電子技術綜合設計實驗報告:數(shù)字文本顯示器的設計與制作研究_第2頁
電子技術綜合設計實驗報告:數(shù)字文本顯示器的設計與制作研究_第3頁
電子技術綜合設計實驗報告:數(shù)字文本顯示器的設計與制作研究_第4頁
電子技術綜合設計實驗報告:數(shù)字文本顯示器的設計與制作研究_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、蘇州大學 應用技術學院?電子技術綜合設計?實驗報告實驗名稱數(shù)字文本朗讀器班級/小組10信息01組報告人姓名/學號XXX 1016407018完成日期2013-10-28?電子技術綜合設計?實驗報告實驗名稱:數(shù)字文本顯示器的設計與制作研究蘇州大學 應用技術學院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. 主要函數(shù)說明 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任務描述組成數(shù)字文本顯示器硬件設計是以STM32 OPEN407Z-C測試版以及LCD液晶顯示屏組成。Open103ZARM模塊主要是由USB電源接口, JTAG接口,復位按鈕模塊,串行口等組成。功能在數(shù)字文本顯示器系統(tǒng)中,用戶啟動后,用液晶屏上顯示

7、歡送界面,按用戶鍵進入主界面,然后可以通過搖桿鍵,輸入的任意一一組數(shù)字,在屏幕上會顯示該數(shù)字,并且可以顯示該數(shù)字的個,十,百,千等位。最后按復位按鈕可以使系統(tǒng)回到初始狀態(tài)。要求根本要求 隨機輸入一組數(shù)字,LCD顯示該數(shù)字,并且該數(shù)字的各個位。 當密碼輸入其他字符時無法讀出該數(shù)字。 完成實驗報告,其中包括:硬件設計,軟件設計,調試過程,完成的主要內容,實物照片,任務分工說明。擴展要求當輸入任意數(shù)字時,該系統(tǒng)能夠能讀出該數(shù)字。分工總體設計許多 1016407011硬件設計楊志明 1016407029軟件設計朱勇 1016407020報 告蘇仁陽 1016407018方案方案設計使用Keil uvi

8、sion4 軟件對STM32 OPEN407Z-C測試版編程。設計硬件設計 原理圖 LCD液晶屏端口 用戶按鍵 搖桿鍵軟件設計主要函數(shù)說明函數(shù)1函數(shù)原型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,請選擇輸入位數(shù),White,Blue);sprintf(s1,%d,n);GUI_Text(240,160,(uint8_t*)s1,White,Blue);函數(shù)實現(xiàn)實現(xiàn)歡送界面的顯示,結構體的初始化。函數(shù)2函數(shù)原型#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函數(shù)實現(xiàn)通過搖桿任意輸入一個數(shù)字,在LCD上會顯示該數(shù)字的個,十,百,千,萬等位。測試測試內容1測試結果測試評價測試結果根本符合本設計的要求,可能還有些缺乏之處有待改善??偨Y任務完成情況根本上完成了該設計系統(tǒng)所需要的根本功能,任意輸入一個數(shù)字就會在LCD上顯示該數(shù)字的各個位。缺乏之處該系統(tǒng)沒有接入SPEAKER模塊,不能通過語音讀出該數(shù)字,而且只能通過搖桿輸入數(shù)字。報告總結在此一周左右的實訓中,我們都對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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論