PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Analog - Bộ nhớ - Bảo mật - Cảm biến nhiệt độ (http://www.picvietnam.com/forum/forumdisplay.php?f=59)
-   -   Pic16f877a-lm35-lcd tc1602a (http://www.picvietnam.com/forum/showthread.php?t=4518)

hein_ts 24-04-2011 10:43 AM

LM35 hiển thị 2 led 7seg
 
Trích:

Nguyên văn bởi chicken_boys (Post 42536)
ai có mạch đo nhiệt độ hiển thị trên led 7 đoạn không?
cho em xin với.

Mạch và sơ đồ với chương trình đã post tại:
http://www.picvietnam.com/forum/showthread.php?t=8975
bạn tham khảo nhé!

hein_ts 24-04-2011 10:51 AM

Ô, mình là Hspro đây!
 
Trích:

Nguyên văn bởi khienpzo (Post 43497)
BẠn có thể send bài vào mail của mình không cho mình tham khảo với đang tìm hiểu về đề tài này . Mail của mình khiendohuu@gmail.com .Thanks bạn trước nha

http://www.picvietnam.com/forum/showthread.php?t=8975
của bạn đó

hein_ts 24-04-2011 10:56 AM

Dùng ADC 8 bit
 
Trích:

Nguyên văn bởi dihia (Post 40165)
Sao chỉ hiện nhiệt độ lẻ là sao, bị lỗi gì vậy?

Dùng ADC 8 bit thì sai số là 2 độ. sẽ chỉ hiển thị một là toàn lẻ, hai là toàn chẵn. của bạn rơi vào trường hợp thứ nhất. khắc phục:- thay đổi điện áp chuẩn lấy mẫu: không phải 5V mà là 2,55 hoặc nhỏ hơn. càng nhỏ càng chính xác. tùy mức độ cho phép
- dung ADC 10 bit, sai số 0,5 nhảy chuẩn luân.
nhiệt độ hiển thị có thể sai với môi trường 3~4 độ. Hiệu chỉnh tuyến tính cho giá trị đọc được bạn nhé!

Freeze_Heart 28-04-2011 03:33 PM

read =read*1.960784314;
printf(lcd_putc,"\rNhiet do: %u",read);// cái \r với %u là gì thế trong help của CCS có nó không
Các huynh cho đệ hỏi 2 dòng này có ý nghĩa như thế nào ( trong đoạn code của 2topic ). Mình coi trong help của CCS thì thấy dòng printf dùng để xuất ra máy tính nhưng hok biết có thể xuất ra LCD đươc hok T.T ( sorry mình là newbie )
Thanks all !!!

tranhienvl 29-05-2011 12:59 AM

a co the gui cho e dia chi mail cua a ko e ko nhin thay tren dien dan.em dang tim hieu ve con LM35 va PIC 16X877a

pdkxlily 05-07-2011 09:31 PM

Trích:

Nguyên văn bởi thanhtrung14487 (Post 35824)
Code:

#define <16f877a.h>
#include "16F877A.h" // Đi kèm chương trình dịch, chứa khai báo về các thanh ghi trong
mỗi con PIC, dùng cho việc cấu hình cho PIC
#device *=16 adc=8 // Khai báo dùng con trỏ 8 hay 16 bit, bộ ADC là 8 hay 10 bit
//#device PIC16F877A *=16
#use delay(clock=12000000) // Tần số thạch anh sử dụng

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT // Khai báo về cấu hình cho PIC (# Fuses HS / / OSC tốc độ cao (> 4mhz) HS là khai báo giao động ngoài, # Fuses NOPROTECT / / Mã không bảo vệ khỏi đọc, # Fuses NOPUT / / No Power Up Timer, # Fuses NODEBUG / / Không có chế độ Debug cho ICD, # Fuses NOBROWNOUT / / Không đặt lại brownout, # Fuses NOLVP# use delay (clock = 20000000)
//#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7, bits=9) // Khai báo cho giao tiếp nối tiếp RS232
#include <LCD.C> // khai bao thu vien LCD
#INT_EXT // #INT_xxx : Khai báo địa chỉ chương trình phục vụ ngắt
int8 read;
void main(void)
{
// set_tris_b(0); // cai dat cong b la cong ra
set_tris_a(0xFF); // cai dat cong a la cong vao
set_tris_d(0x00); // cai dat cong d la cong ra



// Khoi tao cho ngat ngoai
enable_interrupts (INT_EXT); //khoi tao ngat ngoai
ext_int_edge(H_TO_L);//chon bit canh xuong chan RA4
enable_interrupts (GLOBAL);// ngat toan cuc
//Khoi tao ADC
setup_adc_ports(AN0);// Setup_ADC_ports(value) //Xác định chân lấy tín hiệu Analog và điện thế chuẩn

setup_adc(ADC_CLOCK_INTERNAL);// _CLOCK_INTERNAL : thời gian lấy mẫu bằng xung clock
set_ADC_channel(0);
//delay_ms(10);
//read = read_adc();

delay_ms(50);

while(TRUE)
{
lcd_init();//khai bao co su dung LCD
read=read_adc();//read sẽ có giá trị bằng giá trị điện áp mà chân được
read =read*1.960784314;
printf(lcd_putc,"\rNhiet do: %u",read);
delay_us(20);
}
}
em lam rui mo phong chi hien thi len lcd toan nhiet do le thoi cac anh coi giup em no sai va thua cho nao ko.email:thanhtrungvn87@yahoo.com.em cam on!

dùng adc 8 bit thường sai 1-2 độ
thay adc 10bit read =read/0.2048;
là sẽ hết ngay

ddong 17-10-2011 09:27 AM

píc6f877a+lm35+pc
 
ai có ptoject nào hoàn chỉnh về píc6f877a+lm35+giao tiếp máy tính cho mình xin với.mình mới làm nên kko biết mấy.

malcolmtys 29-10-2011 04:54 PM

em đang làm đồ án môm học.. là đề tài đo nhiệt độ sử dụng pic 16f877a,lm335,hien thi LCD. Cảnh báo nhiệt độ ở 70oC đồng thời den sáng. Ai giúp e phan code sử dụng hợp ngữ em mới học về pic..... mấy anh chị có thể cho e sơ đồ nguyên lý để dễ dàng thực hiện dc ko>.... thanhk

norimo 23-02-2012 07:52 PM

Khi dùng ADC 8bit, tín hiệu ADC đọc được từ chân ADC như sau:

1V 2V 3V 4V 5V
51 102 153 204 255

Tức là nếu điện áp vào 1V thì tín hiệu digital tăng 51
1V  ADC=51
1C10mVADC=10*51/1000
Suy ra T ADC = T*10*51/1000
Suy ra T = ADC*1000/10/51 = ADC * 1.960784314

Công thức này không đúng lắm. Bác nào có cái chính xác hơn không.

norimo 24-02-2012 04:57 PM

Up.........................

{}{}{} 01-03-2012 01:14 PM

help me!!!!!
 
em mới học về LCD chưa hiểu j mấy thì thầy bắt làm đề tài hiển thị 2 dòng chữ BKHN, VI XU LY trên 2 dòng của LCD1602 viết bằng CCS. Các anh có thể giúp em được ko ah? em cảm ơn nhiều lắm.

letanminh 01-03-2012 01:57 PM

Thực tế 8 Bit nhưng khi thiết kế mạch và lập trình phải 4 Bit để tiết kiệm chân PIC: Đầu tiên phải lấy thư viện LCD.
Đoạn cos sau đây có thể tham khảo
#include <htc.h>
#include "lcd.h"
#include <stdio.h>
//Cấu hình cho Chip
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & FCMDIS);
int value; //Khai báo biến value
void main()
{
VCFG1=VCFG0=0; //Điện áp tham chiếu Vref+=Vdd,Vref-=Vss
TRISA3=1; //RA3 là Input
ANS3=1; //RA3 là Analog(trong thanh ghi ANSEL:Analog Select Register)
CHS0=1; //Chọn kênh ADC : AN3 tương ứng chân RA3(trong thanh ghi ADCON0)
CHS1=1;
CHS2=0;
CHS3=0;
ADCS0=1; //Thời gian hoàn thành (Focs/8))
ADCS1=0;
ADFM=0; //Định dạng kết quả ADC 10bit được sau khi được chuyển đổi,canh chỉnh trái=>value=(high*4+low)
ADON=1; //Bat che do ADC

lcd_init(); //Hàm khởi tạo LCD chứa trong thư viện "lcd.c"
lcd_putc('\f'); //Hiển thị ký tự lên LCD trong dấu ' ' ,ở đây\f là xóa LCD
while(1)
{
GODONE=1; //Bắt đầu chuyển đổi
value=ADRESH*4 + ADRESL; //Gán biến value = giá trị chuyển đổi 10bit
lcd_gotoxy(0,0); //Chỉnh con trỏ chuột về đầu dòng hàng thứ nhất LCD
printf(" Gia tri ADC"); //In chuỗi ký tự:"Gia tri ADC"
printf("\n %d",value); //In giá trị ADC 10bit sau sau khi chuyển đổi được gán vào biếnvalue
}
}

masterking 16-06-2012 12:25 AM

Đồ cổ mà vẫn còn hót quá... thank's chủ thớt nhé...................

chutuyen 28-11-2012 10:07 PM

ban nao giup minh code de tai tren bang notepad voi dc khong?. minh k hieu gi ve ccs ca~.

minh dang gap van de tai cho~ hien thi nhiet do len lcd.email cua minh :chutuyen2509@gmail.com

xin loi viet key minh bi loi~> > rat mong dc su giup do~ .

a minh hien dang hoc tai cd kt cao thang.

trungthao_uet55 20-03-2014 10:26 PM

1 Attachment(s)
Trích:

Nguyên văn bởi Klong19 (Post 27639)
Lâu nay lên diễn đàn mình chỉ toàn đọc thôi chứ hok post gì vì chưa biết gì để post. Giờ mới làm xong một mạch nhỏ là mạch đo nhiệt độ, hiển thị lên LCD, xin post lên đây bài báo cáo hoàn chỉnh của mình vì biết đâu mý bạn mới bắt đầu thấy cần, có đầy đủ từ Proteus, code CCS, file hex lẫn mạch in luôn . Tiện thể mình cám ơn picvietnam và mý anh chị có những Tutorial mà mình đã đọc trong khi làm mạch này, và những người đã hướng dẫn mình.

Mọi người cho mình hỏi chút, mình muốn hiển thị lần lượt các giá trị ở mỗi chân an0,1,2 lên lcd bằng cách ấn phím, mọi người có thể cho m xin bài code được không, m ko biết tí gì về code này cả.

eshall 06-01-2015 01:07 PM

không biết là cho con biến trở vào để làm gì ạ ? Có phải là để chỉnh độ nhạy của lm35 k các bác @@

kidmaster08 07-01-2015 12:22 PM

Hãy tham gia diễn đàn mới nào. rất mong được sự giúp đỡ của mọi người
http://dientucoban.bestforumlife.com


Múi giờ GMT. Hiện tại là 10:13 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam