在單片機的控制作用下,實現一位數碼管簡易計數,范圍為0-9,設置兩個按鈕,一個為數值加一,另一個則為減一。 二、實驗過程 (一)實驗項目的方案分析 1.設計原理 STC12C5A60S2單片機內部包括微處理器、存儲器(存放程序指令或數據的ROM、RAM等)、輸入/輸出口(I/O口)及其他功能部件如定時/計數器、中斷系統等。它們通過地址總線、數據總線和控制總線連接起來。 本實驗充分利用了8051芯片的I/O引腳。系統已采用STC12C5A60S2系列單片機為中心器件來設計數碼管計數系統。 2.器件配置清單 表1器件配置表
(二)實驗項目的硬件電路設計 通過Proteus仿真電路軟件搭建電路,電路圖如圖所示。
圖1硬件1設計圖 (三)實驗項目的程序設計 1、C51程序編寫
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit key=P0^0;
- sbit key1=P0^1;
- uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void delay_lms(uint i){
- uchar t;
- while(i--)
- for(t=0;t<=150;t++);
- }
- void main(){
- uchar i=0;
- key=1;
- P1=0xc0;
- while(1){
- if(key==0){
- delay_lms(20);
- if(key==0){
- if(i<9){i++;}
- else{i=0;}
-
- P1=tab[i];
- if(i==10)i=0;
- }
- while(key==0);
- }
- if(key1==0){
- delay_lms(20);
- if(key1==0){
- if(i>0){i--;}
- else{i=10;}
- P1=tab[i];
- if(i==0)i=10;
- }
- while(key1==0);
- }
- }
- }
復制代碼
2、keil軟件調試截圖 通過Keil軟件進行C51控制程序的編寫,通過不斷調試修改,最終的調試好的Keil 程序截圖如圖2所示。
圖2調試無錯的Keil程序
(四)實驗項目的實際驗證電路及驗證結果 將單片機C51程序編譯無誤后,生成HEX文件,通過STC-ISP下載到單片機中,搭建的實際電路如圖3所示。 
圖3面包板搭建的實際電路 
(五)總結 相較于花樣燈,數碼管的難度有些提升。首先就需要注意的是數碼管的共陰和共陽。其次則是編程上的一些改動,但經過整個寢室的努力,都慢慢的將各個難題給解決了,相信將來也能更好的解決各種問題的。
全部資料51hei原創作者的下載地址: http://www.zg4o1577.cn/bbs/dpj-161135-1.html 我只是搬運大神的
|