我在做AD實驗時,用C語言的程序里,把P1置1了,發現還是不能當做輸入,具體該怎么做呢?下面是我寫的程序:
硬件:AD輸出接到P1,同時也接到8個LED。led可以顯示不同的燈亮。我想把這些值從P1輸入,然后從P0輸出,從P0口輸出后面的也解決了。只是P1=1后,還是沒有 能 把AD的值從P1輸入(這就是問題)。請問程序里有什么問題?
該怎么修改?不勝感激!
#include<reg52.h> sbit wr=P3^6; sbit rd=P3^7; sbit dula=P2^6; sbit wela=P2^7; #define uchar unsigned char #define uint unsigned int uchar disnum,count,bai,shi,ge; uint m,n; display(uchar,uchar,uchar); delay(uchar); uchar code tabledu[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void init(); void start(); void main() { P1=0xFF; //P1 gao? delay(500); while(1) { init(); start(); delay(2); rd=0; delay(2); rd=1; delay(2); //P0=P1; disnum=P1;//?????P1?? bai=disnum/100; shi=disnum%100/10; ge=disnum%100%10; display(bai,shi,ge); } } void init()// { P0=0x7f; dula=0;// wela=0; } void start() { wr=1; wr=0; wr=1; } delay(uchar x) { for(m=10;m>0;m--) for(n=x;n>0;n--); } display(uchar bai,uchar shi,uchar ge) { P0=0x7f;//0111 1111,make ADC's CS low. wela=1; wela=0; P0=tabledu[bai]; dula=1; dula=0; P0=0x7e;//0111 1111,make ADC's CS low. wela=1; wela=0; delay(1); P0=0x7f; wela=1; wela=0;// P0=tabledu[shi];// dula=1; dula=0; P0=0x7d; wela=1; wela=0; delay(1);//lesson4_5 P0=0x7f; wela=1; wela=0;// P0=tabledu[ge];// dula=1; dula=0; P0=0x7b; wela=1; wela=0; //delay(1); }
怎么實現輸入呢?
怎么實現輸入呢?
我是菜鳥。輕拍磚!
硬件電路已經定了。接口都定了。怎么輸入輸出只能用接好的口。
光盤自帶的電路圖,要按照電路圖來寫程序吧。
假如想自由發揮,得自己焊板子了。
多研究研究電路圖。電路是基礎,軟件可以改,但是開發板是已經定了,不能越過開發板去隨意寫程序。
我也是剛學,不過有一定的數電模電基礎。有機會砸門多交流交流啊。
嘿嘿。
qq757084734
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |