把溫度的值如何透過RS232傳送到電腦 |
尚未結案
|
a25821346
一般會員 發表:2 回覆:3 積分:1 註冊:2013-08-09 發送簡訊給我 |
#include "reg51.h" int sample=5000; unsigned char value; void convert(void); main() IE=0x83; TH0=(65536-5000)/256; TCON=0x01; P1=0xff; while(1); void EX0_int(void)interrupt 0 while(--sample==0) sample=4000; convert(); ADC_Port=0; /*EX0_INT*/ { TL0=(65536-5000)%6; } { temp=4*value; buffer[1]=(temp00)/100; buffer[3]=((temp00)0); void display(void) char i; i =buffer[num]; num ; num=0; |
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
給你一個概念,你所得到的溫度應該是一個數字(value), 你只要把這個數字丟給 UART 就可以透過 UART/RS232 傳給 PC, 你可以再去參考 8051 寫 UART or RS-232 的那一段,研讀一下就可以了. PC 端目前都是 XP, VISTA, WIN8, 所以不一定有 HyperTerminal 的這個軟體可以接收 RS232 傳來的資料,去下載一些免費的軟體, 一樣可以做到的. ===================引 用 a25821346 文 章=================== #include "reg51.h" int sample=5000; unsigned char value; void convert(void); main() IE=0x83; TH0=(65536-5000)/256; TCON=0x01; P1=0xff; while(1); void EX0_int(void)interrupt 0 while(--sample==0) sample=4000; convert(); ADC_Port=0; /*EX0_INT*/ { TL0=(65536-5000)%6; } { temp=4*value; buffer[1]=(temp00)/100; buffer[3]=((temp00)0); void display(void) char i; i =buffer[num]; num ; num=0; |
a25821346
一般會員 發表:2 回覆:3 積分:1 註冊:2013-08-09 發送簡訊給我 |
改成這樣呢??
#include "reg51.h" unsigned char xdata ADC_Port ; int sample=5000; char num=0; unsigned char value; unsigned char buffer[4]={0,0,0,0}; void convert(void); void display(void); main() { IE=0x93; TMOD=0x21; TH0=(65536-5000)/256; TL0=(65536-5000)%6; TH1=255; TCON=0x01; SCON=0x50; TR0=1; TR1=1; P1=0xff; ADC_Port=0; TI=1; while(1); } void EX0_int(void)interrupt 0 { while(--sample==0) { sample=4000; value=ADC_Port; convert(); } ADC_Port=0; } i<<=4; i =buffer[num]; P1=i; num ; if(num==4) num=0; } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |