初学adc0804,从最简单的东西,暂时就用数码管显示出电阻上的电压值,但是不能成。请帮我看一看:
电路图:
把关键部分画出来了,单片机部分复位外部晶振之类的没画。就让数码管显示R5上电压。数码管(共阴)用了前三位。
程序:
#include<reg52.h> unsigned char code duma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示段码 sbit cs=P1^5; //使能端 sbit rd=P1^6; //读端口 sbit wr=P1^7; //写端口 sbit w0=P1^0; sbit w1=P1^1; sbit w2=P1^2; sbit w3=P1^3; void delay(int i) //延时程序 { int x; for (x=i;x>0;x--); } void init() { w0=0; P2=0x3f; delay(100); w1=0; P2=0x3f; delay(100); w2=0; P2=0x3f; delay(100); } void main() { uchar value,k,l,m,n; init(); while(1) { cs=0; wr=0; delay(50); wr=1; cs=1; delay(80); cs=0; rd=0; delay(20); value=P1; rd=1; cs=1; value=value*19.5; k=value/100; l=value%100; m=l/10; n=l%10; w0=0; P2=duma[k]|0x80; delay(100); w1=0; P2=duma[m]; delay(100); w2=0; P2=duma[n]; delay(100); } }
实验现象:
仅仅数码管被点亮了,显示888.
老师们快帮帮我,这个问题不解决没办法再往前走。
谢谢
|