PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 05-04-2011, 09:49 PM   #46
docgiaclong
Nhập môn đệ tử
 
Tham gia ngày: Apr 2010
Bài gửi: 4
:
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

nếu em không muốn dùng 3 lênh trên thì em phải làm thế nào hả các anh
docgiaclong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-04-2011, 09:29 PM   #47
caovanhuong
Đệ tử 2 túi
 
caovanhuong's Avatar
 
Tham gia ngày: Jul 2009
Bài gửi: 40
:
Trích:
Nguyên văn bởi docgiaclong View Post
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

nếu em không muốn dùng 3 lênh trên thì em phải làm thế nào hả các anh
buộc phải có 2 lệnh này bạn à.
__________________
Cao Văn Hưởng
SĐT: 01672754113
Email: caovanhuong@webdien.com
Nhận thiết kế mạch điện tử, PCB (Orcad)

caovanhuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-04-2011, 01:51 PM   #48
docgiaclong
Nhập môn đệ tử
 
Tham gia ngày: Apr 2010
Bài gửi: 4
:
mình tìm ra rồi ah
Thực ra không cần dùng 3 lệnh ấy vẫn làm được
bằng cách sau

#LOCATE ADCON0= 1FH
#LOCATE ADCON1= 9FH
VOID MAIN()
{ ADCON0=0XC5;
ADCON1=0X40;
docgiaclong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2011, 11:20 PM   #49
trinh hoai vinh
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 1
:
em can ma code de viet chuong trinh dem san pham dung bien hong ngoai va pic 16f:877a ai co giup em nha:vinh913@yahoo.com
trinh hoai vinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2011, 11:40 PM   #50
tanbka
Đệ tử 5 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
:
Trích:
Nguyên văn bởi trinh hoai vinh View Post
em can ma code de viet chuong trinh dem san pham dung bien hong ngoai va pic 16f:877a ai co giup em nha:vinh913@yahoo.com
Bạn còn đang chưa làm được chỗ nào, chỗ nào gặp khó khăn hỏi thì mọi người mới giúp được chư, bạn hỏi thế này thì thuê anh em làm trọn gói cho xong.
tanbka vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-06-2011, 07:47 PM   #51
alycuong
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 16
:
Trong thư viện lcd.c có sẵn của CCS thì có các hàm bên dưới, e chỉ biết công dụng của 1 số, a nào biết chú thích giúp e các cái còn lại với.
Code:
void lcd_send_byte(BYTE address, BYTE n)         ??? cai nay la gi ah?
void lcd_send_nibble(BYTE n)                 ??? cai nay la gi ah?
void lcd_init(void)                           //Khoi tao LCD
void lcd_gotoxy(BYTE x, BYTE y)              // Di den vi tri cot , hang
void lcd_putc(char c)                        // Gui ki tu len LCD
char lcd_getc(BYTE x, BYTE y)              // Nhan ki tu tu LCD
Cho e hỏi là với 1 thư viện khác thì có hàm void LCD_PutCmd ( unsigned int cX )

Ví dụ muốn nhấp nháy con trỏ thì viết : LCD_PutCmd(0x0f)

Nhưng với thư viện lcd.c

void lcd_send_byte(BYTE address, BYTE n)
void lcd_send_nibble(BYTE n)
void lcd_init(void)
void lcd_gotoxy(BYTE x, BYTE y)
void lcd_putc(char c)
char lcd_getc(BYTE x, BYTE y)


Với các lệnh trên e k biết làm sao để nhấp nháy con trỏ hết. A nào bít hướng dẫn gúp e. E cảm ơn nhiều lắm!
alycuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-07-2011, 10:03 AM   #52
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
Trích:
Nguyên văn bởi stupid11 View Post
Bạn muốn giúp vấn đề gì.
biên dịch nó báo thế này là sao bạn "*error 18 "123(mani).c" Line 0(0,1): file can not be opend "
Trích:
{
docADC(); // adc 10bit
x=read_ADC(); // cái này là đọc giá trị adc đúg ko à ??
x=x/2.049;
y=x;
hienthi(x);
}
cái chia 2.049 là giải thix kiểu này đúng ko các bác
adc 10bit 0-1023 ,mà V_ref = VCC=5V nên ADC_value=1 tương ứng 5/1024=4.887mV
Trong khi đó LM335
cho ra điện áp là 10mV/1K nên để giá trị ADC thay đổi 1 đơn vị thì nhiệt độ phải thay đổi là 2K => x= ADC_value*(4.887/10)

thay đổi nội dung bởi: pdkxlily, 05-07-2011 lúc 10:25 AM.
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-07-2011, 10:39 AM   #53
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
Trích:
Nguyên văn bởi stupid11 View Post

Trong LCD có ký hiệu "oC" bạn chỉ việc

portb=0b00101110;xuat(); //bạn tham khảo thêm bảng mã LCD//

Chúc bạn thành công.
Trích:
#include <16F877A.h>
#include <def_877a.h>
#device *=16 adc=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <lcd_lib_4bit.c>


void convert_bcd(int8 x);
int8 t1,t2;
void main()
{



trisa = 0xFF;
trisb = 0x01;
trisd = 0x00;

LCD_init();
Printf(LCD_putchar,"Kenh 0,1:");
// Khoi tao cho ngat ngoai
enable_interrupts (INT_EXT);
ext_int_edge(H_TO_L);
enable_interrupts (GLOBAL);
// Khoi tao che do cho bo ADC
setup_adc_ports(AN0_AN1_AN3);
setup_adc(ADC_CLOCK_INTERNAL);
delay_us(10);
setup_adc_ports(AN0);



while(true)
{
set_ADC_channel(0);
t1 =(float)read_adc();
t1=t1/0.5102;
// convert_bcd((int8) t1);
LCD_putcmd(0xC0);
printf(LCD_putchar,"T0=%u",t1);
printf(LCD_putchar,"C");

set_ADC_channel(1);
t2=(float)read_adc();
t2=t2/0.5102;
LCD_putcmd(0xC7);
printf(LCD_putchar,"T1=%u",t2);
printf(LCD_putchar,"C");


}
}
mình làm lcd_4bit thì khúc xuất ra chữ độC ký tự đặc biệt thì mình làm sao bạn .thêm giúp mình với
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-07-2011, 11:37 AM   #54
danghien719
Đệ tử 3 túi
 
danghien719's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 52
:
kí tự đặc biệt là sao ?
đoạn nào ?
Như thế này là sao : printf(LCD_putchar,"T0=%u",t1);
hịc, tôi ko hiểu đc đoạn code này của bạn.
__________________
HIENCLUBVN -Naval Academy
danghien719 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-07-2011, 09:34 PM   #55
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
Trích:
Nguyên văn bởi danghien719 View Post
kí tự đặc biệt là sao ?
đoạn nào ?
Như thế này là sao : printf(LCD_putchar,"T0=%u",t1);
hịc, tôi ko hiểu đc đoạn code này của bạn.
của mình là đo nhiệt độ 2 kênh bạn ơi t1 là kênh 0 t2 là kênh 1
printf(LCD_putchar,"C");
thay vì có chữ C thì mình mún thêm ký tự độ cho chuẩn thôi mà
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-07-2011, 10:14 AM   #56
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi pdkxlily View Post
của mình là đo nhiệt độ 2 kênh bạn ơi t1 là kênh 0 t2 là kênh 1
printf(LCD_putchar,"C");
thay vì có chữ C thì mình mún thêm ký tự độ cho chuẩn thôi mà
có phải bạn muốn hiển thị như thế này:
Hình Kèm Theo
File Type: jpg nhiet_do.jpg (120.5 KB, 0 lần tải)
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-07-2011, 10:31 AM   #57
danghien719
Đệ tử 3 túi
 
danghien719's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 52
:
Trích:
Nguyên văn bởi pdkxlily View Post
của mình là đo nhiệt độ 2 kênh bạn ơi t1 là kênh 0 t2 là kênh 1
printf(LCD_putchar,"C");
thay vì có chữ C thì mình mún thêm ký tự độ cho chuẩn thôi mà
Hì, bạn lại ko hiểu ý tôi rồi. "T0=%u" ư ? bạn có hiểu rõ cái này ko ? Tại sao bạn lại làm như thế này. Tôi hiểu ý bạn là : u = unsigned int8 hay là char hay là singed nhưng thế thì đã sao ?
LCD là ACSII mà. Hì, vậy muốn hiện ra LCD thì làm sao đây.
Rất đơn giản là phải chuyển number sang char. Hay nói chính xác là chuyển số mà adc đọc được ra kí tự mã ASCII. Thế là bạn ok rồi nhé.
Bạn đã hiểu khá rõ về sự làm việc của LCD rồi đấy.
Chúc bạn thành công.
P/M : Nếu bạn bó tay ko xây dựng đc Function thì pm cho tôi : Y!M : danghien_004
Thân.
__________________
HIENCLUBVN -Naval Academy
danghien719 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-07-2011, 10:59 AM   #58
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi danghien719 View Post
Hì, bạn lại ko hiểu ý tôi rồi. "T0=%u" ư ? bạn có hiểu rõ cái này ko ? Tại sao bạn lại làm như thế này. Tôi hiểu ý bạn là : u = unsigned int8 hay là char hay là singed nhưng thế thì đã sao ?
LCD là ACSII mà. Hì, vậy muốn hiện ra LCD thì làm sao đây.
Rất đơn giản là phải chuyển number sang char. Hay nói chính xác là chuyển số mà adc đọc được ra kí tự mã ASCII. Thế là bạn ok rồi nhé.
Bạn đã hiểu khá rõ về sự làm việc của LCD rồi đấy.
Chúc bạn thành công.
P/M : Nếu bạn bó tay ko xây dựng đc Function thì pm cho tôi : Y!M : danghien_004
Thân.
printf(LCD_putchar,"T1=%u",t2);
bạn đó viết như vậy là đúng rồi. nó tự động chuyển number sang kí tự mã ASCII.
%u:định dạng dữ liệu số nguyên không dấu 8bit
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-07-2011, 12:04 PM   #59
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
Trích:
Nguyên văn bởi tdm View Post
có phải bạn muốn hiển thị như thế này:
đúng rồi đó bạn ý mình là mún nó ra ký tự trong bảng mã LCD đó
%u :số nguyên hex ko dấu ^^
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-07-2011, 02:06 PM   #60
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi pdkxlily View Post
đúng rồi đó bạn ý mình là mún nó ra ký tự trong bảng mã LCD đó
%u :số nguyên hex ko dấu ^^
kí tự đó không nằm trong bảng mã LCD.bạn phải tự tạo dữ liệu rồi lưu vào vùng CGRAM của LCD và truy xuất nó ra.
Hình Kèm Theo
File Type: jpg nhiet_do.jpg (124.0 KB, 1 lần tải)
File Kèm Theo
File Type: pdf lcd1602a_398762.pdf (288.5 KB, 82 lần tải)
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam