سلام
میشه یک دماسنج ساخت که خروجی اون به صورت 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]
دیدگاه