2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  **大學(xué)</b></p><p><b>  ***工程學(xué)院</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱: 單片機(jī)原理及應(yīng)用 </p><p>  設(shè)計(jì)題目:

2、 </p><p>  班 級(jí): ************* </p><p>  姓 名: **** 學(xué) 號(hào): ********** </p><p>  指導(dǎo)教師: ****** 評(píng) 分: <

3、/p><p><b>  2013年7月1日</b></p><p><b>  前言</b></p><p>  步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)

4、定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,稱為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。</p><p>  通常電機(jī)的轉(zhuǎn)子為永磁體,當(dāng)電流流過(guò)定子繞組時(shí),定子繞組產(chǎn)生一矢量磁場(chǎng)。該磁場(chǎng)會(huì)帶動(dòng)轉(zhuǎn)子旋轉(zhuǎn)一角度,使得轉(zhuǎn)子的一對(duì)磁場(chǎng)方向與定子的磁場(chǎng)方向一致。當(dāng)定子的矢量磁場(chǎng)旋轉(zhuǎn)一個(gè)角度。轉(zhuǎn)子也

5、隨著該磁場(chǎng)轉(zhuǎn)一個(gè)角度。每輸入一個(gè)電脈沖,電動(dòng)機(jī)轉(zhuǎn)動(dòng)一個(gè)角度前進(jìn)一步。它輸出的角位移與輸入的脈沖數(shù)成正比、轉(zhuǎn)速與脈沖頻率成正比。改變繞組通電的順序,電機(jī)就會(huì)反轉(zhuǎn)。所以可用控制脈沖數(shù)量、頻率及電動(dòng)機(jī)各相繞組的通電順序來(lái)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。</p><p><b>  目錄</b></p><p>  設(shè)計(jì)目的……………………………………………………………2</p&g

6、t;<p>  設(shè)計(jì)要求……………………………………………………………2</p><p>  儀器設(shè)備……………………………………………………………2</p><p>  硬件線路圖及主要芯片說(shuō)明………………………………………2</p><p>  系統(tǒng)工作原理………………………………………………………7</p><p>  程

7、序框圖………………………………………………………… 11</p><p>  程序清單………………………………………………………… 12</p><p>  設(shè)計(jì)體會(huì)………………………………………………………… 17</p><p><b>  一、設(shè)計(jì)目的</b></p><p>  通過(guò)具體小型測(cè)試系統(tǒng)設(shè)計(jì),實(shí)踐單片

8、機(jī)系統(tǒng)設(shè)計(jì)及調(diào)試的全過(guò)程,以加深對(duì)單片機(jī)內(nèi)部結(jié)構(gòu)、功能和指令系統(tǒng)的理解,并進(jìn)一步學(xué)習(xí)單片機(jī)開(kāi)發(fā)系統(tǒng)的應(yīng)用及一些外圍芯片的接口和編程方法,初步掌握單片機(jī)系統(tǒng)的硬、軟件設(shè)計(jì)技術(shù)及調(diào)試技巧。</p><p><b>  設(shè)計(jì)要求</b></p><p>  1) 電機(jī)轉(zhuǎn)速可以平穩(wěn)控制</p><p>  2)通過(guò)鍵盤(pán)和顯示器可以設(shè)置電機(jī)的轉(zhuǎn)速<

9、/p><p>  3)顯示電機(jī)的速度趨勢(shì)</p><p><b>  儀器設(shè)備</b></p><p>  1、單片機(jī)開(kāi)發(fā)試驗(yàn)儀 一套</p><p>  2、“m35sp-5”步進(jìn)電機(jī) 一個(gè)</p><p>  硬件線路圖及主要芯片說(shuō)明</p&g

10、t;<p><b>  單片機(jī)開(kāi)發(fā)試驗(yàn)儀</b></p><p>  STC90C51RD單片機(jī)是新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12 時(shí)鐘/機(jī)器周期和 6 時(shí)鐘/機(jī)器周期可以任意選擇。</p><p><b>  主要特性如下: </b></p><p>  1)

11、. 增強(qiáng)型 9051 單片機(jī),6 時(shí)鐘/機(jī)器周期和 12 時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng) 8051. </p><p>  2). 工作電壓:5.5V~3.3V(5V 單片機(jī))/3.8V~2.0V(3V 單片機(jī)) </p><p>  3). 工作頻率范圍:0~40MHz,相當(dāng)于普通 8051 的 0~80MHz,實(shí)際工作頻率可達(dá) 48MHz </p>&l

12、t;p>  4). 用戶應(yīng)用程序空間為 8K 字節(jié) </p><p>  5). 片上集成 512 字節(jié) RAM</p><p>  6). 通用 I/O 口(32 個(gè))復(fù)位后為: , P1/P2/P3/P4 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為 I/O 口用時(shí),需加上拉電阻。 </p><p>  7). IS

13、P(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器,可通過(guò)串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片</p><p>  8). 具有 EEPROM 功能 </p><p>  9). 具有看門狗功能 </p><p>  10). 共 3 個(gè) 16 位定時(shí)器/計(jì)數(shù)器。即定時(shí)器 T0、T1、T2</p

14、><p>  11). 外部中斷 4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒 </p><p>  12). 通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè) UART </p><p>  13). 工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí)) </p><p>  1

15、4). PDIP 封裝 </p><p>  STC89C52RC 單片機(jī)的工作模式</p><p>  掉電模式:典型功耗<0.1μA,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序空閑模式:典型功耗 2mA </p><p>  正常工作模式:典型功耗 4mA~7mA </p><p>  掉電模式可由外部中斷喚醒,適用于水表、氣表

16、等電池供電系統(tǒng)及便攜設(shè)備 STC89C52RC 引腳功能說(shuō)明</p><p>  VCC(40 引腳):電源電壓 </p><p>  VS S(20 引腳):接地 </p><p>  P0 端口(P0.0~P0.7 P0.7,39~32 引腳):P0 口是一個(gè)漏極開(kāi)路的 8 位雙向 I/O 口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL 負(fù)載,對(duì)端口 P0 寫(xiě)入

17、每個(gè)引腳能驅(qū)動(dòng)寫(xiě)入“1”時(shí),可以作為高阻抗輸入。在訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0 口也可以提供低 8 位 地址和 8 位數(shù)據(jù)的復(fù)用總線 位數(shù)據(jù)的復(fù)用總線。此時(shí),P0 口內(nèi)部上拉電阻有效。在 Flash ROM 在線編程時(shí),P0 端口接收指令字節(jié);而在校驗(yàn)程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。 </p><p>  P1 端口(P1.0~P1.7,1~8 引腳):P1 口是一個(gè)帶內(nèi)部上拉電阻的 8 位

18、雙向 I/O 口。P1 的輸出緩沖器可驅(qū)動(dòng)(吸收或者輸出電流方式)4 個(gè) TTL 輸入。對(duì)端 口寫(xiě)入 1 時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1 口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸出一個(gè)電流(I)。此外,P1.0 和 P1.1 還可以作為定時(shí)器/計(jì)數(shù)器 2 的外部技術(shù)輸入(P1.0/T2和定時(shí)器/計(jì)數(shù)器 2 的觸發(fā)輸入(P1.1/T2EX) 。</p><p>

19、  P2 端口(P2.0~P2.7,21~28 引腳):P2 口是一個(gè)帶內(nèi)部上拉電阻的 8 位雙 向 I/O 端口。P2 的輸出緩沖器可以驅(qū)動(dòng)(吸收或輸出電流方式)4 個(gè) TTL 輸入。 對(duì)端口寫(xiě)入 1 時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,這時(shí)可用作輸入口。 P2 作為輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流(I) 。在訪問(wèn)外部程序存儲(chǔ)器和 16 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行“MOVX @DPTR

20、”指令)時(shí),P2 送出高 8 位地址。在訪問(wèn) 8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如 執(zhí)行“MOVX @R1”指令)時(shí),P2 口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū) 中的 P2 寄存器的內(nèi)容) ,在整個(gè)訪問(wèn)期間不會(huì)改變。</p><p>  在對(duì) Flash ROM 編程和程序校驗(yàn)期間, P2也接收高位地址和一些控制信號(hào)。</p><p>  P3 端口(P3.0~P3.7,10~17 引腳)

21、 :P3 是一個(gè)帶內(nèi)部上拉電阻的 8 位雙向 I/O 端口。P3 的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4 個(gè) TTL 輸入。對(duì)端 口寫(xiě)入 1 時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可用作輸入口。P3 做輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸入一 個(gè)電流(I) 。 在對(duì) Flash ROM 編程或程序校驗(yàn)時(shí),P3 還接收一些控制信號(hào)。P3 口除作為一般 I/O 口外,還有其他一些復(fù)用功能。</p&

22、gt;<p>  RST(9 引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)為有效, 用來(lái)完成單片機(jī)單片機(jī)的復(fù)位初始化操作??撮T狗計(jì)時(shí)完成后,RST 引腳輸出 96 個(gè)晶振周期的高電平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功 能無(wú)效。DISRTO 默認(rèn)狀態(tài)下,復(fù)位高電平有效。 </p><p>  ALE/ ROG (30 引腳) 地址鎖存控制信號(hào) : (ALE)

23、 是訪問(wèn)外部程序存儲(chǔ)器時(shí), 鎖存低 8 位地址的輸出脈沖。在 Flash 編程時(shí),此引腳( ROG)也用作編程輸入 脈沖。 在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部 定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE 脈沖 將會(huì)跳過(guò)。如果需要,通過(guò)將地址位 8EH 的 SFR 的第 0 位置“1” ,ALE 操作將無(wú)效。這 一位置“1” ,ALE 僅在執(zhí)行 MOVX 或 MOV 指令時(shí)有效

24、。否則,ALE 將被微弱拉 高。這個(gè) ALE 使能標(biāo)志位(地址位 8EH 的 SFR 的第 0 位)的設(shè)置對(duì)微控制器處于 外部執(zhí)行模式下無(wú)效。PSEN(29 引腳):PSEN是外部程序存儲(chǔ)器選通信號(hào)。當(dāng) STC89C52RC 從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。</p><p>  EA/VPP (31 引腳):訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)

25、。為使能從 0000H 到 FFFFH 的外部程序存儲(chǔ)器讀取指令, EA必須接 GND。注意加密方式 1 時(shí), EA將內(nèi)部鎖 定位 RESET。為了執(zhí)行內(nèi)部程序指令, EA應(yīng)該接 VCC。在 Flash 編程期間,EA也 接收 12 伏 VPP 電壓。 </p><p>  XTAL1(19 引腳) :振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p>  XTAL2(18 引腳

26、) :振蕩器反相放大器的輸入端。</p><p>  “m35sp-5”步進(jìn)電機(jī)</p><p><b>  主要技術(shù)參數(shù):</b></p><p><b>  相數(shù):四相</b></p><p><b>  電壓:5VDC</b></p><p>&l

27、t;b>  電流:92mA</b></p><p><b>  電阻:800Ω</b></p><p><b>  步距角:7.5°</b></p><p>  空載牽出頻率:800pps</p><p>  空載牽入頻率:500pps</p><p&

28、gt;<b>  減速比:1/64</b></p><p>  牽入轉(zhuǎn)矩:≥78.4mN.m</p><p>  接線指示:A(橙)、B(黃)、C(藍(lán))、D(灰)、E(紅,中點(diǎn)接+5V)</p><p><b>  四相八拍相序表</b></p><p>  如果需要電機(jī)正轉(zhuǎn),只需要從A-AB-B-

29、BC-C-CD-D-DA依次通電即可,反轉(zhuǎn),則需要反過(guò)來(lái)依次通電。</p><p><b>  3、開(kāi)發(fā)板原理圖:</b></p><p><b>  系統(tǒng)工作原理</b></p><p>  本程序包括按鍵處理程序、顯示處理程序、中斷處理程序、數(shù)據(jù)處理程序四個(gè)主要部分</p><p><b&

30、gt;  1、按鍵處理程序</b></p><p>  按鍵處理安排在主程序當(dāng)中,使其處于不斷檢測(cè)狀態(tài),當(dāng)有按鍵按下能夠及時(shí)對(duì)其進(jìn)行相應(yīng)的處理。同時(shí),對(duì)于按鍵還應(yīng)該進(jìn)行消抖處理,避免系統(tǒng)誤動(dòng)作。其主要程序如下: </p><p><b>  if(k1==0)</b></p><p><b>  {</b>

31、;</p><p>  delay(5); //延時(shí)消抖</p><p><b>  if(k1==0)</b></p><p><b>  delay(5);</b></p><p><b>  if(k1==0)</b></p><p&

32、gt;<b>  {</b></p><p><b>  TR0=~TR0;</b></p><p><b>  k++;</b></p><p>  } //啟動(dòng)/停止</p><p><b>  }</b></p>&l

33、t;p>  while(!k1); //等待按鍵釋放</p><p><b>  if(k2==0)</b></p><p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</p><p><b>  if(k

34、2==0)</b></p><p><b>  delay(5);</b></p><p><b>  if(k2==0)</b></p><p>  time=time-1000;</p><p>  } //加速</p><p>  whi

35、le(!k2); //等待按鍵釋放</p><p><b>  if(k3==0)</b></p><p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</p><p><b>  if(k3==0)<

36、/b></p><p><b>  delay(5);</b></p><p><b>  if(k3==0)</b></p><p>  time=time+1000;</p><p>  } //減速</p><p>  whi

37、le(!k3); //等待按鍵釋放</p><p><b>  if(k4==0)</b></p><p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</p><p><b>  if(k4==0)</b&

38、gt;</p><p><b>  delay(5);</b></p><p><b>  if(k4==0)</b></p><p><b>  f++;</b></p><p>  } //正/反轉(zhuǎn)</p><p

39、>  while(!k4); //等待按鍵釋放</p><p><b>  2、中斷處理程序</b></p><p>  中斷程序中安排對(duì)P1口賦值及對(duì)定時(shí)器重新裝入初值,每次進(jìn)入中斷程序時(shí),先判斷是否執(zhí)行反轉(zhuǎn),如是,則送反轉(zhuǎn)編碼,否則,送正轉(zhuǎn)編碼。其主要程序如下: </p><p>  void timer0(

40、)interrupt 1</p><p><b>  {</b></p><p><b>  if(f%2)</b></p><p><b>  {</b></p><p>  P1=FF[j++];</p><p><b>  if(j==

41、8)</b></p><p><b>  j=0;</b></p><p>  } //f為奇數(shù)時(shí)代表反轉(zhuǎn),則送反轉(zhuǎn)編碼到P1口</p><p><b>  else </b></p><p><b>  {</b></p>

42、<p>  P1=ZF[j++];</p><p><b>  if(j==8)</b></p><p><b>  j=0;</b></p><p>  } //否則送正轉(zhuǎn)編碼到P1口</p><p>  TH0=(65536-time)/256;<

43、/p><p>  TL0=(65536-time)%256;//重新裝初值</p><p><b>  }</b></p><p><b>  3、顯示處理程序</b></p><p>  顯示程序則通過(guò)對(duì)相應(yīng)數(shù)碼管的通斷,然后送段碼。以這種方式來(lái)控制其動(dòng)態(tài)顯示,同時(shí)需要主要每個(gè)數(shù)碼管都應(yīng)該延時(shí)亮一

44、段時(shí)間。并且要對(duì)其消隱。以獲得較好的顯示效果。其主要程序如下:</p><p>  void display(uchar a,uchar b,uchar c,uchar d)</p><p><b>  {</b></p><p><b>  if(f%2)</b></p><p><b>

45、;  {</b></p><p>  P2=0x7f; </p><p>  P0=0xbf; //f為奇數(shù)時(shí)代表反轉(zhuǎn),第一個(gè)數(shù)碼管顯示"0"</p><p>  delay(1); </p><p><b>  P0=0xff;</b></p&g

46、t;<p>  } //消隱</p><p><b>  else</b></p><p><b>  {</b></p><p>  P2=0x7f; </p><p>  P0=0x06; //f為偶數(shù)時(shí)代表正轉(zhuǎn),第一個(gè)數(shù)碼管顯示&q

47、uot;1"</p><p>  delay(1); </p><p><b>  P0=0x00;</b></p><p><b>  }</b></p><p>  P2=0xef; </p><p>  P0=SM[a]; //顯示萬(wàn)位</p&g

48、t;<p>  delay(1); </p><p>  P0=0x00; //消隱</p><p>  P2=0xf7; </p><p>  P0=SM[b]; //顯示千位</p><p>  delay(1); </p><p>  P0=0x00; //消隱</

49、p><p><b>  P2=0xfb;</b></p><p>  P0=SM[c]; //顯示百位</p><p><b>  delay(1);</b></p><p>  P0=0x00; //消隱</p><p><b>  P2=0xfd;&

50、lt;/b></p><p>  P0=SM[d]; //顯示十位</p><p><b>  delay(1);</b></p><p>  P0=0x00; //消隱</p><p><b>  P2=0xfe;</b></p><p>  P0=SM

51、[d]; //顯示個(gè)位</p><p><b>  delay(1);</b></p><p>  P0=0x00; //消隱</p><p><b>  }</b></p><p><b>  4、數(shù)據(jù)處理程序</b></p><p> 

52、 通過(guò)對(duì)數(shù)據(jù)進(jìn)行處理來(lái)獲得電機(jī)的轉(zhuǎn)速,可以先計(jì)算出1ms時(shí)電機(jī)的速度,然后通過(guò)改變時(shí)間間隔來(lái)計(jì)算電機(jī)的轉(zhuǎn)速。其主要程序如下:</p><p>  void dispose()</p><p><b>  {</b></p><p>  h=time/10000;</p><p>  w=time/1000%10;<

53、/p><p>  p=time/100%10;</p><p>  q=time/10%10;</p><p>  u=time%10;</p><p><b>  }</b></p><p>  根據(jù)以上四個(gè)主要部分來(lái)把整個(gè)系統(tǒng)劃分成相應(yīng)模塊,有利于提高系統(tǒng)的抗干擾能力。能較好的保證系統(tǒng)運(yùn)行的可靠。

54、</p><p><b>  程序框圖</b></p><p><b>  程序清單</b></p><p>  #include<reg52.h> //頭文件</p><p>  #define uint unsigned int //宏定義&

55、lt;/p><p>  #define uchar unsigned char //宏定義</p><p>  uchar code ZF[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正轉(zhuǎn)編碼表</p><p>  uchar code FF[8]={0x09,0x08,0x0c,0x04,0x06,0x0

56、2,0x03,0x01}; //反轉(zhuǎn)編碼表</p><p>  uchar code SM[]=</p><p><b>  {</b></p><p>  0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0

57、x6f,0x77,0x7c,</p><p>  0x39,0x5e,0x79,0x71</p><p>  }; //數(shù)碼表</p><p>  sbit k1=P3^0; //定義K1為啟動(dòng)/停止按鍵</p><p>  sbit k2=P3^1; //定義

58、K2為減速按鍵</p><p>  sbit k3=P3^2; //定義K3為加速按鍵</p><p>  sbit k4=P3^3; //定義K4為正/反轉(zhuǎn)按鍵</p><p>  uchar j=0;</p><p>  uint time=12000; //time為每?jī)膳闹g的間隔時(shí)間</p&g

59、t;<p>  uint temp2;</p><p>  uchar temp1,h,w,p,q,f;</p><p>  /********************************************************************</p><p>  函數(shù):void delay(uchar z)</p>

60、<p>  功能:1ms延時(shí)函數(shù)(12M晶振下)</p><p>  ********************************************************************/</p><p>  void delay(uchar z)</p><p><b>  { </b></p>

61、<p>  uchar s,v;</p><p>  for(s=0;s<z;s++)</p><p>  for(v=0;v<125;v++); //一個(gè)for循環(huán)8個(gè)機(jī)器周期(125*8*1us=1ms)</p><p><b>  }</b></p><p>  /***********

62、*********************************************************</p><p>  函數(shù):void display(uchar a,uchar b,uchar c,uchar d)</p><p><b>  功能:顯示函數(shù)</b></p><p>  ********************

63、************************************************/</p><p>  void display(uchar a,uchar b,uchar c,uchar d)</p><p><b>  {</b></p><p><b>  if(f%2)</b></p>

64、<p><b>  {</b></p><p>  P2=0x7f; </p><p>  P0=0xbf; //f為奇數(shù)時(shí)代表反轉(zhuǎn),第一個(gè)數(shù)碼管顯示"0"</p><p>  delay(1); </p><p><b>  P0=0xff;

65、</b></p><p>  } //消隱</p><p><b>  else</b></p><p><b>  {</b></p><p>  P2=0x7f; </p><p>  P0=0x06; //f為

66、偶數(shù)時(shí)代表正轉(zhuǎn),第一個(gè)數(shù)碼管顯示"1"</p><p>  delay(1); </p><p><b>  P0=0x00;</b></p><p><b>  }</b></p><p>  P2=0xef; </p><p>  P0=SM[a

67、]; //顯示萬(wàn)位</p><p>  delay(1); </p><p>  P0=0x00; //消隱</p><p>  P2=0xf7; </p><p>  P0=SM[b]; //顯示千位</p><p>  delay(1); </p><p>  P0=

68、0x00; //消隱</p><p><b>  P2=0xfb;</b></p><p>  P0=SM[c]; //顯示百位</p><p><b>  delay(1);</b></p><p>  P0=0x00; //消隱</p><p>&l

69、t;b>  P2=0xfd;</b></p><p>  P0=SM[d]; //顯示十位</p><p><b>  delay(1);</b></p><p>  P0=0x00; //消隱</p><p><b>  P2=0xfe;</b></p>

70、<p>  P0=SM[d]; //顯示個(gè)位</p><p><b>  delay(1);</b></p><p>  P0=0x00; //消隱</p><p><b>  }</b></p><p>  /******************************

71、**************************************</p><p>  函數(shù):void dispose()</p><p>  功能:數(shù)值處理函數(shù)********************************************************************/</p><p>  void dispose()<

72、/p><p><b>  {</b></p><p>  h=time/10000;</p><p>  w=time/1000%10;</p><p>  p=time/100%10;</p><p>  q=time/10%10;</p><p>  u=time%10;&

73、lt;/p><p><b>  }</b></p><p>  /********************************************************************</p><p>  函數(shù):void main()</p><p>  功能:主函數(shù)********************

74、************************************************/</p><p>  void main()</p><p><b>  {</b></p><p><b>  uchar k; </b></p><p>  TMOD=0x01;

75、 //定義定時(shí)器0工作方式1</p><p>  EA=1; //開(kāi)總中斷</p><p>  ET0=1; //開(kāi)定時(shí)器0中斷</p><p>  TH0=(65536-time)/256;</p><p>  TL0=(65536-time)%256;

76、 //裝定時(shí)器初值</p><p>  TR0=1; //開(kāi)定時(shí)器0</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  if(k1==0)</b></p>

77、<p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</p><p><b>  if(k1==0)</b></p><p><b>  delay(5);</b></p><p><b>  if(k1=

78、=0)</b></p><p><b>  {</b></p><p><b>  TR0=~TR0;</b></p><p><b>  k++;</b></p><p>  } //啟動(dòng)/停止</p><p><b

79、>  }</b></p><p>  while(!k1); //等待按鍵釋放</p><p><b>  if(k2==0)</b></p><p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</

80、p><p><b>  if(k2==0)</b></p><p><b>  delay(5);</b></p><p><b>  if(k2==0)</b></p><p>  time=time-1000;</p><p>  }

81、 //加速</p><p>  while(!k2); //等待按鍵釋放</p><p><b>  if(k3==0)</b></p><p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</p>&l

82、t;p><b>  if(k3==0)</b></p><p><b>  delay(5);</b></p><p><b>  if(k3==0)</b></p><p>  time=time+1000;</p><p>  }

83、 //減速</p><p>  while(!k3); //等待按鍵釋放</p><p><b>  if(k4==0)</b></p><p><b>  {</b></p><p>  delay(5); //延時(shí)消抖</p><p

84、><b>  if(k4==0)</b></p><p><b>  delay(5);</b></p><p><b>  if(k4==0)</b></p><p><b>  f++;</b></p><p>  }

85、 //正/反轉(zhuǎn)</p><p>  while(!k4); //等待按鍵釋放</p><p>  dispose(); </p><p><b>  if(k%2)</b></p><p>  display(0,0,0,0); //停止時(shí)顯示00.00</p>

86、<p><b>  else</b></p><p>  display(h,w,p,q); //正常運(yùn)轉(zhuǎn)時(shí)調(diào)用顯示函數(shù)</p><p><b>  }</b></p><p><b>  }</b></p><p>  /******************

87、**************************************************</p><p>  函數(shù):void timer0() interrupt 1</p><p>  功能:定時(shí)器0中斷處理函數(shù)********************************************************************/</p>&l

88、t;p>  void timer0()interrupt 1</p><p><b>  {</b></p><p><b>  if(f%2)</b></p><p><b>  {</b></p><p>  P1=FF[j++];</p><p

89、><b>  if(j==8)</b></p><p><b>  j=0;</b></p><p>  } //f為奇數(shù)時(shí)代表反轉(zhuǎn),則送反轉(zhuǎn)編碼到P1口</p><p><b>  else </b></p><p><b>  

90、{</b></p><p>  P1=ZF[j++];</p><p><b>  if(j==8)</b></p><p><b>  j=0;</b></p><p>  } //否則送正轉(zhuǎn)編碼到P1口</p><p>  TH0=

91、(65536-time)/256;</p><p>  TL0=(65536-time)%256;//重新裝初值</p><p><b>  }</b></p><p><b>  八、設(shè)計(jì)體會(huì)</b></p><p>  通過(guò)本次的課程設(shè)計(jì),使我對(duì)單片機(jī)有了更加深入的認(rèn)識(shí)。因?yàn)橛辛酥癈語(yǔ)言的

92、基礎(chǔ),所以這次的軟件設(shè)計(jì)比較沒(méi)有那么困難。在主函數(shù)編寫(xiě)好之后,再單獨(dú)編寫(xiě)各個(gè)子函數(shù),通過(guò)主函數(shù)對(duì)子函數(shù)的調(diào)用可以讓程序結(jié)構(gòu)看起來(lái)更有層次,更簡(jiǎn)潔,更清楚。同時(shí),這次的課程設(shè)計(jì)讓我對(duì)STC90C51RD單片機(jī)芯片的硬件結(jié)構(gòu)有了更深的認(rèn)識(shí),平時(shí)課堂上學(xué)到的那么多關(guān)于這款芯片的硬件結(jié)構(gòu)知識(shí)終于在這次的課程設(shè)計(jì)上派上了用場(chǎng)。</p><p>  總之,這次的課程設(shè)計(jì)是對(duì)我們所學(xué)知識(shí)的綜合考驗(yàn),我從這次的課程設(shè)計(jì)中學(xué)到了很

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論