設計,大部分都是跟著學霸的樣子照貓畫虎寫出來的,做了些適當?shù)母膭?br />
代碼和功能都比較簡陋,代碼有注釋,適合單片機入門參考(仿真用的是proteus8.6版本,低版本的可能打不開)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (36.13 KB, 下載次數(shù): 87)
下載附件
2021-6-12 15:38 上傳
屏幕截圖 2021-06-11 143611.jpg (324.02 KB, 下載次數(shù): 79)
下載附件
仿真圖
2021-6-12 10:02 上傳
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰數(shù)碼管斷選碼,不顯示小數(shù)點
- unsigned char b[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //顯示小數(shù)點
- sbit START=P2^4;
- sbit OE=P2^6;
- sbit EOC=P2^5;
- sbit add_a=P2^2;
- sbit add_b=P2^1;
- sbit add_c=P2^0;
- sbit led=P2^7;
- sbit buzzer=P2^3;
- sbit S_1=P0^0;
- sbit S_2=P0^1;
- sbit S_3=P0^2;
- sbit S_4=P0^3 ;
- void Delay1ms(unsigned int count)
- {
- unsigned int i,j;
- for(i=0;i<count;i++)
- for(j=0;j<120;j++);
- }
- void main(void)
- {
- unsigned int addata=0,i;
- unsigned char temp0=0,temp1=0,temp2=0;
- while(1)
- { //采集第一路信號
- add_a=0;
- add_b=0;
- add_c=0;
- START=0;
- START=1;
- Delay1ms(5);
- START=0;
- while(EOC!=1);
- OE=1;
- addata=P1;
- OE=0;
- if(addata>=0xcc) //當大于4.0v時,則使用LED和蜂鳴器報警
- {
- for(i=0;i<100;i++)
- {
- led=~led;
- buzzer=~buzzer;
- }
- led=1; //控制發(fā)光二極管D2閃爍,發(fā)出光報警信號
- buzzer=1; //控制蜂鳴器發(fā)聲,發(fā)出聲音報警信號
- }
- else //否則取消報警
- {
- led=0; //控制發(fā)光二極管D2滅
- buzzer=0; //控制蜂鳴器不發(fā)聲
- }
-
-
- addata=addata*100/51; // 二進制輸出數(shù)據(jù)最高是255,仿真電壓最高是5v,255/5=51,最小單位是51
- temp0=addata%10; // 取個位數(shù) 例如輸出數(shù)據(jù)為123,123/10=12.3,addata為整數(shù),不能等于12.3,只能取余數(shù)3
- temp1=(addata/10)%10; // 取十分位數(shù)
- temp2=(addata/100)%10; //取百分位數(shù)
- for(i=0;i<=200;i++)
- {
-
- S_1 = 0; //第一個數(shù)碼管
- S_2 = 1;
- S_3 = 1;
- S_4= 1;
- P3=b[temp2]; //選取帶有小數(shù)點的段選碼
- Delay1ms(10); //延時
- S_1 = 1; //消隱
-
- //十分位
- S_1 = 1;
- S_2 = 0; //取第二個數(shù)碼管
- S_3= 1;
- S_4= 1;
- P3=a[temp1]; //選取不帶有小數(shù)點的段選碼
- Delay1ms(5);
- S_2 = 1; //消隱
-
- //百分位
- S_1 = 1;
- S_2 = 1;
- S_3= 0; //取第三個數(shù)碼管
- S_4= 1;
- P3=a[temp0]; //選取不帶有小數(shù)點的段選碼
- Delay1ms(5);
- S_3= 1;
- }
- }}
復制代碼
所有資料51hei提供下載:
ADC0809數(shù)碼管電壓表.zip
(134.83 KB, 下載次數(shù): 46)
2021-6-12 10:02 上傳
點擊文件名下載附件
代碼+仿真 下載積分: 黑幣 -5
(仿真用的是proteus8.6版本,低版本的可能打不開)
|