Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Status
Not open for further replies.

gozilaz88

Newbie level 3
I doing a small project, i am newbie with programming. I need my temperature sensor to give me an output in the range of temperature 30 to 40 degree. when the temperature sense this certain level of temperature, it will trigger my dc motor, how do i write this programming using ASM.

xpress_embedo

If You want to do this in C...Language
Then post here..

I will give you my Code to Read the Temperature from Temperature Sensor.. and then u can modify your code..

Only if you want to do this in C Language...
And Don't worry..

Someone Other will help u in assembly..

Which Controller are u using

gozilaz88

Newbie level 3
If You want to do this in C...Language
Then post here..

I will give you my Code to Read the Temperature from Temperature Sensor.. and then u can modify your code..

Only if you want to do this in C Language...
And Don't worry..

Someone Other will help u in assembly..

Which Controller are u using

---------- Post added at 00:22 ---------- Previous post was at 00:21 ----------

If You want to do this in C...Language
Then post here..

I will give you my Code to Read the Temperature from Temperature Sensor.. and then u can modify your code..

Only if you want to do this in C Language...
And Don't worry..

Someone Other will help u in assembly..

Which Controller are u using

Thanks for your resources， between i using pic 16f84a

bigdogguru

between i using pic 16f84a

The LM35 is an analog device which outputs a voltage proportional to the sensed temperature, however the PIC16F84A does not have the ADC module required to interface with the LM35.

You will either need to use an external ADC device or select a different PIC for your design with an ADC module.

BigDog

gozilaz88

Newbie level 3
The LM35 is an analog device which outputs a voltage proportional to the sensed temperature, however the PIC16F84A does not have the ADC module required to interface with the LM35.

You will either need to use an external ADC device or select a different PIC for your design with an ADC module.

BigDog

i will be using an external ADC device, the point is how the programming works if i need to get a digital output. For example: if the temperature in the range of 30 to 40 degree, will give a digital signal "1", goes "high". If not will give digital signal of "0", LOW"

engshahrul

Banned
Why not change PIC16F84A to PIC that have ADC Module. Not costly.

gozilaz88

Newbie level 3
Why not change PIC16F84A to PIC that have ADC Module. Not costly.

I planning to change a pic which have ADC module, but the main things how do i write the programming in order to get my requirement.

jackrude

Newbie level 6
Hello there, I am doing about similar project in C language with LM35, ADC0804, so wondering can you email me the code or post in here, thank you very much

Last edited:
neha up

neha up

Points: 2

jackrude

Newbie level 6
If You want to do this in C...Language
Then post here..

I will give you my Code to Read the Temperature from Temperature Sensor.. and then u can modify your code..

Only if you want to do this in C Language...
And Don't worry..

Someone Other will help u in assembly..

Which Controller are u using

hey there, wondering can u email me the code of C language, I am doing a similar project with LM35, At89s51, and ADC0804.
Thank you

xpress_embedo

Hello!!
Have a look at this link....

---------- Post added at 07:18 ---------- Previous post was at 07:14 ----------

Code:
#include <REGX51.H>
#include<stdio.h>
#include<string.h>

sbit INTR = P3^5;
sfr MYDATA = 0x80;        //Port-0
sfr LcdData = 0x90;        //Port-1
sbit RS =  P2^5;
sbit RW =  P2^6;
sbit EN =  P2^7;
void lcdcmd(unsigned char value);
void lcddata(unsigned char value);
void lcdstr(unsigned char msg[]);
void Delay(unsigned int itime);
void SerTX(unsigned char x);
void SerTX_str(unsigned char msg[]);
unsigned char msg[] = "TEMPERATURE --->";
void main()
{
unsigned int temp;
int hundreds,tens,ones;
unsigned char buffer[10];
TMOD = 0x20;    //Timer-1, 8-Bit Auto Reload Mode
TH1 = 0xFD;        //9600 Baud Rate When Crystal Used is 11.0592MHZ
SCON = 0x50;
TR1 = 1;        //Start Timer
MYDATA = 0xFF;    //Making P1 as Input Port
INTR = 1;
RD_ADC = 1;        //Set RD high
WR_ADC = 1;        //Set WR high
lcdcmd(0x38);
Delay(1);
lcdcmd(0x0E);
Delay(1);
lcdcmd(0x01);
Delay(1);
lcdcmd(0x80);
lcdstr("Temperature");
lcdcmd(0x0C);
while(1)
{
lcdcmd(0xC0);
WR_ADC = 0;        //Send WR Pulse
Delay(1);
WR_ADC = 1;        //Low-High Pulse means Start of Conversion
while(INTR == 1);    //Wait until End of Conversion
//When Conversion Gets Completed the INTR Pin Goes Low we get out of the Loop
RD_ADC = 0;        //Send RD Pulse
temp = MYDATA/2;
//Conversion Process Starts Here
ones = temp%10;
temp = temp/10;
tens = temp%10;
hundreds = temp/10;
ones = 0x30 | ones;
tens = 0x30 | tens;
hundreds = 0x30 | hundreds;
lcddata(hundreds);
lcddata(tens);
lcddata(ones);
SerTX_str(msg);
SerTX(hundreds);
SerTX(tens);
SerTX(ones);
SerTX(13);
SerTX(13);
Delay(10);
Delay(10);
}
}
void lcdcmd(unsigned char value)
{
LcdData = value;
RS = 0;
RW = 0;
EN = 1;
Delay(1);
EN = 0;
}
void lcddata(unsigned char value)
{
LcdData = value;
RS = 1;
RW = 0;
EN = 1;
Delay(1);
EN = 0;
}
void Delay(unsigned int itime)
{
unsigned int i,j;
for(i=0;i<1275;i++)
for(j=0;j<itime;j++);
}
void lcdstr(unsigned char msg[])
{
unsigned short int len,i;
len = strlen(msg);
for(i=0;i<len;i++)
{
lcddata(msg[i]);
Delay(1);
}
}
void SerTX(unsigned char x)
{
SBUF = x;
while(TI == 0);
TI = 0;
}
void SerTX_str(unsigned char msg[])
{
unsigned short len,i;
len = strlen(msg);
for(i=0;i<len;i++)
{
SerTX(msg[i]);
}
}

Hope this works.. i haven't tested this code..

Status
Not open for further replies.