hongquyen
17-08-2009, 11:27 PM
chào mọi người:em đang làm mô chương trình hiển thị điện áp đo được ra LCD nối tiếp dùng PIC16f887 nhưng có điều còn thắc mắc xin mọi người giúp đỡ ạ.
vấn đề của em là:
- em muốn điện áp anlog đo được hiển thị ra LCD nối tiếp chỉ 1 số ( có nghĩa là trước khi đọc điện áp analog và hiển thị ra LCD thì em đã xóa LCD rồi) nhưng lỗi ở đây là các ký tự lại hiển thị 1 cách liên tục.
-em có post phần cứng ( hình có tên là h1.jpg và LCD thể hiện lỗi) trong proteus và code trong ccsc.
mong mọi người gúp em gảii quyết vấn đề này. Em cảm ơn
code:
#include <16f887.h>
#device adc=8
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_d0,rcv=pin_d1) //thiet lap noi tiep
void main()
{
int vin0; //bien dau vao
setup_adc(adc_clock_internal); //thiet lap xung clock noi
setup_adc_ports(an0); //chon ngo vao analog
set_adc_channel(0);
delay_us(10);
for(;;)
{
vin0=read_adc();
vin0=(vin0/32)+0x30; //tao ma ASCII
delay_ms(1000);
putc(254); //xoa hien thi lcd
putc(1);
printf("input=%u",vin0); //xuat rs232
delay_ms(1000);
}
}
vấn đề của em là:
- em muốn điện áp anlog đo được hiển thị ra LCD nối tiếp chỉ 1 số ( có nghĩa là trước khi đọc điện áp analog và hiển thị ra LCD thì em đã xóa LCD rồi) nhưng lỗi ở đây là các ký tự lại hiển thị 1 cách liên tục.
-em có post phần cứng ( hình có tên là h1.jpg và LCD thể hiện lỗi) trong proteus và code trong ccsc.
mong mọi người gúp em gảii quyết vấn đề này. Em cảm ơn
code:
#include <16f887.h>
#device adc=8
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_d0,rcv=pin_d1) //thiet lap noi tiep
void main()
{
int vin0; //bien dau vao
setup_adc(adc_clock_internal); //thiet lap xung clock noi
setup_adc_ports(an0); //chon ngo vao analog
set_adc_channel(0);
delay_us(10);
for(;;)
{
vin0=read_adc();
vin0=(vin0/32)+0x30; //tao ma ASCII
delay_ms(1000);
putc(254); //xoa hien thi lcd
putc(1);
printf("input=%u",vin0); //xuat rs232
delay_ms(1000);
}
}