單片機控制數碼管顯示0~9的數字顯示,當按一下按鈕,數碼管顯示1,再按一下顯示2,再按一下顯示3,如此循環,顯示到9
二、實驗過程
(一)實驗項目的方案分析
1.設計原理 STC12C5A60S2單片機內部包括微處理器、存儲器(存放程序指令或數據的ROM、RAM等)、輸入/輸出口(I/O口)及其他功能部件如定時/計數器、中斷系統等。它們通過地址總線、數據總線和控制總線連接起來。 本實驗充分利用了8051芯片的I/O引腳。系統已采用STC12C5A60S2系列單片機為中心器件來設計數碼管顯示系統,實現數碼管循環顯示。 2.器件配置清單 表1器件配置表
(二)實驗項目的硬件電路設計 通過Proteus仿真電路軟件搭建電路,電路圖如圖所示。 
圖1硬件設計圖 (三)實驗項目的程序設計 1、C51程序編寫 2、keil軟件調試截圖 通過Keil軟件進行C51控制程序的編寫,通過不斷調試修改,最終的調試好的Keil 程序截圖如圖2所示。 
圖2調試無措的Keil程序 (四)實驗項目的虛擬仿真 打開Keil C軟件將上面程序輸入,調試無誤后編譯輸出".hex"文件,打開Proteus軟件,將之前編譯好的".hex"文件加入到芯片中,開始運行仿真。
(五)實驗項目的實際驗證電路及驗證結果 將單片機C51程序編譯無誤后,生成HEX文件,通過STC-ISP下載到單片機中,下載的軟件界面如圖4所示,搭建的實際電路如圖5所示。 
圖4下載HEX文件到單片機
圖5面包板搭建的實際電路
以下為實際效果的截圖: 
(六)總結 總的來說數碼管實驗還是比較簡單的,跟前面做流水燈的實驗差不多。還比流水燈簡單一點。總的來說,數碼管實驗只是比流水燈多了一個按鍵,要對按鍵進行定義。其他的就跟流水燈差不多。
單片機源碼:
- #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];
- }
- }
復制代碼
完整的Word格式文檔51黑下載地址:
數碼管說明書.doc
(894.5 KB, 下載次數: 12)
2019-1-12 21:43 上傳
點擊文件名下載附件
|