版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 電子課程設(shè)計報告</b></p><p> 設(shè)計題目:自行車?yán)锍田@示</p><p> 專業(yè): </p><p> 班級: </p><p> 學(xué)號:
2、 </p><p> 姓名: </p><p> 指導(dǎo)教師: </p><p> 設(shè)計時間: 2011.6.7——2011.6.19 </p><p> 題目:自行車?yán)锍田@
3、示</p><p><b> 一、設(shè)計目的</b></p><p> 隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運(yùn)輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強(qiáng)大,能給人們帶來更多的方便。自行車?yán)锍趟俣缺碜鳛樽孕熊嚨囊淮筝o助工具也正是隨著這個要求而迅速發(fā)展的,其功能也逐漸從單一的里程顯示發(fā)展到速度、時間顯示,甚至有的還具
4、有測量騎車人的心跳、顯示騎車人熱量消耗等功能。本設(shè)計采用MCS-51系列單片機(jī)設(shè)計一種體積小、操作簡單的便攜式自行車的速度里程表,它能自動地顯示當(dāng)前自行車行走的距離及運(yùn)行的速度。</p><p><b> 二、設(shè)計要求</b></p><p> 在Proteus中畫出原理圖或使用實物,編制程序,實現(xiàn)以下功能:</p><p> (1)理解
5、自行車?yán)锍唐鞯墓ぷ髟怼?lt;/p><p> ?。?)以按鍵或者pulse脈沖源作為輸入。編制驅(qū)動程序,使用液晶或者八段發(fā)光字符管顯示當(dāng)前自行車?yán)锍獭?lt;/p><p> ?。?)有清除按鍵,按下該按鍵,從0開始。</p><p><b> 三、方案設(shè)計與論證</b></p><p> 自行車?yán)锍田@示的組成方框圖:<
6、;/p><p> 圖1 系統(tǒng)原理結(jié)構(gòu)圖</p><p><b> 設(shè)計方案如下:</b></p><p> 方案一、使用光敏電阻對里程進(jìn)行測量。將光敏電阻安裝在自行車前叉的一側(cè),在同等高度的另一側(cè)安上一個高亮度的發(fā)光二極管。在同等高度的輻條上貼上一圈黑色材料,并在黑色材料上打上等間距的小孔,這樣當(dāng)小孔經(jīng)過光敏電阻時,光敏電阻根據(jù)光電流的變化發(fā)
7、出脈沖,從而測量里程。 方案二、利用編碼器對車輪的圈數(shù)進(jìn)行測量。將旋轉(zhuǎn)編碼器安裝在車軸上,這樣每當(dāng)車輪轉(zhuǎn)過一定的距離編碼器就會發(fā)出一個脈沖。利用脈沖數(shù)對里程進(jìn)行測量。 方案三、利用霍爾元件對里程進(jìn)行測量。將霍爾元件安裝在車前叉的一側(cè),在車圈側(cè)面等間隔貼多個磁片。當(dāng)磁片經(jīng)過霍爾元件時,霍爾元件輸出端的電壓發(fā)生變化產(chǎn)生脈沖,單片機(jī)根據(jù)脈沖數(shù)來計算里程。</p><p><b> 本設(shè)計采用
8、方案三。</b></p><p> 四、設(shè)計原理和電路圖如下</p><p> 本次里程表的設(shè)計,硬件電路主要由霍爾傳感器電路,里程指示電路,里程數(shù)據(jù)存儲電路,時鐘電路,LED顯示模塊及74LS07驅(qū)動器構(gòu)成。</p><p> ?。?)霍爾傳感器電路</p><p> 霍爾傳感器電路圖如下圖2所示。</p>
9、<p><b> 圖2</b></p><p><b> ?。?)里程指示電路</b></p><p> 霍爾傳感器發(fā)出一個低電平脈沖,里程顯示時四個數(shù)碼管點亮后開始計數(shù),表明電動自行車正在行駛中,一盞指示燈一直閃爍著。電路如圖3所示。</p><p><b> 圖3</b></
10、p><p> ?。?)里程數(shù)據(jù)存儲電路</p><p> 里程數(shù)據(jù)的存儲電路是本次設(shè)計的關(guān)鍵電路,單片機(jī)首先向AT24C01發(fā)送寫信號,當(dāng)確認(rèn)后從單片機(jī)內(nèi)部的數(shù)據(jù)儲存單元提取數(shù)據(jù)然后向AT24C01的內(nèi)部地址傳送數(shù)據(jù)。</p><p> 當(dāng)顯示里程時,單片機(jī)首先向AT24C01發(fā)送讀信號,然后確認(rèn)后,單片機(jī)從AT24C01內(nèi)部的地址向單片機(jī)的讀出單元字節(jié)讀出數(shù)據(jù),供
11、顯示所用。因此,最終可保證掉電時數(shù)據(jù)不丟失。</p><p> 圖4 里程數(shù)據(jù)存儲電路</p><p><b> ?。?)時鐘電路</b></p><p><b> 圖5</b></p><p> 在圖3.4.4-1的電路中,電容器C1和C2對振蕩頻率有微調(diào)作用,通常的范圍:30±1
12、0PF;石英晶體選擇6MHZ或12MHZ都可以。</p><p> ?。?)LED顯示模塊電路及74 LS07驅(qū)動器 </p><p> LED顯示器采用動態(tài)顯示,用74LS07驅(qū)動共陰極LED數(shù)碼管。LED顯示模塊電路圖,</p><p> 如圖6-1所示。LED數(shù)碼管結(jié)構(gòu)圖,如圖6-2(a),(b)為共陰極型,(c)為共陽極型。</p><
13、;p><b> 圖6-1</b></p><p><b> 圖6-2</b></p><p> OC門驅(qū)動器用7407,7407 即TTL 集電極開路六正相高壓驅(qū)動器.當(dāng)7407輸出低電平時,沒有電流流過LED,當(dāng)7407輸出為開路狀態(tài)時,電流經(jīng)100限流電阻流入LED顯示器,每個七段LED的公共端都接一個7407驅(qū)動器。</p
14、><p> 7407模型如圖6-3:</p><p><b> 圖6-3 </b></p><p> 7407引腳如圖6-4:</p><p><b> 圖6-4</b></p><p> ?。?)89c52單片機(jī)管腳圖</p><p> 如圖為
15、核心單片機(jī)AT89C52管腳圖</p><p><b> 圖7</b></p><p><b> 五、元件清單</b></p><p><b> 六、硬件制作與調(diào)試</b></p><p> 測速,首先要解決是采樣的問題。使用單片機(jī)進(jìn)行測速,可以使用簡單的脈沖計數(shù)法。只
16、要轉(zhuǎn)軸每旋轉(zhuǎn)一周,產(chǎn)生一個或固定的多個脈沖,將脈沖送入單片機(jī)中進(jìn)行計算,即可獲得轉(zhuǎn)速的信息。常用的測速元件有霍爾傳感器、光電傳感器和光電編碼器。里程測量傳感器的選擇也有以下幾種方案:使用光敏電阻對里程進(jìn)行測量、利用編碼器對車輪的圈數(shù)進(jìn)行測量、利用霍爾傳感器對里程進(jìn)行測量、利用干簧管型傳感器測量里程。</p><p> 光敏電阻對光特別敏感,當(dāng)白天行駛時,外界光源將導(dǎo)致光敏電阻發(fā)出錯誤信號;光敏電阻對環(huán)境的要求相
17、當(dāng)高,如果光敏或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行準(zhǔn)確測量;而編碼器必須安裝在車軸上,安裝較為復(fù)雜;霍爾元件或干簧管不但不受天氣的影響,即使被泥沙或灰塵覆蓋也不會有影響,而且安裝方便。所以本設(shè)計采用霍爾元件對里程與速度進(jìn)行測量,既簡單易行,又經(jīng)濟(jì)適用。</p><p> 使用霍爾傳感器獲得脈沖信號,其機(jī)械結(jié)構(gòu)也可以做得較為簡單,只要在轉(zhuǎn)軸的齒輪盤上粘上一粒磁鋼,霍爾元件固定在前叉上,當(dāng)車子轉(zhuǎn)動時
18、霍爾元件靠近磁鋼,就有信號輸出,轉(zhuǎn)軸旋轉(zhuǎn)時,就會不斷地產(chǎn)生脈沖信號輸出。如果在齒輪盤上粘上多粒磁鋼,可以實現(xiàn)旋轉(zhuǎn)一周,獲得多個脈沖輸出。在粘磁鋼時要注意,霍爾傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出,可以換一個方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場應(yīng)用廣泛。</p><p> 霍爾傳感器是對磁敏感的傳感元件,常用于信號采集的有A44E,該傳感器是一個3端器件,外形與三極管相
19、似,只要接上電源、地,即可工作,工作電壓范圍寬,使用非常方便。A44E的外形如圖7所示。</p><p> 1-Vcc 2-GND 3-OUT</p><p> 圖8 A44E外形圖</p><p><b> 七、設(shè)計總結(jié)</b></p><p> 通過仿真證明本次設(shè)計符合設(shè)計的要求,能實現(xiàn)對里程、速度的顯示
20、,功能性較強(qiáng),具有一定的實踐意義,將會在許多場合應(yīng)用。但也有一些不足存在,當(dāng)顯示速度時,若自行車轉(zhuǎn)動太快,顯示器會顯示過快,應(yīng)該將速度定時顯示,使人們能夠清楚地看出速度。</p><p> 本系統(tǒng)操作簡單,易于實現(xiàn)。硬件部分采用的器件應(yīng)用較廣泛,且價格低廉,如AT89C52單片機(jī)、D觸發(fā)器74LS74、存儲器24C02、驅(qū)動器74LS244等。這就意味著所有的器件功能比較強(qiáng)大、穩(wěn)定。尤其是本次設(shè)計的核心元件AT
21、89C52單片機(jī),軟件技術(shù)成熟,并具有種類齊全的支持芯片。這類微處理器既可用作控制器又適合于做數(shù)據(jù)處理,而且成本也甚是低廉。軟件采用模塊化設(shè)計,可讀性強(qiáng),方便二次開發(fā)。</p><p> 本次設(shè)計電路簡單、低成本,而且能夠滿足人們對高性能、多功能自行車的要求,可在很多里程/速度測量場合使用,具有廣泛的應(yīng)用前景。</p><p><b> 八、參考文獻(xiàn)</b><
22、;/p><p> [1]《電子技術(shù)課程設(shè)計指導(dǎo)》 彭介華編,高等教育出版社,1997年10月</p><p> [2]《電子系統(tǒng)設(shè)計》,何小艇等編,浙江大學(xué)出版社,2000年</p><p> [3]《集成電子基礎(chǔ)教程》,鄭家龍、王小海、章安元編,高教出版社,2002年5月</p><p> [4]《現(xiàn)代電子學(xué)及應(yīng)用》,童詩白、徐振英編,
23、高等教育出版社,1994年</p><p> [5]《數(shù)字電子技術(shù)》童詩白編著高等教育出版社 2001年</p><p><b> 附錄1 總體電路</b></p><p><b> 附錄 2 程序清單</b></p><p> (1)鍵盤掃描部分程序</p><p&g
24、t; #include<reg52.h></p><p> #include<math.h></p><p> #include<stdio.h></p><p> #include<bin2hex.h></p><p> #include<intrins.h></p
25、><p> #include<absacc.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int </p><p> Sbit k0=p1.0;</p&g
26、t;<p> Sbit k1=p1.1;</p><p> Sbit k2=p1.2;</p><p><b> keyscan()</b></p><p><b> {</b></p><p> If (k0==0)</p><p><b>
27、; uchar a;</b></p><p> for(a=255;a>0;a--) //延時</p><p><b> {}</b></p>
28、<p> if(k0==0) //有鍵按下</p><p> measure(); //處理程序</p><p> else if
29、 (k1==0)</p><p><b> uchar a;</b></p><p> for(a=255;a>0;a--) //延時</p><p&g
30、t;<b> {}</b></p><p> if(k1==0) //有鍵按下</p><p> measure();</p><
31、p> else if (k2==0)</p><p><b> uchar a;</b></p><p> for(a=255;a>0;a--) //延時</
32、p><p><b> {}</b></p><p> if(k2==0) //有鍵按下</p><p> measure();&l
33、t;/p><p><b> main()</b></p><p> { while(1)</p><p> {P0=keyscan();</p><p><b> while(1)</b></p><p><b> ;</b>
34、</p><p><b> }</b></p><p><b> }</b></p><p> ?。?) 存儲器部分程序</p><p> <absacc.h></p><p> #include<reg51.h></p><
35、;p> #include<intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define _Nop() _nop_() /*定義空指令*/</p><p> sbit scl=
36、P1^1;</p><p> sbit sda=P1^2;</p><p> sbit DOG=P1^7; </p><p> sbit led=P0^7;</p><p> sbit led_1=P0^3;</p><p> sbit led_2=P0^4;</p><p> s
37、bit led_3=P0^5;</p><p> sbit led_4=P0^6;</p><p> uint LED1_data,LED2_data,LED3_data,LED4_data,LED_data;</p><p> uchar code led_segment[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0x
38、F8,0x80,0x90,0x0,0xFF};</p><p> uchar x24c02_read(uchar address);</p><p> void x24c02_write(uchar address,uchar info); </p><p> void x24c02_init(); </p><p> void de
39、lay1(uchar x);</p><p> void flash();</p><p> void x24c01_init();</p><p> void start();</p><p> void stop();#include</p><p> void writex(uchar j);</
40、p><p> uchar readx();</p><p> void clock();</p><p> void clrscr(void);</p><p><b> /*延時程序*/</b></p><p> void delay1(uchar x)</p><p&
41、gt; { uint i;</p><p> for(i=0;i<x;i++);</p><p><b> DOG=~DOG;</b></p><p><b> }</b></p><p> /*E2prom工作指示程序*/</p><p> void
42、flash()</p><p> { uchar u;</p><p> DOG=~DOG;}</p><p> /*E2prom初始化程序*/</p><p> void x24c02_init()</p><p> { scl=1; flash(); sda=1; flash();</p&g
43、t;<p><b> }</b></p><p> /*E2prom起始信號程序*/</p><p> void start()</p><p> { sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();</p><p>
44、<b> }</b></p><p> /*E2prom結(jié)束信號程序*/</p><p> void stop()</p><p> { sda=0; flash(); scl=1; flash(); sda=1; flash();</p><p><b> }</b></p&g
45、t;<p> /*E2prom寫控制程序*/</p><p> void writex(uchar j)</p><p> { uchar i,temp;</p><p><b> temp=j;</b></p><p> for (i=0;i<8;i++)</p><
46、;p> {temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();</p><p><b> }</b></p><p> scl=0; flash(); sda=1; flash();</p><p><b> }</b><
47、;/p><p> /*E2prom讀控制程序*/</p><p> uchar readx()</p><p> { uchar i,j,k=0;</p><p> scl=0; flash(); sda=1;</p><p> for (i=0;i<8;i++){</p><p&g
48、t; flash(); scl=1; flash();</p><p> if (sda==1) j=1;</p><p><b> else j=0;</b></p><p> k=(k<<1)|j; scl=0;</p><p><b> }</b></p>
49、<p> flash(); return(k);</p><p><b> }</b></p><p> /*E2prom時鐘發(fā)生程序*/</p><p> void clock()</p><p> { uchar i=0;</p><p> scl=1; flash(
50、);</p><p> while ((sda==1)&&(i<255))i++;</p><p> scl=0; flash();</p><p><b> }</b></p><p> /*E2prom讀程序*/</p><p> uchar x24c02_re
51、ad(uchar address)</p><p> { uchar i;</p><p> start(); writex(0xa0);</p><p> clock(); writex(address);</p><p> clock(); start();</p><p> writex(0xa1);
52、 clock();</p><p> i=readx(); stop();</p><p> delay1(10);</p><p> return(i);</p><p><b> }</b></p><p> /*E2prom寫地址和內(nèi)容程序*/</p><p&g
53、t; void x24c02_write(uchar address,uchar info)</p><p><b> { EA=0;</b></p><p> start(); writex(0xa0);</p><p> clock(); writex(address);</p><p> clock(
54、); writex(info);</p><p> clock(); stop();</p><p><b> EA=1;</b></p><p> delay1(50);</p><p><b> }</b></p><p><b> /*延時子程序*/
55、</b></p><p> void delay(uint v)</p><p> {while(v!=0)v--;</p><p><b> }</b></p><p> void display()</p><p><b> {</b></p&
56、gt;<p><b> led=1;</b></p><p><b> led_1=1;</b></p><p><b> led_2=1;</b></p><p><b> led_3=1;</b></p><p><b>
57、; led_4=1;</b></p><p> delay(50);</p><p> P2=LED_data;</p><p><b> led=0;</b></p><p> delay(50);</p><p> P2=led_segment[LED1_data];&
58、lt;/p><p><b> led=1;</b></p><p><b> led_1=0;</b></p><p> delay(50);</p><p> P2=led_segment[LED2_data];</p><p><b> led_1=1;&
59、lt;/b></p><p><b> led_2=0;</b></p><p> delay(50);</p><p> P2=led_segment[LED3_data];</p><p><b> led_2=1;</b></p><p><b&g
60、t; led_3=0;</b></p><p> delay(50);</p><p> P2=led_segment[LED4_data];</p><p><b> led_3=1;</b></p><p><b> led_4=0;</b></p><
61、p> delay(50);</p><p><b> }</b></p><p><b> main()</b></p><p><b> {</b></p><p> delay(100);x24c02_init(); </p><p>
62、;<b> while(1)</b></p><p><b> {</b></p><p> x24c02_write(0x1,2);</p><p> LED1_data=x24c02_read(0x1);</p><p> x24c02_write(0x2,2);</p>
63、<p> LED2_data=x24c02_read(0x2);</p><p> x24c02_write(0x3,2);</p><p> LED3_data=x24c02_read(0x3);</p><p> LED4_data=3;</p><p> LED_data=0xFF;</p><
64、p> display();</p><p><b> }</b></p><p><b> }</b></p><p><b> ?。?)顯示部分程序</b></p><p> #include<reg51.h></p><p>
65、; #include<intrins.h></p><p> #include<stdio.h></p><p> #include<string.h></p><p> #define UN unsigned char</p><p> UN read_1byte();</p&
66、gt;<p> void write_1byte(unsigned char x);</p><p> void WriteToChip(UN a,b);</p><p> void read(UN h,l,d);</p><p> void JiaMi51();</p><p> void JiaMi53
67、();</p><p> void ck(UN x);</p><p> void csf();</p><p> UN d10[4];</p><p> void del05s();</p><p> UN btl_bz;</p><p><b> UN ic
68、xh;</b></p><p> unsigned int AllByte;//需讀出的字節(jié)數(shù)不16位</p><p> sbit lsledcs =P3^7;</p><p> void delay();</p><p> UN zh_adh8252r(UN x);</p>
69、<p> UN zh_adh8252w(UN x);</p><p> sfr16 DPTR=0x82;</p><p> sbit ACC0=ACC^0;</p><p> sbit ACC1=ACC^1;</p><p> sbit
70、 ACC2=ACC^2;</p><p> sbit ACC3=ACC^3;</p><p> sbit ACC4=ACC^4;</p><p> sbit ACC5=ACC^5;</p><p> sb
71、it ACC6=ACC^6;</p><p> sbit ACC7=ACC^7;</p><p> unsigned char bdata bm;</p><p> sbit bm0=bm^0;</p><p> sbit bm1=bm^1
72、;</p><p> sbit bm2=bm^2</p><p> sbit bm3=bm^3;</p><p> sbit bm4=bm^4;</p><p> sbit bm5=bm^5;</p><p> sbit bm6=bm^6</p
73、><p> sbit bm7=bm^7;</p><p> UN data rmem[6]={0xff,0xff,0xff,0xff,0xff,0xff};</p><p> UN code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//0-9</p><
74、;p> 0x88,0x83,0xa7,0xa1,0x86,0x8e}</p><p> void main()</p><p> { unsigned int i,j;</p><p><b> csf()</b></p><p><b> while(1)</b&
75、gt;</p><p><b> {</b></p><p><b> P0=0xff;</b></p><p> lsledcs=1;</p><p><b> j=0;</b></p><p> while(j!=30</p>
76、<p> { i=0;</p><p><b> do{</b></p><p> P0=ledcode[0];</p><p><b> P1=0xfe;</b></p><p>&
77、lt;b> delay();</b></p><p> P0=ledcode[1];</p><p><b> P1=0xfd;</b></p><p><b> delay();</b></p><p> P0=ledcode[2];</p><p&
78、gt;<b> P1=0xfb</b></p><p><b> delay();</b></p><p> P0=ledcode[3]</p><p><b> P1=0xf7;</b></p><p><b> delay();</b><
79、;/p><p><b> i++;}</b></p><p> while(i!=10);</p><p><b> j++;</b></p><p><b> }</b></p><p><b> P1=0xff;</b>&
80、lt;/p><p><b> del05s();</b></p><p> ///////////////////</p><p><b> j=0;</b></p><p> while(j!=30)</p><p><b> {</b><
81、/p><p><b> i=0;</b></p><p><b> do{</b></p><p> P0=ledcode[4];</p><p><b> P1=0xfe;</b></p><p><b> delay();</b
82、></p><p> P0=ledcode[5];</p><p><b> P1=0xfd</b></p><p><b> delay();</b></p><p> P0=ledcode[6];</p><p><b> P1=0xfb;<
83、;/b></p><p><b> delay();</b></p><p> P0=ledcode[7];</p><p><b> P1=0xf7;</b></p><p><b> delay();</b></p><p><b
84、> i++;}</b></p><p> while(i!=10);</p><p><b> j++;</b></p><p><b> }</b></p><p><b> P1=0xff;</b></p><p><
85、;b> del05s();</b></p><p> ///////////////////</p><p><b> j=0</b></p><p> while(j!=30)</p><p><b> {</b></p><p><b&g
86、t; i=0;</b></p><p><b> do{</b></p><p> P0=ledcode[8];</p><p><b> P1=0xfe;</b></p><p><b> delay()</b></p><p>
87、 P0=ledcode[9];</p><p><b> P1=0xfd;</b></p><p><b> delay();</b></p><p> P0=ledcode[10];</p><p><b> P1=0xfb;</b></p><
88、p><b> delay();</b></p><p> P0=ledcode[11];</p><p><b> P1=0xf7;</b></p><p><b> delay();</b></p><p><b> i++;}</b>&
89、lt;/p><p> while(i!=10);</p><p><b> j++;</b></p><p><b> }</b></p><p><b> P1=0xff;</b></p><p> del05s();[強(qiáng)力單片機(jī)技術(shù)項目交易網(wǎng)]
90、</p><p> //////////////////[強(qiáng)力單片機(jī)技術(shù)項目交易網(wǎng)]</p><p><b> j=0;</b></p><p> while(j!=30)</p><p><b> {</b></p><p><b> i=0;</
91、b></p><p><b> do{</b></p><p> P0=ledcode[12];[強(qiáng)力單片機(jī)技術(shù)項目交易網(wǎng)</p><p><b> P1=0xfe;</b></p><p><b> delay();</b></p><p&g
92、t; P0=ledcode[13];[強(qiáng)力單片機(jī)技術(shù)項目交易網(wǎng)</p><p><b> P1=0xfd;</b></p><p><b> delay();</b></p><p> P0=ledcode[14];</p><p><b> P1=0xfb;</b>
93、</p><p><b> delay();</b></p><p> P0=ledcode[15];[強(qiáng)力單片機(jī)技術(shù)項目交易網(wǎng)]</p><p><b> P1=0xf7;</b></p><p><b> delay();</b></p><p&
94、gt;<b> i++;}</b></p><p> while(i!=10);</p><p><b> j++;</b></p><p><b> }</b></p><p> P1=0xff;[強(qiáng)力單片機(jī)技術(shù)項目交易網(wǎng)]</p><p>
95、<b> del05s();</b></p><p><b> P0=0x00;</b></p><p> P1=0xff;lsledcs=0;</p><p> del05s();del05s(); lsledcs
96、=1;</p><p><b> del05s();</b></p><p><b> }</b></p><p><b> }</b></p><p> void csf()</p><p><b> {</b><
97、/p><p> TMOD=0x20;TH1=0xfd;TL1=0xfd;SCON=0x50;PCON|=0x80;TR1=1;</p><p><b> EA=1;</b></p><p><b> delay();</b></p><p><b> ES=0;</b>&l
98、t;/p><p> SBUF=0xf0;while(TI==0){;}TI=0;</p><p> SBUF=0x01;while(TI==0){;}TI=0;</p><p> SBUF=0x02;while(TI==0){;}TI=0;</p><p> SBUF=0x03;while(TI==0){;}TI=0;ES=1;
99、;}</p><p> /*################################串口*/</p><p> void surt() interrupt 4</p><p> {UN surti; unsigned int cc1;</p><p><b> surti=0;</b></p>
100、<p><b> RI=0;</b></p><p> d10[surti]=SBUF;</p><p><b> do</b></p><p> {cc1=0xffff;</p><p><b> surti++;</b></p><
101、;p> while(RI==0){cc1--;if(cc1==0){goto surtint;}}</p><p> RI=0;d10[surti]=SBUF;}</p><p> while(surti!=3);</p><p> surtint:;ES=1;</p><p><b> }</b><
102、;/p><p> [void delay()</p><p> {unsigned int kk=0xff;</p><p> do{_nop_();kk--;}</p><p> while(kk!=0);</p><p><b> }</b></p><p>
103、void del05s()</p><p> {unsigned int kk=0xefff;</p><p> do{_nop_();kk--;}</p><p> while(kk!=0);</p><p><b> }</b></p><p> ?。?) 頻率測量部分程序</p
104、><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit bita=P3^3;</p><p> sbit bitb=P3^4;</p
105、><p> sbit bitc=P3^5;</p><p> sbit bitd=p3^6;/*四位數(shù)abcd */</p><p> uint sum=0;/*里程數(shù) */</p><p><b> uint k=0;</b></p><p> uint store[7]={0,0,0,0
106、,0,0,0};</p><p> uchar equal[7]={0,0,0,0,0,0,0};</p><p> code uchar dispcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,</p><p> 0x7d,0x07,0x7f,0x6f};</p><p> uchar dispbit
107、[3]={0,0,0,0};</p><p> void disp();</p><p> void measure();</p><p> void mdelay(unsigned int Delay);</p><p> void mlint0() interrupt 0</p><p><b>
108、 { TR0=1;</b></p><p><b> TH0=0Xe4;</b></p><p><b> TL0=0x00;</b></p><p><b> flag=1;</b></p><p><b> }</b></p
109、><p> void timer0() interrupt 1</p><p><b> {</b></p><p><b> TH0=0xe4;</b></p><p><b> TL0=0x00;</b></p><p><b> f
110、lag1=1;</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> uint j=500;</p><p><b> do</b></
111、p><p><b> {</b></p><p><b> EA=0;</b></p><p><b> P1=0x3f;</b></p><p> bita=bitb=bitc=bitd=1;/*開機(jī)后顯示全零 */</p><p> /* md
112、elay(1);</p><p> /* }while(j--);/*待脈沖穩(wěn)定后再檢測 */</p><p><b> SP=0x60;</b></p><p><b> IE=0x83;</b></p><p><b> IP=0x1e;</b></p>
113、;<p> TCON=0x05;</p><p> TMOD=0x01;</p><p><b> TH0=0xe4;</b></p><p> TL0=0x00; /*計數(shù)5336 */</p><p><b> while(1)</b></p><p&
114、gt;<b> {</b></p><p><b> disp();</b></p><p> /* if(flag)*/</p><p> measure();</p><p><b> }</b></p><p><b> }&
115、lt;/b></p><p> void disp()</p><p><b> {</b></p><p><b> uchar k;</b></p><p> bita=1;bitb=bitc=bitd=0;</p><p> P1=dispcode[di
116、spbit[0]];</p><p> for(k=0;k<40;k++);</p><p> bita=bitc=bitd=0;bitb=1;</p><p> P1=dispcode[dispbit[1]];</p><p> for(k=0;k<40;k++);</p><p> bita=
117、bitb=bitd=0;bitc=1;</p><p> P1=dispcode[dispbit[2]];</p><p> for(k=0;k<40;k++);</p><p> bita=bitb=bitc=0;bitd=1;</p><p> P1=dispcode[dispbit[2]];</p><
118、p> for(k=0;k<40;k++);</p><p><b> }</b></p><p> void measure()</p><p><b> {</b></p><p><b> uchar i;</b></p><p&g
119、t; if(mlcount==8)</p><p><b> {</b></p><p><b> k++;</b></p><p><b> EA=0;</b></p><p><b> TH0=0xe4</b></p><
120、p><b> TL0=0x00;</b></p><p> If (flag1==1)</p><p> sum=sun++;</p><p> dispbit[0]=sum/1000;</p><p> dispbit[1]=(sum%1000)/100;</p><p> d
121、ispbit[2]=(sum%100)/10;</p><p> dispbit[3]=sum%10;</p><p><b> EA=1;</b></p><p> /* if(k=7)</p><p><b> EA=0; */</b></p><p><
122、;b> }</b></p><p><b> }</b></p><p> void mdelay(unsigned int Delay)</p><p> { unsigned char i;</p><p> for(;Delay>0;Delay--)</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)自行車的里程測速儀課程設(shè)計
- 測試課程設(shè)計--自行車?yán)锍虦y量儀
- 自行車?yán)锍碳八俣扔嬚n程設(shè)計
- 自行車行程速度畢業(yè)設(shè)計--基于單片機(jī)的自行車?yán)锍趟俣扔嬙O(shè)計
- 自行車?yán)锍趟俣扔嬙O(shè)計-單片機(jī)自動控制畢業(yè)論文
- 畢業(yè)設(shè)計(論文)-基于單片機(jī)的自行車?yán)锍趟俣扔嫷脑O(shè)計
- 畢業(yè)設(shè)計(論文)_基于單片機(jī)的自行車?yán)锍趟俣扔嫷脑O(shè)計
- 畢業(yè)設(shè)計(論文)-基于單片機(jī)的自行車?yán)锍趟俣扔嫷脑O(shè)計
- 基于單片機(jī)的自行車?yán)锍瘫砑八俣葍x的畢業(yè)設(shè)計
- 基于單片機(jī)的多功能自行車?yán)锍瘫淼脑O(shè)計_畢業(yè)設(shè)計論文
- 單片機(jī)自行車速度里程計論文
- 單片機(jī)自行車速度里程計論文
- 自行車?yán)锍趟俣扔嫷脑O(shè)計
- 基于單片機(jī)的自行車?yán)锍蘝速度表設(shè)計-職業(yè)學(xué)院畢業(yè)論文
評論
0/150
提交評論