




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目二超速報警系統(tǒng)設計與調試任務1速度顯示模塊內容提要速度顯示通常有哪些形式?數(shù)碼管顯示接口電路如何設計?液晶顯示接口電路如何設計?數(shù)碼管顯示與液晶顯示有何異同?在數(shù)碼管上顯示小數(shù)點,有哪些處理方法?按鍵接口電路如何設計?項目效果圖主要內容設計要求1硬件設計2軟件設計3拓展要求4設計要求能力目標能掌握51單片機體系結構;能基本應用Keil和Proteus軟件;能理解并能運用程序設計的基本框架;能根據(jù)設計要求選擇元器件。相關知識數(shù)碼管顯示接口電路、I/O口資源,程序框架;數(shù)組和子函數(shù)的應用;Keil和Proteus軟件的基本應用。任務要求設計完成速度顯示的控制;畫出電路設計的原理圖和仿真圖;調試控制程序代碼;系統(tǒng)聯(lián)調。硬件電路設計具體可分為硬件電路設計系統(tǒng)方案設計具體電路方案設計總電路原理圖設計軟件設計流程圖設計
程序設計仿真調試
系統(tǒng)方案設計具體電路方案設計-顯示電路
動態(tài)顯示具體電路方案設計-顯示電路
靜態(tài)顯示LED數(shù)碼管
數(shù)碼管內部由多個發(fā)光二極管組成。根據(jù)內部二極管連接方式,數(shù)碼管在結構上又分為共陰極型和共陽極型兩種。共陰極型內部發(fā)光二極管陰極連在一起,接低電平。共陽極型內部發(fā)光二極管陽極連在一起,接高電平。單個數(shù)碼管內部共有8只發(fā)光二極管,7只為字段,可組成字形,第八個為小數(shù)點。故單個數(shù)碼管有人稱為七段數(shù)碼顯示,也有人稱之為八段顯示。如下圖示,(a)為數(shù)碼管引腳及外型圖,(b)為共陰極型LED顯示器,(c)為共陽極型LED顯示器。LED數(shù)碼管數(shù)碼管引腳及內部結構圖
LED數(shù)碼管
數(shù)碼管發(fā)光原理分兩種情況:
共陰極型如圖(b)所示,a、b、c、d、e、f、g各引腳輸入高電平有效。只要哪個引腳輸入為高電平,對應的二極管就會發(fā)亮。共陽極型,如圖(c)所示。這種結構數(shù)碼管的a、b、c、d、e、f、g各引腳輸入低電平有效。只要哪個引腳輸入低電平,對應的二極管就會發(fā)亮。公共端接低電平公共端接高電平LED數(shù)碼管
通過點亮不同的發(fā)光段可組成不同的字形。輸入到數(shù)碼管dp、g、f、e、d、c、b、a的二進制碼稱為字段碼(或稱字形碼),數(shù)碼管顯示的結果為字形。下表是顯示字形與共陽極和共陰極兩種接法的字段碼對應關系。LED數(shù)碼管顯示字形與段選碼關系顯示字形共陽極段選碼共陰極段選碼0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77Hb83H7CHCC6H39HdA1H5EHE86H79HF8EH71H“滅”FFH00HLED數(shù)碼管
上表中,各發(fā)光段a、b、c、d、e、f、g及dp與數(shù)據(jù)線的對應關系是D0~D7,即a對應D0、b對應D1、…、依次類推,而dp對應D7。只要把共陽極數(shù)碼管按照引腳a、b、c、d、e、f、g、dp的順序分別接于單片機P1口的P2.0~P2.7,如下圖所示。由于P2口在輸出時具有鎖存功能,只要用指令向P2口送出字段碼,數(shù)碼管就可顯示出所需字形。LED數(shù)碼管思考:有時候為了電路板布線方便,數(shù)碼管與單片機的連接關系并非是“各發(fā)光段a、b、c、d、e、f、g及dp與數(shù)據(jù)線的對應關系是D0~D7”。
當他們的連接關系為“D0-D7分別與數(shù)碼管的g、f、a、b、e、d、c、dp”時,顯示的字形碼是什么???單個LED數(shù)碼管顯示電路數(shù)碼管與P2口接口連接電路
單個LED數(shù)碼管顯示電路
要求設計十秒計時器。包含一位數(shù)碼管,數(shù)值在0~9變化。每位數(shù)顯示一秒鐘。 數(shù)碼管的顯示要用到數(shù)組。將字形碼存放在數(shù)組中。比如chr[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};P2=chr[i];(10>i>=0)這樣完成了譯碼,當i=0時將chr[0]即0x3f送出了,從而實現(xiàn)了0的顯示。單個LED數(shù)碼管顯示電路十秒計時器流程圖,可用for循環(huán)實現(xiàn)。單個LED數(shù)碼管顯示程序voidmain(void){uchari;ucharchr[10]={0x3F,0x06, 0x5B,0x4F,0x66,0x6D, 0x7D,0x07,0x7F,0x6F}; while(1) { for(i=0;i<10;i++) { P2=chr[i]; delay(); } }}#defineucharunsignedchar#defineuintunsignedint#include<AT89X51.h> voiddelay(){
uchar i;
uint
j;
for(i=0;i<124;++i)
for(j=0;j<1000;++j);}顯示接口設計多位數(shù)碼管顯示時工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。1.靜態(tài)顯示方式:靜態(tài)顯示的特點是每個數(shù)碼管必須接一個8位鎖存器用來鎖存待顯示的字形碼。送入一次字形碼顯示字形一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復雜,成本較高。靜態(tài)顯示接口電路有許多種,下圖給出了一個并行接口顯示電路的實例。
靜態(tài)顯示接口電路如果要求實現(xiàn)顯示34chr[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};P2=chr[3];P2=chr[4];練習要求完成60秒的計時??捎靡粋€變量i用來存放時間值,初始值為0。當一秒鐘時間到了之后,這個變量的值加一。一直減到59,到60后又變?yōu)?,從頭開始。要顯示這個時間變量,需要將時間的個位和十位上的數(shù)值拆分出來。用什么方法呢??1.基本算術運算符基本算術運算符有如下5種:
+(加法)、-(減法)、*(乘法)、/(除法)、%(求余數(shù))1)關于除法運算“/”C語言規(guī)定:兩個整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄。例如,10/3=3。如果相除的兩個數(shù)中至少有一個是實型的,則結果為實型。例如,10.0/3=3.333333。
算術運算符
如果商為負值,則取整的方向隨系統(tǒng)而異。但大多數(shù)系統(tǒng)采取“向零取整”原則,既取整后向零靠攏,換句話說,取其整數(shù)部分。例如,-5/3=-1。
2)關于求余數(shù)運算“%”
求余數(shù)運算要求兩側的操作數(shù)均為整型數(shù)據(jù),否則出錯。例如,5%2=1??梢杂贸ㄟ\算和求余數(shù)運算將需要顯示數(shù)據(jù)的個位和十位的數(shù)碼求出。算術運算符數(shù)字拆分例如將69的個位和十位的數(shù)字分別拆出。69/10=669%10=9這樣便獲得了6和9,即可分別送數(shù)碼管顯示了。60秒計時流程圖。voidmain(void){
chari; unsignedcharchr[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; while(1) { for(i=0;i<60;i++) { P2=chr[i/10]; P3=chr[i%10]; delay(); } }}顯示接口設計2.動態(tài)顯示:動態(tài)顯示的特點是將所有數(shù)碼管的段選線并聯(lián)在一起,通過控制位選信號來控制數(shù)碼管的點亮。這樣一來,就沒有必要每一位數(shù)碼管配一個鎖存器,從而大大簡化了硬件電路。數(shù)碼管采用動態(tài)掃描顯示,所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應略小于靜態(tài)顯示電路中的限流電阻。下圖給出一種2位LED動態(tài)顯示電路。動態(tài)顯示接口電路用動態(tài)顯示法實現(xiàn)兩位數(shù)58的顯示。動態(tài)顯示接口程序#defineucharunsignedchar#defineuintunsignedint#include<AT89X51.h> voiddelay(intk){ uchar i; uint j; for(i=0;i<124;++i)
for(j=0;j<k;++j);}voiddisplay(unsignedchart){ unsignedcharn1,n2; unsignedcharchr[10]={0x3F,0x06,0x5B,
0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; n1=t/10;n2=t%10; P3_1=1;P3_0=0; P2=chr[n1]; delay(10); P3_0=1;P3_1=0; P2=chr[n2]; delay(10);}voidmain(void)
{
unsignedchari=58;
while(1)
{
display(i); }}
練習采用動態(tài)顯示法顯示六位數(shù)應該如何繪制接口電路和編寫程序?display(longzt){charchr[10]={0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,0x7F,0x6F};
chari,lie,a[6];
a[5]
=
zt%10;
zt
=
zt/10;
a[4]
=
zt%10;
zt
=
zt/10;
a[3]
=
zt%10;
zt
=
zt/10;
a[2]
=
zt%10;
zt
=
zt/10;
a[1]
=
zt%10;
zt
=
zt/10;
a[0]
=
zt%10;
lie
=
0x01;
for(i=0;i<6;i++)
{
P2=~lie;
P0=chr[a[i]];
delay();
lie=lie<<1;
}}數(shù)碼管的驅動一般的51系列單片機的I/O口可以輸出4mA的拉電流或20mA的灌電流,可以驅動數(shù)碼管發(fā)光。由于灌電流較大,因此對共陽極數(shù)碼管的驅動能力較大。數(shù)碼管工作時每段需串聯(lián)一個限流電阻,另外,電阻值的選取只要保證管子正常發(fā)光即可。一般單個數(shù)碼管電流控制在10~20mA較合適。電流太大會加大耗電量,而電流太小又無法得到足夠的發(fā)光度。數(shù)碼管的驅動數(shù)碼管的驅動當多位數(shù)碼管采用動態(tài)顯示方式時,數(shù)碼管上八段的電流集合到公共段,所以數(shù)碼管的位線不能直接連接到單片機的I/O口??赏ㄟ^IO口控制三極管的導通和截止來控制與電源的連接。數(shù)碼管的驅動數(shù)碼管的驅動為了增加數(shù)碼管的亮度,在多位顯示時,段碼上應加上驅動芯片,增強輸出電流。常用顯示驅動芯片有:74ls47,74ls48,74ls244,74ls164,74ls595等等。74ls244:三態(tài)輸出的八緩沖器和線驅動器(20MA)74ls164:8串行輸入并行輸出的移位寄存器(25MA)
74ls595:8位串入并出輸出鎖存移位寄存器(35MA)數(shù)碼管的驅動設計要求具體電路方案設計-鍵盤電路按鍵按鍵的分類按鍵按照結構原理可分為兩類,一類是觸點式開關按鍵,如機械式開關、導電橡膠式開關等;另一類是無觸點式開關按鍵,如電氣式按鍵,磁感應按鍵等。前者造價低,后者壽命長。目前,微機系統(tǒng)中最常見的是觸點式開關按鍵。
按鍵
鍵輸入原理在單片機應用系統(tǒng)中,除了復位按鍵有專門的復位電路及專一的復位功能外,其它按鍵都是以開關狀態(tài)來設置控制功能或輸入數(shù)據(jù)的。當所設置的功能鍵或數(shù)字鍵按下時,計算機應用系統(tǒng)應完成該按鍵所設定的功能,鍵信息輸入是與軟件結構密切相關的過程。3.按鍵結構與特點微機鍵盤通常使用機械觸點式按鍵開關,其主要功能是把機械上的通斷轉換成為電氣上的邏輯關系。也就是說,它能提供標準的TTL邏輯電平,以便與通用數(shù)字系統(tǒng)的邏輯電平相容。按鍵
機械式按鍵在按下或釋放時,由于機械彈性作用的影響,通常伴隨有一定時間的觸點機械抖動,然后其觸點才穩(wěn)定下來。其抖動過程如下圖所示,抖動時間的長短與開關的機械特性有關,一般為5
10ms。按鍵按鍵觸點的機械抖動按鍵在觸點抖動期間檢測按鍵的通與斷狀態(tài),可能導致判斷出錯,即按鍵一次按下或釋放被錯誤地認為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點機械抖動所致的檢測誤判,必須采取去抖動措施。這一點可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時,可采用硬件去抖,而當鍵數(shù)較多時,采用軟件去抖。按鍵軟件上采取的措施是:在檢測到有按鍵按下時,執(zhí)行一個10ms左右(具體時間應視所使用的按鍵進行調整)的延時程序后,再確認該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認該鍵處于閉合狀態(tài)。同理,在檢測到該鍵釋放后,也應采用相同的步驟進行確認,從而可消除抖動的影響。按鍵
編制鍵盤程序一個完善的鍵盤控制程序應具備以下功能:
(1)檢測有無按鍵按下,并采取硬件或軟件措施,消除鍵盤按鍵機械觸點抖動的影響。
(2)有可靠的邏輯處理辦法。每次只處理一個按鍵,其間對任何按鍵的操作對系統(tǒng)不產(chǎn)生影響,且無論一次按鍵時間有多長,系統(tǒng)僅執(zhí)行一次按鍵功能程序。
按鍵(3)準確輸出按鍵值(或鍵號),以滿足跳轉指令要求。按鍵獨立式按鍵結構
單片機控制系統(tǒng)中,往往只需要幾個功能鍵,此時,可采用獨立式按鍵結構。獨立式按鍵是直接用I/O口線構成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。獨立式按鍵的典型應用下圖所示。按鍵
獨立式按鍵電路配置靈活,軟件結構簡單,但每個按鍵必須占用一根I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用。按鍵獨立式按鍵的軟件結構獨立式按鍵的軟件常采用查詢式結構。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認該I/O口線所對應的按鍵已按下,然后,再轉向該鍵的功能處理程序。按鍵
S1~S4四個按鍵分別接到P3.0、P3.1、P3.2和P3.3,對這些鍵可以采用查詢的方法。If(P3_0==0){delay(10);if(P3_0==0){delay(10);while(P3_0==0);
按鍵確定按下,可執(zhí)行功能程序}}按鍵按鍵開關的抖動問題單片機中應用的鍵盤一般是由機械觸點構成的。由于按鍵是機械觸點,當機械觸點斷開、閉合時,會有抖動。
抖動對于人來說是感覺不到的,但對單片機來說,這已是一段“漫長”的時間了。
消除抖動的方法為了使CPU能正確地讀出P1.0口的狀態(tài),對每一次按鍵只作一次響應,就必須考慮如何去除抖動。軟件去除抖動就是在單片機獲得P1.0口為低的信息后,不是立即認定S已被按下,而是延時10毫秒或更長一段時間后再次檢測P1.0口,如果仍為低,說明S的確按下了,這實際上是避開了按鍵按下時的抖動時間。而在檢測到按鍵釋放后(P1.0為高),再對鍵值處理。練習練習題:單片機P1口連接了8個按鍵,鍵值分別為1-8,當按鍵按下時將該鍵的鍵值用數(shù)碼管顯示出來。
8個按鍵分別接到P1.0~P1.7,采用不斷查詢的方法,即檢測是否有鍵閉合,如有鍵閉合,則去除鍵抖動,判斷鍵號并轉入相應的鍵處理。按鍵示例
#include<AT89X51.h>voiddelay(intk){
unsignedchar
i;
unsignedint
j;
for(i=0;i<124;++i)
for(j=0;j<k;++j);}ucharkey(void){
uchara;
P1=0xff;
a=P1;
if(a==0xff)return0;
else
{delay(10);
a=P1;
if(a==0xff)return0;
else
{
while(P1!=0xff);
returna;
}
}}main(
){unsignedcharchr[10]=
{0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F};
unsignedchark;
while(1)
{
k=key();
switch(k)
{
case0:break;
case0xfe:P2=chr[1];break;
case0xfd:P2=chr[2];break;
case0xfb:P2=chr[3];break;
case0xf7:P2=chr[4];
break;
case0xef:P2=chr[5];
break;
case0xdf:P2=chr[6];
break;
case0xbf:P2=chr[7];
break;
case0x7f:P2=chr[8];
break;
}}}按鍵數(shù)量較少時,可以逐個判斷按鍵是否按下。If(P1_0==0){delay(10);if(P1_0==0){delay(10);while(P1_0==0);
按鍵按下,可執(zhí)行功能程序}}練習:設計一個包含兩個按
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年高中歷史課時作業(yè)9中國民主革命的先行者孫中山北師大版選修4
- 2024-2025學年高中歷史第七章俄國農奴制度改革第一節(jié)俄國社會呼喚改革學案北師大版選修1
- 康??h聚恒礦業(yè)有限公司孔督溝螢石礦采選項目環(huán)境影響評價報告全本
- 中國旅行箱包行業(yè)市場供需格局及行業(yè)前景展望報告
- 2025年紙質淇淋杯行業(yè)深度研究分析報告
- 大渡口區(qū)半導體設備項目投資分析報告
- 2025年氟康唑阿侖磷酸鈉項目可行性研究報告
- 2025年中國智能終端充儲電產(chǎn)品行業(yè)市場調查研究及投資前景展望報告
- 2025年中國天然氣濾清器行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告
- 2025年充電式剃須刀項目投資可行性研究分析報告
- 酒店長包房租賃協(xié)議書范本
- 2025年幾內亞水泥廠項目投資可行性報告
- 【道法】開學第一課 課件-2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 口腔門診分診流程
- 2025年春新外研版(三起)英語三年級下冊課件 Unit2第1課時Startup
- 2025年上半年天津市寧河區(qū)事業(yè)單位招聘12人重點基礎提升(共500題)附帶答案詳解-1
- 2024年科技節(jié)小學科普知識競賽題及答案(共100題)
- 心肺復蘇課件
- 2024-2030年“一帶一路”背景下中國鐵塊礦產(chǎn)業(yè)未來發(fā)展趨勢及投資策略分析報告
- 中華民族共同體概論專家講座第一講中華民族共同體基礎理論
- 鋼包熱修工安全技術操作規(guī)程(3篇)
評論
0/150
提交評論