第5章-51單片機實現數字電路_第1頁
第5章-51單片機實現數字電路_第2頁
第5章-51單片機實現數字電路_第3頁
第5章-51單片機實現數字電路_第4頁
第5章-51單片機實現數字電路_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章51單片機實現數字電路

數字電路是廣泛使用的電子器件,大量使用的數字器件系列是74HC、74LS的器件,這些器件的功能分為組合與時序電路,組合電路主要有非門、與門、與非門、或門、或非門、編碼器、譯碼器、數據選擇器、加法器、比較器等,而時序電路主要有寄存器、移位寄存器、二進制計數器、非二進制計數器以及復雜的時序電路等,由這些種類電路的組合可以構成各種各樣的功能的電子模塊或是裝置。單片機就是數字電路組成的復雜電子系統(tǒng),在軟件的支持下可以實現各種數字電路的功能,但由于價格的原因,長期以來單片機只用于復雜數字系統(tǒng)的開發(fā)。隨著電子技術快速發(fā)展,單片機價格不斷下降,甚至降到了與單片數字電路相近的價格,因此用單片機代替數字電路已經成為必然。用單片機代替數字電路的好處是:(1)使用的芯片少,一塊單片機可以代替多片數字電路和多種數字電路。(2)可以在單片機焊接到電路板上還可以改變系統(tǒng)功能,因為單片機具有ISP功能,因此在單片機焊接在電路板上以后,仍然可以通過ISP編程改變單片機所實現數字電路的功能。當前的單片機每條指令執(zhí)行時間已經達到100ns以下,已經具有了代替數字電路的響應速度。在實際中,除了對采樣速度有要求的測量儀器外,大量的工業(yè)控制裝置對速度的要求并不高,有微秒級、甚至毫秒級的響應速度就能滿足要求了,例如可編程控制器的響應速度就在毫秒級。[例5-1]非門非門邏輯圖如圖所示。非門的C51源程序如下:#include"AT89X51.h"voidmain(){while(1){P2_0=!P3_0;//P3_0引腳輸入電平取非就是P2_0引腳的輸出電平}}[例5-3]或門或門邏輯圖如圖所示?;蜷T的C51源程序如下:#include"AT89X51.h"voidmain(){while(1){P2_0=(P3_0|P3_1);}}[例5-2]與門與門邏輯圖如圖所示。與門的C51源程序如下:#include"AT89X51.h"voidmain(){while(1){P2_0=(P3_0&P3_1);}}圖5-5優(yōu)先編碼器邏輯圖[例5-5]8-3線優(yōu)先編碼器優(yōu)先編碼器邏輯圖如圖所示。采用優(yōu)先編碼的8輸入編碼器,輸出3位,輸入高電平有效,輸出低電平有效。優(yōu)先編碼器的C51源程序如下:#include"AT89X51.h"voidmain(){while(1){if(P3_7==0){P2_2=0;P2_1=0;P2_0=0;}//7if((P3_7==1)&(P3_6==0)){P2_2=0;P2_1=0;P2_0=1;}//6if((P3_7==1)&(P3_6==1)&(P3_5==0)){P2_2=0;P2_1=1;P2_0=0;}//5if((P3_7==1)&(P3_6==1)&(P3_5==1)&(P3_4==0)){P2_2=0;P2_1=1;P2_0=1;}//4if((P3_7==1)&(P3_6==1)&(P3_5==1)&(P3_4==1)&(P3_3==0)){P2_2=1;P2_1=0;P2_0=0;}//3if((P3_7==1)&(P3_6==1)&(P3_5==1)&(P3_4==1)&(P3_3==1)&(P3_2==0)){P2_2=1;P2_1=0;P2_0=1;}//2if((P3_7==1)&(P3_6==1)&(P3_5==1)&(P3_4==1)&(P3_3==1)&(P3_2==1)&(P3_1==0)){P2_2=1;P2_1=1;P2_0=0;}//1if((P3_7==1)&(P3_6==1)&(P3_5==1)&(P3_4==1)&(P3_3==1)&(P3_2==1)&(P3_1==1)&((P3_0==0)|(P3_0==1))){P2_2=1;P2_1=1;P2_0=1;}//0}}[例5-6]3-8線譯碼器3-8譯碼器邏輯圖如圖所示。輸出低電平有效(LED亮),輸入低電平有效(按鈕按下接地)。3-8譯碼器的C51源程序如下:#include"AT89X51.h"voidmain(){unsignedintn;while(1){n=(~P3)&0x07;switch(n){case0:P2_0=0;break;case1:P2_1=0;break;case2:P2_2=0;break;case3:P2_3=0;break;case4:P2_4=0;break;case5:P2_5=0;break;case6:P2_6=0;break;case7:P2_7=0;break;default:P2=0xff;break;}P2=0xff;}}[例5-7]BCD-7段碼譯碼器BCD-7段譯碼器邏輯圖如圖所示。由于是驅動共陽數碼管,所以輸出低電平有效。BCD-7段譯碼器的C51源程序如下:#include<AT89X51.H>unsignedcharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};圖5-7BCD-7段譯碼器邏輯圖unsignedintn; voidmain(void){while(1){n=(~P3)&0x0f;P0=table[n];}}[例5-9]10進制計數器10進制計數器邏輯圖如圖所示,其中P3_0引腳為計數脈沖輸入,下降沿計數;P3_1為清除端,低電平有效;P2輸出計數器的計數值,為保證按鈕每次按下,只計數一個脈沖,程序中增加了消除按鍵抖動電路。源程序如下:#include"AT89X51.h"voidmain(){staticunsignedintn;unsignedintm;while(1){if(P3_0==0)//如果按鈕按下{for(m=0;m<3000;m++);//延時一段時間if(P3_0==0)//如果按鈕還在按下狀態(tài){n=n+1;//計數if(n>9)//改變n的值,可以改變計數器的模n=0;while(!P3_0);}}if(P3_1==0)n=0;P2=~n;//將n逐位取反后從P2口輸出}}//取反是因為發(fā)光管在低電平時亮。[例5-12]單穩(wěn)態(tài)觸發(fā)器圖5-12單穩(wěn)態(tài)觸發(fā)器邏輯框圖單穩(wěn)態(tài)觸發(fā)器如圖所示,當按鈕P3_0按下后,連接在P2_0引腳上的LED點亮需要的一段時間。源程序如下:#include<AT89X51.h>main(){unsignedintm;while(1){if(P3_0==0)//如果按鈕按下{P2_0=0;//點亮LEDfor(m=0;m<30000;m++);//延遲一個單穩(wěn)態(tài)需要的時間,就是指令執(zhí)行的時間P2_0=1;//熄滅LEDwhile(!P3_0);//等待按鈕抬起for(m=0;m<3000;m++);//防止按鈕抬起時的抖動,需要延遲一段時間}}}[例5-13]實現組合邏輯電路組合邏輯電路具有如下邏輯表達式:該組合電路的邏輯框圖如圖5-13所示,其中用P3_5引腳代表A,P3_6引腳代表B,P3_7引腳代表C,用P2_0引腳代表Y,則用51單片機實現該表達式的C51源程序如下:#include<AT89X51.h>main(){bita,b,c;while(1){a=P3_5;b=P3_6;c=P3_7;P2_0=!a&&!b&&c||!a&&b&&!c||a&&!b&&!c||a&&b&&c;}}

[例5-14]設計一個4人搶答邏輯電路,具體要求為:(1)每個參賽者控制一個按鈕,用按下按鈕發(fā)出搶答信號。(2)競賽組織者有一個復位按鈕,可將電路復位。(3)競賽開始時,競賽組織者首先復位電路,然后參賽者按下按鈕,則對應的發(fā)光管亮,此后其他人再按下按鈕對電路不起作用。(4)用數碼管顯示1、2、3、4,代表參賽者號碼。搶答器如圖5-14所示,其中參賽者使用P3_4、P3_5、P3_6和P3_7四個引腳連接的4個按鈕搶答;組織者用P3_2引腳連接的按鈕復位電路,P2_4、P2_5、P2_6和P2_7引腳連接的4個發(fā)光管指示搶答者。#include<AT89X51.h>unsignedcharhex[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//數碼管十六進制譯碼表main(){bita,b,c,d,rst,m;unsignedcharkk=0;while(1){rst=P3_2;a=P3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論