View Single Post
Old 05-06-2013, 03:35 PM   #5
internet.com
Đệ tử 1 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 18
:
Smile

Trích:
Nguyên văn bởi vanhungbk1 View Post
mình có chương trình này :

#define <16f877a.h>
#include "16F877A.h"
#device *=16 adc=8
//#device PIC16F877A *=16
#use delay(clock=40000000)

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
//#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7, bits=9)
#include <LCD.C>
#INT_EXT
int8 read;
void main(void)
{
// set_tris_b(0);
set_tris_a(0xFF);
set_tris_d(0x00);

//Khoi tao ADC
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
delay_ms(50);

while(TRUE)

{
lcd_init();
read=read_adc();
read =read*0.3951022229;
printf(lcd_putc,"\rLUU LUONG: %u" ,read);
delay_us(10);
lcd_gotoxy( 2,2 );
lcd_putc ("DA VDK:Nhom 8 ");
}
}
========================================

đây là mạch trên Protues



giờ mình muốn thay đổi phần hiển thị trên LCD theo kiểu là khi cho chạy thì LCD hiển thị lên tên của từng ngưới trong nhóm, sau đó mới hiển thị như trên !

thì làm thế nào các bạn ?
Bạn chú ý một số ý sau nha:
- #define <16f877a.h> => #include <16f877a.h>
- #use delay(clock=40000000), 40MHz hay 4MHz??? => viết #use delay(clock=40MHz) cho dễ nhìn.
- #use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7, bits=9), dùng bits=8 là được rồi, cũng ko cần 9 đâu.
- lệnh lcd_init() để trước khi vào vòng while.
- để hiển thi tên từng người thì sau lcd_init(), cho xuất tên lên LCD, delay khoảng 1s (bạn delay_us thì ko kịp nhìn thấy tên ai đâu) rồi xóa LCD, viết tiếp tên người kia. Sau khi hiện tên người cuối cùng bạn xóa LCD rồi vào vòng while. Lệnh xóa thì vào file LCD.c bạn include ấy.
internet.com vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn