单片机简易数字电压表,仿真不出来,求救各路大神,下面是程序和图,明天就要用
下面是程序#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharucharcodetable[]=...
下面是程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90};uchar disp[4]; //定义数组变量sbit ST=P3^0; //定义START引脚sbit OE=P3^1; //定义OE引脚sbit EOC=P3^2; //定义EOC引脚sbit CLK=P3^3; //定义CLOCK引脚sbit p17=P1^7; //定义数码管小数点int getdata,temp;void delay(uint z);void display();void initial();void main(){int getdata=0;initial(); //调用初始化函数while(1){OE=0; //刚开始禁止将转换结果输出ST=0;ST=1;ST=0; //启动A/D转换开始while(EOC==1) //等待转换结束OE=1; //允许转换结果输出getdata=P0; //将转换结果赋值给变量getdataOE=0; //禁止转换结果输出temp=getdata*1.0/255*5000; //将得到的数据进行处理disp[0]=temp%10; //取得个位数disp[1]=temp/10%10; //取得十位数disp[2]=temp/100%10; //取得百位数disp[3]=temp/1000; //取得千位数display(); //调用显示子程序}}void delay(uint z){ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}void initial() //中断服务程序初始化{ TMOD=0x01; TH0=(65536-20)/256; TL0=(65536-20)%256; EA=1; ET0=1; TR0=1;}void timer0()interrupt 1 //给ADC0808提供25kHZ的时钟脉冲{ TH0=(65536-20)/256; TL0=(65536-20)%256; CLK=~CLK;}void display() //将显示结果在数码管上显示{ P2=0xfe; P1=table[disp[0]]; delay(1); P2=0xfd; P1=table[disp[1]]; delay(1); P2=0xfb; P1=table[disp[2]]; delay(1); P2=0xf7; P1=table[disp[3]]; delay(1);p17=0;
展开
4个回答
艾普斯
2024-07-18 广告
2024-07-18 广告
稳频稳压电源哪家好?艾普斯电源(苏州)有限公司开始专业研发、制造及营销交流稳压电源,满足全球电子及信息业对电源设备日益蓬勃的市场需求。迄今为止,业已发展成为交流不间断电源、稳压电源、变频电源、中频航空- 军事专用电源、直流电源、逆变电源等产...
点击进入详情页
本回答由艾普斯提供
展开全部
话说阁下急用还如此小气,一分也不肯打赏~真有大神就奇迹了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询