|
單片機(jī)控制數(shù)碼管顯示0~9的數(shù)字顯示,當(dāng)按一下按鈕,數(shù)碼管顯示1,再按一下顯示2,再按一下顯示3,如此循環(huán),顯示到9
二、實(shí)驗(yàn)過(guò)程
(一)實(shí)驗(yàn)項(xiàng)目的方案分析
1.設(shè)計(jì)原理 STC12C5A60S2單片機(jī)內(nèi)部包括微處理器、存儲(chǔ)器(存放程序指令或數(shù)據(jù)的ROM、RAM等)、輸入/輸出口(I/O口)及其他功能部件如定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)等。它們通過(guò)地址總線、數(shù)據(jù)總線和控制總線連接起來(lái)。 本實(shí)驗(yàn)充分利用了8051芯片的I/O引腳。系統(tǒng)已采用STC12C5A60S2系列單片機(jī)為中心器件來(lái)設(shè)計(jì)數(shù)碼管顯示系統(tǒng),實(shí)現(xiàn)數(shù)碼管循環(huán)顯示。 2.器件配置清單 表1器件配置表
(二)實(shí)驗(yàn)項(xiàng)目的硬件電路設(shè)計(jì) 通過(guò)Proteus仿真電路軟件搭建電路,電路圖如圖所示。 
圖1硬件設(shè)計(jì)圖 (三)實(shí)驗(yàn)項(xiàng)目的程序設(shè)計(jì) 1、C51程序編寫 2、keil軟件調(diào)試截圖 通過(guò)Keil軟件進(jìn)行C51控制程序的編寫,通過(guò)不斷調(diào)試修改,最終的調(diào)試好的Keil 程序截圖如圖2所示。 
圖2調(diào)試無(wú)措的Keil程序 (四)實(shí)驗(yàn)項(xiàng)目的虛擬仿真 打開(kāi)Keil C軟件將上面程序輸入,調(diào)試無(wú)誤后編譯輸出".hex"文件,打開(kāi)Proteus軟件,將之前編譯好的".hex"文件加入到芯片中,開(kāi)始運(yùn)行仿真。
(五)實(shí)驗(yàn)項(xiàng)目的實(shí)際驗(yàn)證電路及驗(yàn)證結(jié)果 將單片機(jī)C51程序編譯無(wú)誤后,生成HEX文件,通過(guò)STC-ISP下載到單片機(jī)中,下載的軟件界面如圖4所示,搭建的實(shí)際電路如圖5所示。 
圖4下載HEX文件到單片機(jī)
圖5面包板搭建的實(shí)際電路
以下為實(shí)際效果的截圖: 
(六)總結(jié) 總的來(lái)說(shuō)數(shù)碼管實(shí)驗(yàn)還是比較簡(jiǎn)單的,跟前面做流水燈的實(shí)驗(yàn)差不多。還比流水燈簡(jiǎn)單一點(diǎn)。總的來(lái)說(shuō),數(shù)碼管實(shí)驗(yàn)只是比流水燈多了一個(gè)按鍵,要對(duì)按鍵進(jìn)行定義。其他的就跟流水燈差不多。
單片機(jī)源碼:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit button=P2^0;
- uchar i=0;
- uchar code shuzu[]={0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void delay_1ms(uint t)
- {
- uint i;
- while(t--)
- for(i=0;i<600;i++);
- }
- main()
- {
- while(1)
- {
- if(button==0)
- delay_1ms(10);
- if(button==0)
- {
- while(button==0);
- i++;
- if(i==11)
- {i=0;}
- }
- P0=shuzu[i];
- }
- }
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
數(shù)碼管說(shuō)明書(shū).doc
(894.5 KB, 下載次數(shù): 12)
2019-1-12 21:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|