看板 ASM 關於我們 聯絡資訊
程式如下 http://www.wretch.cc/blog/grlie8027/8647316 #include "at89x51.h" unsigned char xdata adc_port; int sample=1000; unsigned char value; unsigned char buffer[4]={0,0,0,0}; void convert(void); main() { IE=0x81; TCON=0x01; adc_port=0; while(1) ; } void EX0_int(void) interrupt 0 { while(--simple==0) { sample=1000; value=adc_port; convert(); } adc_pot=0; } void convert(void) { unsigned int temp; temp=2*value; buffer[0]=temp/1000; buffer[1]=(temp%1000)/100; buffer[2]=((temp%1000)%100)/10; buffer[3]=((temp%1000)%100)%10; } 原本程式不是這樣 還有加入LCD程式 可是我把他拿掉 剩下功能只要0804把光敏電阻電阻直轉換過來程式就好了 拿掉這樣正確嗎@@? 因為拿掉之後不會顯示 我不知道正不正確= = 還有temp value 哪個才是代表正確得光敏電阻值?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.56.98
ksmrt0123:你程式都不縮排的嗎? 04/27 19:32
ksmrt0123:可能是 while(--simple==0) 這邊有問題... 04/27 19:33
ruemann:為什麼要用 while ? 另外 temp 最大也才 255,除1000做啥? 04/27 20:44
ruemann:另外就是int是16bits嗎? 04/27 20:45
ksmrt0123:我用過的8051 C (Keil/IAR) 的int是 16 bits沒錯 04/27 23:07
grlie8027:除1000好像就是各什百千位 還是BUFFER也是LCD的程式? 04/28 05:55
wuonline:除1000:取千位數值,除100:取百位數值,除10:取十位數值 04/28 10:41
wuonline:%:取餘數 04/28 10:41
grlie8027:重點是 這城市這樣有問題嗎 04/28 12:34
grlie8027:還有要取光敏轉換後數值是要用temp還是value 04/28 12:35
squall0734:正確的電阻直應該是value吧~temp應該是要轉換成lcd顯 07/02 18:09
squall0734:示才做的換算~看這程式應該之前使用熱敏電阻測溫度用的 07/02 18:09