求at89c51微控制器和adc0809 AD轉換器的連線方法

時間 2021-08-30 10:27:48

1樓:塞千山

把8031直接換成8951就行啦

管腳是一樣的

電路如圖

程式如下

#include

#define uint unsigned int#define uchar unsigned charuchar code leddata=

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

sbit oe  = p1^0;

sbit eoc = p1^1;

sbit st  = p1^2;

sbit clk = p1^3;

void delayms(uint ms)uchar i;

while(ms--)

for(i=0;i<120;i++);

void display_result(uchar d)p2 = 0xf7;

p0 = leddata[d%10];

delayms(5);

p2 = 0xfb;

p0 = leddata[d%100/10];

delayms(5);

p2 = 0xfd;

p0 = leddata[d/100];

delayms(5);

void main()

tmod = 0x02;

th0  = 0x14;

tl0  = 0x00;

ie   = 0x82;

tr0  = 1;

p1   = 0x3f;

while(1)

st = 0;

st = 1;

st = 0;

while(eoc == 0);

oe = 1;

display_result(p3);

oe = 0;

void timer0_int() interrupt 1clk = !clk;

2樓:匿名使用者

8031 和at89c51 是相容的。就是at89c51 的容量更大點。

3樓:匿名使用者

電路應該不用改,直接把8031的31腳ea接高電平就可以了,這樣程式從內部程式存貯器執行了。你可以試一下

89c51微控制器問題,使AT89C51微控制器復位有幾種方法 復位後的狀態如何

一定要採用與運算的話,我是這樣算的 unsigned char target 待測試數unsigned char tmp,i,j 變數tmp 0x01 j 0 for i 7 i 0 i tmp 1 tmp左移一位 接下來判斷j是偶數還是奇數就能知道target裡1的個數了。回hanxingfdx ...

AT89C51的微控制器,晶振是11 0592MHZ的,算延時,要有計算步驟,謝謝

9 void delay 50us uint t 50us延遲函式 10 c 0x0d45 d3 setb c 1 c 0x0d46 ef mov a,r7 1 c 0x0d47 9400 subb a,0x00 2 c 0x0d49 ee mov a,r6 1 c 0x0d4a 9400 subb...

用c語言怎麼在微控制器at89c51上編寫延時10秒的

1 十秒對於微控制器來說是很長很長的時間了,微控制器十秒的時間什麼事都不能做,只在跑這延時程式,那是什麼概念,用中斷的話,微控制器正常執行其他程式,只是時間到了才過來處理延時以後的程式,效率不知道高了多少 2 例程 假設晶振12mhz include reg51.h unsigned int ysj...