仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語言:C語言
設(shè)計(jì)編號(hào):【T02】
1.? 簡介
? 本文提出了一種基于51單片機(jī)的共陽極數(shù)碼管數(shù)字電壓表設(shè)計(jì)。該系統(tǒng)采用AT89C51單片機(jī)為控制核心,模擬量輸入范圍直流0v-25v。模擬量經(jīng)ADC0832模數(shù)轉(zhuǎn)換芯片,把模擬量轉(zhuǎn)換為數(shù)字量輸入到單片機(jī)的P3口,再由單片機(jī)控制4位數(shù)碼管顯示模擬量輸入的電壓值。
2.? 主要功能
a.通過4位共陽極數(shù)碼管顯示電壓值。量程:0-25V。
3.? 源程序(Keil5)
本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。
#include<reg51.h>
#include<intrins.h>
sbit CS=P3^5;
sbit CLK=P3^3;
sbit DI=P3^4;
sbit DO=P3^4;
sbit dot=P0^5; //小數(shù)點(diǎn)
unsigned char dat=0x00;
unsigned char nums[]={0x00,0x00,0x00,0x00};
unsigned char channel; //轉(zhuǎn)換通道
unsigned char LEDS[]={0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xB8,0x20,0x28}; //共陽4位數(shù)碼管段碼,字符顯示從'0'到'9'
unsigned char ADC0832(unsigned char channel) //模數(shù)轉(zhuǎn)換
{
unsigned char i;
unsigned char x=0x00;
unsigned char y=0x00;
CLK=0; //初始化
DI=1;
_nop_();
CS=0;
_nop_();
CLK=1;
_nop_();
if(channel==0x00) //通道選擇
{ //通道0
CLK=0;
DI=1;
_nop_();
CLK=1;
_nop_();
CLK=0;
DI=0;
_nop_();
CLK=1;
_nop_();
}
else //通道1
{
CLK=0;
DI=1;
_nop_();
CLK=1;
_nop_();
CLK=0;
DI=1;
_nop_();
CLK=1;
_nop_();
}
4.? 仿真proteus8.6
? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
運(yùn)行:
5.? 設(shè)計(jì)報(bào)告
設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。
6.? 資料清單
設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網(wǎng)盤下載鏈接:【T02】百度網(wǎng)盤下載鏈接
更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集