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)

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à 08:05 AM.

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