版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《電子技術(shù)綜合設(shè)計(jì)》</p><p><b> 實(shí)驗(yàn)報(bào)告</b></p><p> 實(shí)驗(yàn)名稱(chēng)數(shù)字文本朗讀器</p><p> 班級(jí)/小組</p><p> 報(bào)告人姓名/學(xué)號(hào)</p><p> 完成日期2013-10-28</p><p> 《電子技
2、術(shù)綜合設(shè)計(jì)》實(shí)驗(yàn)報(bào)告</p><p> 實(shí)驗(yàn)名稱(chēng):數(shù)字文本顯示器設(shè)計(jì)與制作</p><p><b> 目 錄</b></p><p><b> 1. 任務(wù)4</b></p><p><b> 1.1. 描述4</b></p><p> 1.
3、1.1. 組成4</p><p> 1.1.2. 功能4</p><p><b> 1.2. 要求4</b></p><p> 1.2.1. 基本要求4</p><p> 1.2.2. 擴(kuò)展要求4</p><p> 1.2.3. 分工4</p><p>
4、;<b> 2. 方案4</b></p><p> 2.1. 方案設(shè)計(jì)4</p><p><b> 3. 設(shè)計(jì)4</b></p><p> 3.1. 硬件設(shè)計(jì)4</p><p> 3.1.1 原理圖5</p><p> 3.1.2 LCD液晶屏端口6&
5、lt;/p><p> 3.2. 軟件設(shè)計(jì)7</p><p> 3.2.1. 軟件結(jié)構(gòu)7</p><p> 3.2.2. 主要函數(shù)說(shuō)明7</p><p><b> 4. 測(cè)試7</b></p><p> 4.1. 測(cè)試內(nèi)容17</p><p> 4.1.1.
6、 測(cè)試結(jié)果7</p><p> 4.1.2. 測(cè)試評(píng)價(jià)8</p><p><b> 5. 總結(jié)8</b></p><p> 5.1. 任務(wù)完成情況8</p><p> 5.2. 不足之處8</p><p> 5.3. 報(bào)告總結(jié)9</p><p> 附
7、錄〔左齊標(biāo)題1〕10</p><p> 附錄1:原理圖10</p><p> 附錄2:源程序11</p><p><b> 任務(wù)</b></p><p><b> 描述</b></p><p><b> 組成</b></p>
8、<p> 數(shù)字文本顯示器硬件設(shè)計(jì)是以STM32 OPEN407Z-C測(cè)試版以及LCD液晶顯示屏組成。</p><p> Open103ZARM模塊主要是由USB電源接口, JTAG接口,復(fù)位按鈕模塊,串行口等組成。</p><p><b> 功能</b></p><p> 在數(shù)字文本顯示器系統(tǒng)中,用戶(hù)啟動(dòng)后,用液晶屏上顯示歡
9、迎界面,按用戶(hù)鍵進(jìn)入主界面,然后可以通過(guò)搖桿鍵,輸入的任意一一組數(shù)字,在屏幕上會(huì)顯示該數(shù)字,并且可以顯示該數(shù)字的個(gè),十,百,千等位。最后按復(fù)位按鈕可以使系統(tǒng)回到初始狀態(tài)。</p><p><b> 要求</b></p><p><b> 基本要求</b></p><p> ① 隨機(jī)輸入一組數(shù)字,LCD顯示該數(shù)字
10、,并且該數(shù)字的各個(gè)位。</p><p> ?、?當(dāng)密碼輸入其他字符時(shí)無(wú)法讀出該數(shù)字。</p><p> ?、?完成實(shí)驗(yàn)報(bào)告,其中包括:硬件設(shè)計(jì),軟件設(shè)計(jì),調(diào)試過(guò)程,完成的主要內(nèi)容,實(shí)物照片,任務(wù)分工說(shuō)明。</p><p><b> 擴(kuò)展要求</b></p><p> 當(dāng)輸入任意數(shù)字時(shí),該系統(tǒng)能夠能讀出該數(shù)
11、字。</p><p><b> 分工</b></p><p> 總體設(shè)計(jì)——許多 1016407011</p><p> 硬件設(shè)計(jì)——楊志明 1016407029</p><p> 軟件設(shè)計(jì)——朱勇 1016407020</p><p> 報(bào) 告——蘇仁陽(yáng) 10164070
12、18</p><p><b> 方案</b></p><p><b> 方案設(shè)計(jì)</b></p><p> 使用Keil uvision4 軟件對(duì)STM32 OPEN407Z-C測(cè)試版編程。</p><p><b> 設(shè)計(jì)</b></p><p>
13、;<b> 硬件設(shè)計(jì)</b></p><p><b> 3.1.1 原理圖</b></p><p> 3.1.2 LCD液晶屏端口</p><p> 3.1.3 用戶(hù)按鍵</p><p><b> 3.1.4 搖桿鍵</b></p><p>&
14、lt;b> 軟件設(shè)計(jì)</b></p><p><b> 主要函數(shù)說(shuō)明</b></p><p><b> 函數(shù)1</b></p><p><b> 函數(shù)原型</b></p><p> int main(void)</p><p>
15、;<b> {</b></p><p> GPIO_Configuration();</p><p> LCD_Initializtion();</p><p> LCD_Clear(Blue);</p><p> GUI_Chinese(80,40,"蘇州大學(xué)應(yīng)用技術(shù)學(xué)院",White,B
16、lue);</p><p> GUI_Text(100,60,"10",White,Blue);</p><p> GUI_Chinese(120,60,"信息",White,Blue);</p><p> GUI_Chinese(160,60,"第一組",White,Blue);</p>
17、<p> GUI_Chinese(100,80,"朱勇",White,Blue);</p><p> GUI_Chinese(160,80,"楊志明",White,Blue);</p><p> GUI_Chinese(100,100,"許多",White,Blue);</p><p>
18、 GUI_Chinese(160,100,"蘇仁陽(yáng)",White,Blue);</p><p> GUI_Chinese(80,160,"請(qǐng)選擇輸入位數(shù)",White,Blue);</p><p> sprintf(s1,"%d",n);</p><p> GUI_Text(240,160,(uin
19、t8_t*)s1,White,Blue);</p><p><b> 函數(shù)實(shí)現(xiàn)</b></p><p> 實(shí)現(xiàn)歡迎界面的顯示,結(jié)構(gòu)體的初始化。</p><p><b> 函數(shù)2</b></p><p><b> 函數(shù)原型</b></p><p>
20、 #include "stm32f10x.h"</p><p> #include "LCD/LCD.h"</p><p> #include <stdio.h></p><p> #ifdef __GNUC__</p><p> /* With GCC/RAISONANCE, s
21、mall printf (option LD Linker->Libraries->Small printf</p><p> set to 'Yes') calls __io_putchar() */</p><p> #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)</p><p&g
22、t;<b> #else</b></p><p> #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)</p><p> #endif /* __GNUC__ */</p><p><b> int n=1;</b></p><p>&l
23、t;b> int a;</b></p><p><b> int b;</b></p><p><b> int c;</b></p><p><b> int d;</b></p><p><b> int e;</b><
24、;/p><p><b> int sum;</b></p><p> int flag=1;</p><p> char s1[30];</p><p> char s2[30];</p><p> /* Private function prototypes ---------------
25、--------------------------------*/</p><p> void GPIO_Configuration(void);</p><p> void USART_Configuration(void);</p><p> void tran(void);</p><p> void sums(void);&
26、lt;/p><p> void ap(void);</p><p> void bp(void);</p><p> void cp(void);</p><p> void dp(void);</p><p> void ep(void);</p><p> void ah(void)
27、;</p><p> void bh(void);</p><p> void ch(void);</p><p> void dh(void);</p><p> void eh(void);</p><p> /***********************************************
28、********************************</p><p> * Function Name : Delay</p><p> * Description : Delay Time</p><p> * Input : - nCount: Delay Time</p><p> * Ou
29、tput : None</p><p> * Return : None</p><p> * Attention : None</p><p> *******************************************************************************/</p>
30、;<p> void Delay (uint32_t nCount)</p><p><b> {</b></p><p> for(; nCount != 0; nCount--);</p><p><b> }</b></p><p> void FLAG()</
31、p><p><b> {</b></p><p> if(!(GPIOC->IDR & 0x0004))</p><p><b> { </b></p><p> flag=flag-1;</p><p> if(flag<1)</p>
32、<p><b> flag=1;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p> if(!(GPIOA->IDR & 0x0001))</p><p><b> {</b>&l
33、t;/p><p> flag=flag+1;</p><p> if(flag>n)</p><p><b> flag=n;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p>
34、 sprintf(s2,"%d",flag);</p><p> GUI_Text(100,60,(uint8_t*)s2,White,Blue);</p><p><b> }</b></p><p><b> void ap()</b></p><p><b&g
35、t; {</b></p><p> if((!(GPIOC->IDR&0X0002))&&(flag==1))</p><p><b> {</b></p><p><b> a=a+1;</b></p><p><b> if(a>
36、;9)</b></p><p><b> a=9;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p> if((!(GPIOC->IDR&0X0008))&&(flag==1))</
37、p><p><b> {</b></p><p><b> a=a-1;</b></p><p><b> if(a<0)</b></p><p><b> a=0;</b></p><p> Delay(0xfffff
38、);</p><p><b> }</b></p><p><b> }</b></p><p><b> void bp()</b></p><p><b> {</b></p><p> if((!(GPIOC->
39、;IDR&0X0002))&&(flag==2))</p><p><b> {</b></p><p><b> b=b+1;</b></p><p><b> if(b>9)</b></p><p><b> b=9;<
40、/b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p> if((!(GPIOC->IDR&0X0008))&&(flag==2))</p><p><b> {</b></p><
41、;p><b> b=b-1;</b></p><p><b> if(b<0)</b></p><p><b> b=0;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p&g
42、t;<p><b> }</b></p><p><b> void cp()</b></p><p><b> {</b></p><p> if((!(GPIOC->IDR&0X0002))&&(flag==3))</p><
43、p><b> {</b></p><p><b> c=c+1;</b></p><p><b> if(c>9)</b></p><p><b> c=9;</b></p><p> Delay(0xfffff);</p>
44、;<p><b> }</b></p><p> if((!(GPIOC->IDR&0X0008))&&(flag==3))</p><p><b> {</b></p><p><b> c=c-1;</b></p><p>
45、;<b> if(c<0)</b></p><p><b> c=0;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p><b> }</b></p><p&
46、gt;<b> void dp()</b></p><p><b> {</b></p><p> if((!(GPIOC->IDR&0X0002))&&(flag==4))</p><p><b> {</b></p><p><b
47、> d=d+1;</b></p><p><b> if(d>9)</b></p><p><b> d=9;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p&g
48、t; if((!(GPIOC->IDR&0X0008))&&(flag==4))</p><p><b> {</b></p><p><b> d=d-1;</b></p><p><b> if(d<0)</b></p><p>
49、<b> d=0;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p><b> }</b></p><p><b> void ep()</b></p><p>
50、;<b> {</b></p><p> if((!(GPIOC->IDR&0X0002))&&(flag==5))</p><p><b> {</b></p><p><b> e=e+1;</b></p><p><b>
51、 if(e>9)</b></p><p><b> e=9;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p> if((!(GPIOC->IDR&0X0008))&&(flag==
52、5))</p><p><b> {</b></p><p><b> e=e-1;</b></p><p><b> if(e<0)</b></p><p><b> e=0;</b></p><p> Delay
53、(0xfffff);</p><p><b> }</b></p><p><b> }</b></p><p><b> void ah()</b></p><p><b> {</b></p><p> sprintf
54、(s1,"%d",a);</p><p> switch (a)</p><p><b> {</b></p><p> case 1:GUI_Chinese(60,120,"一",White,Blue);break;</p><p> case 2:GUI_Chine
55、se(60,120,"二",White,Blue);break;</p><p> case 3: GUI_Chinese(60,120,"三",White,Blue);break;</p><p> case 4: GUI_Chinese(60,120,"四",White,Blue);break;</p>&l
56、t;p> case 5:GUI_Chinese(60,120,"五",White,Blue);break;</p><p> case 6:GUI_Chinese(60,120,"六",White,Blue);break;</p><p> case 7:GUI_Chinese(60,120,"七",White,
57、Blue);break;</p><p> case 8:GUI_Chinese(60,120,"八",White,Blue);break;</p><p> case 9:GUI_Chinese(60,120,"九",White,Blue);break;</p><p> case 0: GUI_Chinese(6
58、0,120,"零",White,Blue);break;</p><p><b> }</b></p><p><b> }</b></p><p><b> void bh()</b></p><p><b> {</b>&l
59、t;/p><p> sprintf(s1,"%d",b);</p><p> switch (b)</p><p><b> {</b></p><p> case 1:GUI_Chinese(100,120,"一",White,Blue);break;</p>
60、<p> case 2:GUI_Chinese(100,120,"二",White,Blue);break;</p><p> case 3: GUI_Chinese(100,120,"三",White,Blue);break;</p><p> case 4: GUI_Chinese(100,120,"四",
61、White,Blue);break;</p><p> case 5:GUI_Chinese(100,120,"五",White,Blue);break;</p><p> case 6:GUI_Chinese(100,120,"六",White,Blue);break;</p><p> case 7:GUI_C
62、hinese(100,120,"七",White,Blue);break;</p><p> case 8:GUI_Chinese(100,120,"八",White,Blue);break;</p><p> case 9:GUI_Chinese(100,120,"九",White,Blue);break;</p&
63、gt;<p> case 0: GUI_Chinese(100,120,"零",White,Blue);break;</p><p><b> }</b></p><p><b> }</b></p><p><b> void ch()</b></p&
64、gt;<p><b> {</b></p><p> sprintf(s1,"%d",c);</p><p> switch (c)</p><p><b> {</b></p><p> case 1:GUI_Chinese(140,120,"
65、;一",White,Blue);break;</p><p> case 2:GUI_Chinese(140,120,"二",White,Blue);break;</p><p> case 3: GUI_Chinese(140,120,"三",White,Blue);break;</p><p> case
66、 4: GUI_Chinese(140,120,"四",White,Blue);break;</p><p> case 5:GUI_Chinese(140,120,"五",White,Blue);break;</p><p> case 6:GUI_Chinese(140,120,"六",White,Blue);brea
67、k;</p><p> case 7:GUI_Chinese(140,120,"七",White,Blue);break;</p><p> case 8:GUI_Chinese(140,120,"八",White,Blue);break;</p><p> case 9:GUI_Chinese(140,120,&
68、quot;九",White,Blue);break;</p><p> case 0: GUI_Chinese(140,120,"零",White,Blue);break;</p><p><b> }</b></p><p><b> }</b></p><p>
69、;<b> void dh()</b></p><p><b> {</b></p><p> sprintf(s1,"%d",d);</p><p> switch (d)</p><p><b> {</b></p><p&
70、gt; case 1:GUI_Chinese(180,120,"一",White,Blue);break;</p><p> case 2:GUI_Chinese(180,120,"二",White,Blue);break;</p><p> case 3: GUI_Chinese(180,120,"三",White,B
71、lue);break;</p><p> case 4: GUI_Chinese(180,120,"四",White,Blue);break;</p><p> case 5:GUI_Chinese(180,120,"五",White,Blue);break;</p><p> case 6:GUI_Chinese(
72、180,120,"六",White,Blue);break;</p><p> case 7:GUI_Chinese(180,120,"七",White,Blue);break;</p><p> case 8:GUI_Chinese(180,120,"八",White,Blue);break;</p>&l
73、t;p> case 9:GUI_Chinese(180,120,"九",White,Blue);break;</p><p> case 0: GUI_Chinese(180,120,"零",White,Blue);break;</p><p><b> }</b></p><p><
74、b> }</b></p><p><b> void eh()</b></p><p><b> {</b></p><p> sprintf(s1,"%d",e);</p><p> switch (e)</p><p>&l
75、t;b> {</b></p><p> case 1:GUI_Chinese(220,120,"一",White,Blue);break;</p><p> case 2:GUI_Chinese(220,120,"二",White,Blue);break;</p><p> case 3: GUI
76、_Chinese(220,120,"三",White,Blue);break;</p><p> case 4: GUI_Chinese(220,120,"四",White,Blue);break;</p><p> case 5:GUI_Chinese(220,120,"五",White,Blue);break;</
77、p><p> case 6:GUI_Chinese(220,120,"六",White,Blue);break;</p><p> case 7:GUI_Chinese(220,120,"七",White,Blue);break;</p><p> case 8:GUI_Chinese(220,120,"八&
78、quot;,White,Blue);break;</p><p> case 9:GUI_Chinese(220,120,"九",White,Blue);break;</p><p> case 0: GUI_Chinese(220,120,"零",White,Blue);break;</p><p><b>
79、 }</b></p><p><b> }</b></p><p> /*******************************************************************************</p><p> * Function Name : main</p><
80、;p> * Description : Main program</p><p> * Input : None</p><p> * Output : None</p><p> * Return : None</p><p> * Attention : None
81、</p><p> *******************************************************************************/</p><p> int main(void)</p><p><b> {</b></p><p> GPIO_Configura
82、tion();</p><p> LCD_Initializtion();</p><p> LCD_Clear(Blue);</p><p> GUI_Chinese(80,40,"蘇州大學(xué)應(yīng)用技術(shù)學(xué)院",White,Blue);</p><p> GUI_Text(100,60,"10",W
83、hite,Blue);</p><p> GUI_Chinese(120,60,"信息",White,Blue);</p><p> GUI_Chinese(160,60,"第一組",White,Blue);</p><p> GUI_Chinese(100,80,"朱勇",White,Blue);&
84、lt;/p><p> GUI_Chinese(160,80,"楊志明",White,Blue);</p><p> GUI_Chinese(100,100,"許多",White,Blue);</p><p> GUI_Chinese(160,100,"蘇仁陽(yáng)",White,Blue);</p>
85、<p> GUI_Chinese(80,160,"請(qǐng)選擇輸入位數(shù)",White,Blue);</p><p> sprintf(s1,"%d",n);</p><p> GUI_Text(240,160,(uint8_t*)s1,White,Blue);</p><p> /* Infinite loop
86、 */</p><p><b> while (1)</b></p><p><b> {</b></p><p> if(!(GPIOC->IDR & 0x0002))</p><p><b> {</b></p><p><
87、;b> n=n+1;</b></p><p><b> if(n>5)</b></p><p><b> n=5;</b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p
88、> if(!(GPIOC->IDR&0X0008))</p><p><b> {</b></p><p><b> n=n-1;</b></p><p><b> if(n<1)</b></p><p><b> n=1;<
89、/b></p><p> Delay(0xfffff);</p><p><b> }</b></p><p> if(!(GPIOA->IDR & 0x0002))</p><p><b> {</b></p><p><b>
90、 tran();</b></p><p><b> }</b></p><p> sprintf(s1,"%d",n);</p><p> GUI_Text(240,160,(uint8_t*)s1,White,Blue);</p><p><b> }</b&g
91、t;</p><p><b> }</b></p><p> void tran()</p><p><b> {</b></p><p> LCD_Clear(Blue);</p><p><b> while(1)</b></p&
92、gt;<p><b> {</b></p><p> while(n==1)</p><p><b> {</b></p><p><b> FLAG();</b></p><p><b> ap();</b></p>
93、<p> sprintf(s1,"%d",a);</p><p> GUI_Text(100,120,(uint8_t*)s1,White,Blue);</p><p> if(!(GPIOC->IDR & 0x0001))</p><p><b> {</b></p><
94、;p><b> sums();</b></p><p><b> }</b></p><p><b> }</b></p><p> while(n==2)</p><p><b> {</b></p><p>&l
95、t;b> FLAG();</b></p><p><b> ap();</b></p><p><b> bp();</b></p><p> sprintf(s1,"%d %d",a,b);</p><p> GUI_Text(100,120,(ui
96、nt8_t*)s1,White,Blue);</p><p> if(!(GPIOC->IDR & 0x0001))</p><p><b> {</b></p><p><b> sums();</b></p><p><b> }</b></p&
97、gt;<p><b> }</b></p><p> while(n==3)</p><p><b> {</b></p><p><b> FLAG();</b></p><p><b> ap();</b></p>
98、<p><b> bp();</b></p><p><b> cp();</b></p><p> sprintf(s1,"%d %d %d",a,b,c);</p><p> GUI_Text(100,120,(uint8_t*)s1,White,Blue);</p>
99、;<p> if(!(GPIOC->IDR & 0x0001))</p><p><b> {</b></p><p><b> sums();</b></p><p><b> }</b></p><p><b> }</
100、b></p><p> while(n==4)</p><p><b> {</b></p><p><b> FLAG();</b></p><p><b> ap();</b></p><p><b> bp();</
101、b></p><p><b> cp();</b></p><p><b> dp();</b></p><p> sprintf(s1,"%d %d %d %d",a,b,c,d);</p><p> GUI_Text(100,120,(uint8_t*)s1,W
102、hite,Blue);</p><p> if(!(GPIOC->IDR & 0x0001))</p><p><b> {</b></p><p><b> sums();</b></p><p><b> }</b></p><p&
103、gt;<b> }</b></p><p> while(n==5)</p><p><b> {</b></p><p><b> FLAG();</b></p><p><b> ap();</b></p><p>&
104、lt;b> bp();</b></p><p><b> cp();</b></p><p><b> dp();</b></p><p><b> ep();</b></p><p> sprintf(s1,"%d %d %d %d %d
105、",a,b,c,d,e);</p><p> GUI_Text(100,120,(uint8_t*)s1,White,Blue);</p><p> if(!(GPIOC->IDR & 0x0001))</p><p><b> {</b></p><p><b> sums()
106、;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void sums()<
107、;/p><p><b> {</b></p><p> LCD_Clear(Blue);</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> if(n==1)</
108、b></p><p><b> {</b></p><p><b> ah();</b></p><p><b> }</b></p><p><b> if(n==2)</b></p><p><b>
109、{</b></p><p><b> ah();</b></p><p><b> bh();</b></p><p> GUI_Chinese(80,80,"十",White,Blue);</p><p><b> }</b></
110、p><p><b> if(n==3)</b></p><p><b> {</b></p><p><b> ah();</b></p><p><b> bh();</b></p><p><b> ch();&
111、lt;/b></p><p> GUI_Chinese(80,120,"百",White,Blue);</p><p> GUI_Chinese(120,120,"十",White,Blue);</p><p><b> }</b></p><p><b>
112、 if(n==4)</b></p><p><b> {</b></p><p><b> ah();</b></p><p><b> bh();</b></p><p><b> ch();</b></p><p
113、><b> dh();</b></p><p> GUI_Chinese(80,120,"千",White,Blue);</p><p> GUI_Chinese(120,120,"百",White,Blue);</p><p> GUI_Chinese(160,120,"十&qu
114、ot;,White,Blue);</p><p><b> }</b></p><p><b> if(n==5)</b></p><p><b> {</b></p><p><b> ah();</b></p><p>
115、<b> bh();</b></p><p><b> ch();</b></p><p><b> dh();</b></p><p><b> eh();</b></p><p> GUI_Chinese(80,120,"萬(wàn)&quo
116、t;,White,Blue);</p><p> GUI_Chinese(120,120,"千",White,Blue);</p><p> GUI_Chinese(160,120,"百",White,Blue);</p><p> GUI_Chinese(200,120,"十",White,Blue
117、);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*****************************************************************
118、**************</p><p> * Function Name : GPIO_Configuration</p><p> * Description : Configure GPIO Pin</p><p> * Input : None</p><p> * Output
119、: None</p><p> * Return : None</p><p> * Attention : None</p><p> *******************************************************************************/</p><p>
120、 void GPIO_Configuration(void)</p><p><b> {</b></p><p> GPIO_InitTypeDef GPIO_InitStructure;</p><p> RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPI
121、OC | RCC_APB2Periph_GPIOA , ENABLE); </p><p><b> /**</b></p><p> * LED1 -> PB15 , LED2 -> PB14 , LED3 -> PB13 , LED4 -> PB12</p><p><b> */
122、 </b></p><p> GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;</p><p> GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;</p><p> GPI
123、O_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; </p><p> GPIO_Init(GPIOB, &GPIO_InitStructure);</p><p> GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;</
124、p><p> GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;</p><p> GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; </p><p> GPIO_Init(GPIOC, &GPIO_InitStructure);</p><p&g
125、t; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;</p><p> GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;</p><p> GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; </p><p>
126、; GPIO_Init(GPIOA, &GPIO_InitStructure);</p><p><b> }</b></p><p> #ifdef USE_FULL_ASSERT</p><p><b> /**</b></p><p> * @brief Reports
127、the name of the source file and the source line number</p><p> * where the assert_param error has occurred.</p><p> * @param file: pointer to the source file name</p><p> * @p
128、aram line: assert_param error line source number</p><p> * @retval None</p><p><b> */</b></p><p> void assert_failed(uint8_t* file, uint32_t line)</p><p&g
129、t;<b> { </b></p><p> /* User can add his own implementation to report the file name and line number,</p><p> ex: printf("Wrong parameters value: file %s on line %d\r\n",
130、 file, line) */</p><p> /* Infinite loop */</p><p><b> while (1)</b></p><p><b> {</b></p><p><b> }</b></p><p><b
131、> }</b></p><p><b> #endif</b></p><p><b> 函數(shù)實(shí)現(xiàn)</b></p><p> 通過(guò)搖桿任意輸入一個(gè)數(shù)字,在LCD上會(huì)顯示該數(shù)字的個(gè),十,百,千,萬(wàn)等位。</p><p><b> 測(cè)試</b></
132、p><p><b> 測(cè)試內(nèi)容1</b></p><p><b> 測(cè)試結(jié)果</b></p><p><b> 測(cè)試評(píng)價(jià)</b></p><p> 測(cè)試結(jié)果基本符合本設(shè)計(jì)的要求,可能還有些不足之處有待改善。</p><p><b> 總結(jié)
133、</b></p><p><b> 任務(wù)完成情況</b></p><p> 基本上完成了該設(shè)計(jì)系統(tǒng)所需要的基本功能,任意輸入一個(gè)數(shù)字就會(huì)在LCD上顯示該數(shù)字的各個(gè)位。</p><p><b> 不足之處</b></p><p> 該系統(tǒng)沒(méi)有接入SPEAKER模塊,不能通過(guò)語(yǔ)音讀出
134、該數(shù)字,而且只能通過(guò)搖桿輸入數(shù)字。</p><p><b> 報(bào)告總結(jié)</b></p><p> 在此一周左右的實(shí)訓(xùn)中,我們都對(duì)ARM模擬板有了初步的認(rèn)識(shí),對(duì)其外圍的一些功能模塊也有了一定的了解。從確定課題到最后的測(cè)試也不是那么順利的,在其間我們也遇到了好些困難。在編寫(xiě)程序時(shí),編好的程序無(wú)法寫(xiě)入到ARM中,LCD沒(méi)有顯示。最后在同學(xué)和丁老師的幫助下,我們很好的解決
135、了這個(gè)問(wèn)題。在實(shí)訓(xùn)的過(guò)程中,我們除了ARM還學(xué)到了很多東西。我們明白了要做好任何事情都是需要耐心和恒心的,同時(shí)我們也懂得了團(tuán)隊(duì)合作的意義。在此我要向和我一起努力過(guò)的組員和給予我們支持和幫助的丁老師以及同學(xué)表示誠(chéng)摯的感謝。</p><p><b> 附錄〔左齊標(biāo)題1〕</b></p><p><b> 附錄1:原理圖</b></p>
136、<p><b> 附錄2:源程序</b></p><p> #include "stm32f10x.h"</p><p> #include "LCD/LCD.h"</p><p> #include <stdio.h></p><p> #if
137、def __GNUC__</p><p> /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf</p><p> set to 'Yes') calls __io_putchar() */</p><p> #define P
138、UTCHAR_PROTOTYPE int __io_putchar(int ch)</p><p><b> #else</b></p><p> #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)</p><p> #endif /* __GNUC__ */</p>&
139、lt;p><b> int n=1;</b></p><p><b> int a;</b></p><p><b> int b;</b></p><p><b> int c;</b></p><p><b> int d;&
140、lt;/b></p><p><b> int e;</b></p><p><b> int sum;</b></p><p> int flag=1;</p><p> char s1[30];</p><p> char s2[30];</p>
141、;<p> /* Private function prototypes -----------------------------------------------*/</p><p> void GPIO_Configuration(void);</p><p> void USART_Configuration(void);</p><p&g
142、t; void tran(void);</p><p> void sums(void);</p><p> void ap(void);</p><p> void bp(void);</p><p> void cp(void);</p><p> void dp(void);</p>&
143、lt;p> void ep(void);</p><p> void ah(void);</p><p> void bh(void);</p><p> void ch(void);</p><p> void dh(void);</p><p> void eh(void);</p>
144、<p> /*******************************************************************************</p><p> * Function Name : Delay</p><p> * Description : Delay Time</p><p> * Inpu
145、t : - nCount: Delay Time</p><p> * Output : None</p><p> * Return : None</p><p> * Attention : None</p><p> *****************************
146、**************************************************/</p><p> void Delay (uint32_t nCount)</p><p><b> {</b></p><p> for(; nCount != 0; nCount--);</p><p>&
147、lt;b> }</b></p><p> void FLAG()</p><p><b> {</b></p><p> if(!(GPIOC->IDR & 0x0004))</p><p><b> { </b></p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于微軟speech sdk的中英混合文本朗讀器畢業(yè)設(shè)計(jì)(論文)
- 數(shù)字搶答器畢業(yè)設(shè)計(jì)
- 晶閘管數(shù)字觸發(fā)器畢業(yè)設(shè)計(jì)
- 數(shù)字波形發(fā)生器畢業(yè)設(shè)計(jì)
- 數(shù)字搶答器的畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)文本.pdf
- 畢業(yè)設(shè)計(jì)----數(shù)字搶答器的研究、設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)文本.pdf
- 數(shù)字四路搶答器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--數(shù)字調(diào)頻發(fā)射器
- 多功能數(shù)字調(diào)節(jié)器畢業(yè)設(shè)計(jì)
- 基于multismprotel的數(shù)字搶答器-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---ii數(shù)字低通濾波器的設(shè)計(jì)
- 數(shù)字控制調(diào)頻發(fā)射器畢業(yè)設(shè)計(jì)
- 數(shù)字功放畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----多功能數(shù)字時(shí)鐘畢業(yè)設(shè)計(jì)
- 數(shù)字水印畢業(yè)設(shè)計(jì)
- 數(shù)字水印畢業(yè)設(shè)計(jì)
- 數(shù)字時(shí)鐘畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-數(shù)字時(shí)鐘設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論