سلام
میشه یک دماسنج ساخت که خروجی اون به صورت rs232 , rs485 باشه
در صورت امکان نقشه و برد اونو بزارید
مرسی
میشه یک دماسنج ساخت که خروجی اون به صورت rs232 , rs485 باشه
در صورت امکان نقشه و برد اونو بزارید
مرسی
#include <mega32.h> #include <delay.h> #include <stdio.h> #include <stdlib.h> #define ADC_VREF_TYPE 0xC0 // Read the 8 most significant bits // of the AD conversion result // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <lcd.h> void main(void) { // Declare your local variables here char str[3]; float flt; unsigned char res; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: Int., cap. on AREF ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; lcd_init(16); while (1) { res = read_adc(0); flt = res/4; itoa(flt,str); printf("\n\r%s",str); delay_ms(500); lcd_clear(); lcd_puts(str); }; }
[left]$regfile = "m16def.dat" $crystal = 4000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc $baud = 9600 Stop Adc Start Adc Dim A As Word , Temp As Word Do Start Adc A = Getadc(0) Temp = A / 2 Stop Adc Print Str(a) Cls Lcd Temp Waitms 50 Loop[/left]
دیدگاه