實(shí)驗(yàn)六 動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/h3>
1.熟悉實(shí)驗(yàn)軟件和硬件,進(jìn)行正確的接線;
2.編程使得數(shù)碼管排依次顯示01234567
二、實(shí)驗(yàn)軟硬件
1.Keil uVision4
2.PZISP自動(dòng)下載軟件
3.HC6800S開(kāi)發(fā)板
三、實(shí)驗(yàn)原理
動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)整體圖
通過(guò)P22、P23、P24控制3-8譯碼器來(lái)對(duì)數(shù)碼管進(jìn)行位選,通過(guò)P0口經(jīng)過(guò)573的驅(qū)動(dòng)控制數(shù)碼管的段選,通過(guò)P13控制573的使能端,為低電平時(shí)573才會(huì)有輸出。
動(dòng)態(tài)數(shù)碼管硬件圖
當(dāng)一個(gè)選通端(E1)為高電平,另二個(gè)選通端((/E2))和(/E3))為低電平時(shí),可將地址端(A0、A1、A2)的二進(jìn)制編碼在Y0至Y7對(duì)應(yīng)的輸出端以低電平譯出。輸出為Y0至Y7的非,比如:A2A1A0=110時(shí),則Y6輸出端輸出低電平信號(hào)。
138譯碼器硬件
四、軟件流程圖
動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)程序流程圖
五、實(shí)驗(yàn)代碼
1.#include<reg51.h>
2.
3.#define GPIO_DIG P1
4.
5.sbit LSA=P2^2;
6.sbit LSB=P2^3;
7.sbit LSC=P2^4;
8.
9.unsigned char DisplayData[17]={
10.0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
11.0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
12.
13.void DigDisplay()
14.{
15. unsigned char i;
16. unsigned int j;
17. for(i=0;i<8;i++)
18. {
19. switch(i)
20. {
21. case(0):LSA=0;LSB=0;LSC=0; break;//顯示第0位
22. case(1):LSA=1;LSB=0;LSC=0; break;//顯示第1位
23. case(2):LSA=0;LSB=1;LSC=0; break;//顯示第2位
24. case(3):LSA=1;LSB=1;LSC=0; break;//顯示第3位
25. case(4):LSA=0;LSB=0;LSC=1; break;//顯示第4位
26. case(5):LSA=1;LSB=0;LSC=1; break;//顯示第5位
27. case(6):LSA=0;LSB=1;LSC=1; break;//顯示第6位
28. case(7):LSA=1;LSB=1;LSC=1; break;//顯示第7位
29. }
30. GPIO_DIG=DisplayData[i];//發(fā)送段碼
31. j=1000; //控制顯示位的保留的時(shí)間
32. while(j--);
33. GPIO_DIG=0x00;
34. }
35.}
36.void main(void)
37.{
38. while(1)
39. {
40. DigDisplay();
41. }
42.}
六、實(shí)驗(yàn)步驟
1.連接實(shí)驗(yàn)相關(guān)模塊連線
硬件線路圖
2.編寫(xiě)動(dòng)態(tài)數(shù)碼管程序
用三根LSA、LSB和LSC 輸出到38譯碼器中,比如輸入000,選中第一個(gè)數(shù)碼管。然后把數(shù)據(jù)通過(guò)P1送出給數(shù)碼管,然后改數(shù)碼管顯示相應(yīng)的數(shù)字。其后,開(kāi)始循環(huán)選中第二個(gè)數(shù)碼管,送數(shù)字,然后第三個(gè)…依次循環(huán),每次顯示之間間隔一段時(shí)間,間隔時(shí)間合適便可達(dá)到數(shù)碼管排依次顯示01234567的效果。
3.下載動(dòng)態(tài)數(shù)碼管程序
程序下載界面
4.觀察實(shí)驗(yàn)現(xiàn)象
實(shí)驗(yàn)現(xiàn)象就是隨著延時(shí)的增加,第一個(gè)數(shù)碼管顯示0,然后第一個(gè)數(shù)碼管滅,第二個(gè)顯示1,之后第二個(gè)數(shù)碼管滅,第三數(shù)碼管顯示2… 間隔時(shí)間過(guò)小的話的,呈現(xiàn)的效果是8個(gè)數(shù)碼管同時(shí)顯示01234567。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-487363.html
七、實(shí)驗(yàn)思考
有人說(shuō),靜態(tài)數(shù)碼管是動(dòng)態(tài)的,動(dòng)態(tài)數(shù)碼管是靜態(tài)的。其實(shí)這里面的靜態(tài)動(dòng)態(tài)并不是那樣理解的,靜態(tài)數(shù)碼管直接是使能的,之后可以往里面寫(xiě)入數(shù)值對(duì)應(yīng)的段碼,這時(shí)就可以顯示出相應(yīng)的數(shù)值。動(dòng)態(tài)數(shù)碼管是一排,通常應(yīng)該有八個(gè),要用一個(gè)38譯碼器連接它們的使能端。它們的連接相同的數(shù)據(jù)總線,通過(guò)選擇,相應(yīng)的數(shù)碼管將數(shù)字讀入顯示。它其實(shí)是在不停的動(dòng)作的,只是掃描的比較快,人眼看到的是“靜態(tài)”的。
這樣就可以用3根控制線和8根數(shù)據(jù)線完成8個(gè)數(shù)碼管的顯示。如果這8個(gè)數(shù)碼管用靜態(tài)的方式顯示就需要8*8根線,但51單片機(jī)很難可以有這么多IO口資源。即使對(duì)于其它種類的單片機(jī)來(lái)說(shuō),64個(gè)IO口也是一個(gè)不小的開(kāi)銷。
本實(shí)驗(yàn)要求并38譯碼器轉(zhuǎn)換不同狀態(tài)是時(shí)間延長(zhǎng)多一點(diǎn),就出現(xiàn)了第一個(gè)數(shù)碼管顯示0,然后滅。第二個(gè)數(shù)碼管顯示1,然后滅…這樣的效果。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-487363.html
到了這里,關(guān)于單片機(jī)實(shí)驗(yàn)六 動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!