找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2206|回復: 1
打印 上一主題 下一主題
收起左側(cè)

單片機數(shù)字電壓表的程序設(shè)計

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1013275 發(fā)表于 2022-4-18 16:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
數(shù)字電壓表的設(shè)計
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define unit unsigned int
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unit ADresult[11];
sbit DATOUT=P1^0;
sbit DATIN=P1^1;
sbit CS=P1^2;
sbit IOCLK=P1^3;
sbit EOC=P1^4;
sbit weil=P3^0;
sbit wei2=P3^1;
sbit wei3=P3^2;
sbit wei4=P3^3;
void delay_ms(unit i)
{
int j;
for(;i>0;i--)
for(j=0; j<123;j++);
}
unit getdata(uchar channel)
{
uchar i,temp;
unit read_ad_data=0;
channel=channel<<4;
IOCLK=0;
CS=0;
temp=channel;
for(i=0;i<12;i++)
{
if(DATOUT) read_ad_data=read_ad_data|0x01;
DATIN=(bit)(temp&0x80);
IOCLK=1;
_nop_();_nop_();_nop_();
IOCLK=0;
_nop_();_nop_();_nop_();
temp=temp<<1;
read_ad_data<<=1;
}
CS=1;
read_ad_data>>=1;
return(read_ad_data);
}
void dispaly(void)
{
uchar qian,bai,shi,ge;
unit value;
value=ADresult[2]*1.221;
qian=value%10000/1000;
bai=value%1000/100;
shi=value%100/10;
ge=value%10;

weil=1;
P2=table[qian]-128;
delay_ms(1);
weil=0;

wei2=1;
P2=table[bai];
delay_ms(1);
wei2=0;

wei3=1;
P2=table[shi];
delay_ms(1);
wei3=0;

wei4=1;
P2=table[ge];
delay_ms(1);
wei4=0;
}
main(void)
{
ADresult[2]=getdata(2);
while(1)
{
_nop_();_nop_();_nop_();
ADresult[2]=getdata(2);
while(!EOC);
dispaly();
}
}
附件里面是仿真圖,不含代碼(自行生成hex文件)僅供參考,請自行測試,如有錯誤請告知:
Proteus仿真下載: 數(shù)字電壓表的設(shè)計2.zip (27.24 KB, 下載次數(shù): 40)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:926972 發(fā)表于 2022-11-30 11:15 | 只看該作者
最好有個注釋
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表