數(shù)字邏輯電路教學(xué)中的C語言描述和應(yīng)用
摘要:為了改進(jìn)數(shù)字邏輯電路教學(xué)方法以適應(yīng)電子技術(shù)迅猛發(fā)展的需要,我們探索和實(shí)踐了數(shù)字邏輯電路教學(xué)的新方法,這就是基于計(jì)算機(jī)高級(jí)語言(C語言)的數(shù)字邏輯電路課堂教學(xué)和實(shí)驗(yàn)教學(xué)方法,本文重點(diǎn)介紹了本教學(xué)方法的特點(diǎn)以及實(shí)現(xiàn)方法。
關(guān)鍵詞:教學(xué)改革;數(shù)字邏輯電路;C語言
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2007)10-0090-03
引言
數(shù)字邏輯電路課是高等學(xué)校計(jì)算機(jī)科學(xué)技術(shù)專業(yè)的一門必修基礎(chǔ)課。在計(jì)算機(jī)專業(yè)基礎(chǔ)課程中,它是微機(jī)原理與應(yīng)用、微機(jī)接口技術(shù)、計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)等課程的前導(dǎo)課程,有著承上啟下的重要地位。該課程從電子計(jì)算機(jī)的基本硬件組成及數(shù)字電子技術(shù)著手,對(duì)計(jì)算機(jī)的組成部件的基本電路工作原理展開討論,使學(xué)生掌握有關(guān)計(jì)算機(jī)硬件方面的基礎(chǔ)知識(shí),尤其是各數(shù)字邏輯電路的基本功能,構(gòu)成整機(jī)數(shù)字系統(tǒng)的技術(shù),為培養(yǎng)學(xué)生對(duì)硬件系統(tǒng)的分析、設(shè)計(jì)、開發(fā)和使用能力打下最基本的基礎(chǔ)知識(shí)。
數(shù)字邏輯電路這門課程學(xué)習(xí)結(jié)果的好壞將對(duì)計(jì)算機(jī)專業(yè)的后續(xù)課程的學(xué)習(xí)產(chǎn)生很大的影響。數(shù)字邏輯電路是學(xué)好計(jì)算機(jī)專業(yè)基礎(chǔ)課的必要途徑,因此應(yīng)該重視這門課程教學(xué)方法的改進(jìn)。為了改革目前的數(shù)字邏輯電路課教學(xué)方法,我們探索了新的數(shù)字邏輯電路教學(xué)方法,即基于計(jì)算機(jī)高級(jí)語言的數(shù)字邏輯電路教學(xué)方法。本數(shù)字邏輯電路教學(xué)方法的特點(diǎn)是用計(jì)算機(jī)高級(jí)語言C語言對(duì)數(shù)字邏輯電路的基本功能進(jìn)行描述和實(shí)驗(yàn),也就是用計(jì)算機(jī)高級(jí)語言對(duì)我們?cè)跀?shù)字邏輯電路課程中講解的全部基本數(shù)字邏輯電路進(jìn)行表示。本方法特別適合與計(jì)算機(jī)專業(yè)的學(xué)生,因?yàn)橛?jì)算機(jī)專業(yè)的學(xué)生在學(xué)習(xí)數(shù)字邏輯電路課程之前都學(xué)習(xí)過了計(jì)算機(jī)高級(jí)語言C語言。這使得他們能夠較好的理解數(shù)字邏輯電路的這種表示方式,同時(shí)也能夠使他們?cè)趯W(xué)習(xí)數(shù)字邏輯電路的這種表示方式中復(fù)習(xí)計(jì)算機(jī)的高級(jí)語言,并且可以擴(kuò)展學(xué)生的知識(shí)面,培養(yǎng)和訓(xùn)練學(xué)生的創(chuàng)新能力。它不但能夠進(jìn)行數(shù)字邏輯電路的基本教學(xué),還可以用于數(shù)字邏輯電路的實(shí)驗(yàn)教學(xué)和課程設(shè)計(jì)。
1 數(shù)字邏輯電路的C語言描述
C語言功能豐富,表達(dá)能力強(qiáng),使用靈活方便,目標(biāo)程序效率高,可移植性好,適合編寫各種軟件,尤其是系統(tǒng)軟件,所以C語言已在諸多領(lǐng)域得到廣泛的應(yīng)用。目前許多高等院校,都在計(jì)算機(jī)專業(yè)開設(shè)了C語言課程。利用C語言可以編寫出簡潔、緊湊、高效的程序。C51是在完全支持標(biāo)準(zhǔn)C全部指令的基礎(chǔ)上添加了許多用來優(yōu)化8051指令結(jié)構(gòu)的C的擴(kuò)展指令而形成的,其程序結(jié)構(gòu)也類似于標(biāo)準(zhǔn)C程序的編寫。隨著嵌入式技術(shù)的不斷發(fā)展以及C語言在嵌入式應(yīng)用中的不斷普及,C程序設(shè)計(jì)技術(shù)在嵌入式系統(tǒng)中將得到廣泛的應(yīng)用。
數(shù)字邏輯電路通常分為組合數(shù)字邏輯電路和時(shí)序數(shù)字邏輯電路兩大類,組合數(shù)字邏輯電路常用的描述方法是邏輯圖、邏輯代數(shù)式、真值表和卡諾圖,它們均可對(duì)同一個(gè)組合邏輯問題進(jìn)行描述,知道其中的任何一個(gè),就可以推出其余的三個(gè)。隨著EDA技術(shù)的發(fā)展,目前又出現(xiàn)了硬件描述語言的數(shù)字邏輯電路描述法。與用硬件描述語言類似的方法,本文探索了在微控制器中的C51程序描述法。例如對(duì)一個(gè)三變量的一致電路的描述:
三變量的一致電路就是當(dāng)A、B、C三個(gè)變量一致時(shí),電路輸出高電平;當(dāng)三個(gè)變量不一致時(shí),電路輸出低電平。
用邏輯代數(shù)式表示為:F=ABC+
用C51語言描述為:
Main()
{ sbit a=P1.0; // 定義布爾輸入變量a是微控制器的P1.0口
sbit b=P1.1; // 定義布爾輸入變量b是微控制器的P1.1口
sbit c=P1.2; // 定義布爾輸入變量c是微控制器的P1.2口
sbit f=P2.0; // 定義布爾輸出變量f是微控制器的P2.0口
while(1){ // 無限循環(huán)
P1=0xff;
if (a==b==c)
f==1;
elsl f==0;
}
} // P1為輸入口,P2為輸出口
從以上的C51程序可以看出,這樣的數(shù)字邏輯電路描述方法,對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生,只要學(xué)習(xí)過C語言是非常容易理解的,而且用該方法描述的數(shù)字邏輯電路也容易用下面介紹的實(shí)驗(yàn)方法中得到驗(yàn)證。
2 在教學(xué)中的應(yīng)用原則
2.1教學(xué)重點(diǎn)
筆者認(rèn)為對(duì)于計(jì)算機(jī)專業(yè)的數(shù)字邏輯電路課,教學(xué)重點(diǎn)在于讓學(xué)生能夠很好地理解常用數(shù)字邏輯電路的邏輯功能,至于這些數(shù)字邏輯電路的實(shí)現(xiàn)方法有一些概念就可以了,沒有必要掌握數(shù)字邏輯電路的中小規(guī)模集成電路實(shí)現(xiàn)方法。而這些中小規(guī)模集成電路實(shí)現(xiàn)的數(shù)字邏輯電路在我們目前所用的教材中往往是重點(diǎn)講解的,這點(diǎn)對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生就不是很合適。事實(shí)上,本文探索的用C51程序描述數(shù)字邏輯電路,就是基于微控制器的用軟件實(shí)現(xiàn)的數(shù)字邏輯電路。這就是說數(shù)字邏輯電路課程的重點(diǎn)內(nèi)容是理解數(shù)字邏輯電路的邏輯功能。而具體用什么方法實(shí)現(xiàn)這個(gè)邏輯功能就不是太重要了。用中小規(guī)模集成電路、可編程邏輯電路和軟件來實(shí)現(xiàn)都是可以的。2.2應(yīng)用實(shí)例
根據(jù)筆者的多年教學(xué)實(shí)踐經(jīng)驗(yàn),在計(jì)算機(jī)專業(yè)的數(shù)字邏輯電路課程教學(xué)中,靈活運(yùn)用本文論述的C51程序描述法,結(jié)合傳統(tǒng)的數(shù)字邏輯電路的描述方法,取得到了較好的教學(xué)效果。
如:對(duì)于在計(jì)算機(jī)專業(yè)中用到的較多的邏輯電路“譯碼器”。用邏輯代數(shù)描述為:
用C51程序可以描述為:
main()
{ sbit a=P1.0; // 定義布爾輸入變量a,b,c為微控制器的P1口
sbit b=P1.1;
sbit c=P1.2;
sbit y0=P2.0; // 定義布爾輸出變量y0~y7是微控制器的P2口
sbit y1=P2.1;
sbit y2=P2.2;
sbit y3=P2.3;
sbit y4=P2.4;
sbit y5=P2.5;
sbit y6=P2.6;
sbit y7=P2.7;
while(1){ // 無限循環(huán)
P1=0xff;
y0=y1=y2=y3=y4=y5=y6=y7=0;
if (a==0&&b==0&&c==0) y0=1;
if (a==0&&b==0&&c==1) y1=1;
if (a==0&&b==1&&c==0) y2=1;
if (a==0&&b==1&&c==1) y3=1;
if (a==1&&b==0&&c==0) y4=1;
if (a==1&&b==0&&c==1) y5=1;
if (a==1&&b==1&&c==0) y6=1;
if (a==1&&b==1&&c==1) y7=1;
}
}
因此,在數(shù)字邏輯電路課程中,讓學(xué)生懂得作為計(jì)算機(jī)專業(yè)的學(xué)生,單單學(xué)會(huì)數(shù)字邏輯電路的硬件實(shí)現(xiàn)方法是不夠的,還應(yīng)當(dāng)讓學(xué)生從一開始就重視學(xué)習(xí)計(jì)算機(jī)軟硬件的相互關(guān)系。如果教師在數(shù)字邏輯電路課程的教學(xué)中運(yùn)用本文論述的方法,引導(dǎo)學(xué)生從計(jì)算機(jī)軟件和硬件層次上去認(rèn)識(shí)數(shù)字邏輯電路知識(shí),對(duì)學(xué)生學(xué)好后續(xù)專業(yè)課程有著積極的促進(jìn)意義。
3 實(shí)驗(yàn)教學(xué)方法
3.1硬件結(jié)構(gòu)
本實(shí)驗(yàn)方法的硬件部分主要由PC機(jī)以及微控制器電路和多個(gè)LED電路組成。微控制器選用Philips公司生產(chǎn)的P89C51RD2BN。該芯片內(nèi)部集成了多種功能部件,如四個(gè)8位的數(shù)字I/O口,8路A/D轉(zhuǎn)換接口、UART、定時(shí)器、看門狗定時(shí)器和FLASH存儲(chǔ)器等。微控制器的主要功能是:用戶輸入輸出端口狀態(tài)掃描輸入,用戶輸入輸出端口信號(hào)輸入和數(shù)字信號(hào)顯示等。實(shí)驗(yàn)硬件組成框圖如圖1所示。
圖1 實(shí)驗(yàn)硬件組成框圖
3.2ISP實(shí)現(xiàn)原理
本實(shí)驗(yàn)方法的關(guān)鍵是ISP技術(shù)。P89C51RD2BN的系統(tǒng)編程是通過標(biāo)準(zhǔn)RS232串口來完成的,它是一種內(nèi)嵌的在線可編程。內(nèi)部有一系列的硬件資源,當(dāng)微控制器對(duì)自身的Flash存儲(chǔ)器進(jìn)行編程時(shí),所有底層操作都由這些內(nèi)部資源來完成。ISP編程不需要將微控制器從系統(tǒng)中取出,只要用一個(gè)開關(guān)將PSEN強(qiáng)行拉低,ALE管腳懸空,系統(tǒng)便在上電復(fù)位后進(jìn)入ISP狀態(tài)。通過免費(fèi)的編程軟件Flashmagic下載二進(jìn)制文件到微控制器,就可以運(yùn)行程序了。
3.3實(shí)驗(yàn)方法
如圖1所示,實(shí)驗(yàn)時(shí)先把ISP控制開關(guān)放置在ISP位置上,在PC機(jī)上輸入需要實(shí)現(xiàn)的數(shù)字邏輯電路的C51程序,然后經(jīng)過C51編譯器編譯,生成二進(jìn)制文件形式的目標(biāo)程序文件,然后使用Flashmagic軟件把目標(biāo)程序下載到微控制器中,再把ISP控制開關(guān)放置到微控制器的正常工作狀態(tài),按動(dòng)復(fù)位按鈕,微控制器中的程序就可以正常運(yùn)行了。這時(shí)可以在輸入撥位開關(guān)上輸入數(shù)字信號(hào),在LED上可以觀察到這個(gè)實(shí)驗(yàn)數(shù)字邏輯電路的邏輯功能的實(shí)現(xiàn)結(jié)果。改變輸入撥位開關(guān)上輸入的數(shù)字信號(hào),可以得到不同的數(shù)字信號(hào)輸入,在LED中可以觀察分析實(shí)驗(yàn)數(shù)字邏輯電路的全部邏輯功能。
運(yùn)用本實(shí)驗(yàn)方法進(jìn)行的數(shù)字邏輯電路實(shí)驗(yàn),由于實(shí)驗(yàn)所用到的硬件設(shè)備,除PC機(jī)以外的成本是極低的,可以實(shí)現(xiàn)把實(shí)驗(yàn)帶回家的實(shí)驗(yàn)理念。在家里進(jìn)行各種有創(chuàng)造性的實(shí)驗(yàn)。讓學(xué)生真正成為實(shí)驗(yàn)學(xué)習(xí)的主人。
4 結(jié)束語
本文論述的數(shù)字邏輯電路C語言描述方法具有易懂、直觀、有創(chuàng)新性的特點(diǎn)。用該教學(xué)方法的實(shí)驗(yàn)裝置結(jié)構(gòu)簡單、成本較低、維護(hù)方便、性能可靠??梢赃M(jìn)行簡單的組合數(shù)字邏輯電路實(shí)驗(yàn),也可以進(jìn)行時(shí)序邏輯電路的實(shí)驗(yàn),能夠搭建多種趣味電路。能滿足基本教學(xué)的需要,也可以進(jìn)行綜合性、設(shè)計(jì)性實(shí)驗(yàn)。
?參考文獻(xiàn)
[1] 孫榮高,呂昂. 微控制器溫室環(huán)境溫濕度程序控制系統(tǒng)的研究與設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2005,(10):9-11.
[2] 陳科,李進(jìn). 基于ISP技術(shù)的單片機(jī)教學(xué)實(shí)驗(yàn)裝置的研制[J]. 浙江理工大學(xué)學(xué)報(bào),2006,(3):60-63.
[3] 王丹,王彬. 將專業(yè)課知識(shí)融入高級(jí)語言程序設(shè)計(jì)教學(xué)[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2005.
評(píng)論
查看更多