![]() |
char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '};
-khi thực hiện tính toán xong,kết quả trả về là 1 con số...mình sẽ tham chiếu giá trị tính toán được vào mảng này để được 1 kí tự =>xuất ra LCD. vd:số dem=85; chuc=dem/10; dv=dem%10; portb=ht[chuc]; //chuc="8"=> "ký tự" này được lấy trong mảng ht[] xuat(); portb=ht[dv]; //dv="5" xuat(); . . . -tuy nhiên bạn cũng có thể xuất trực tiếp,khỏi cần tham chiếu vào mảng..(cái này mình chưa test mạch thật..nhưng proteus vẫn chạy bt).. |
void main()
{ int8 i; int32 a; const char ten [] = " lam bao trung "; set_tris_b(0); set_tris_d(0); khoitao(); for(i=0;i<40;i++) { portd=0x82; lenh(); portd=ten[i]; xuat(); } } trở lại vấn đề xuất 1 chuổi ký tự ra màng hình ở vi trí 0x82 mà sao nó ko ra 1 chuổi mà nó nhảy từng chữ từng chữ 1 ko hiểu sao. như the the trả lời của bạn thi mình xuất trực tiếp 1 số lên màng hình thi dùng như thế nào.... lệnh của mình sai chổ nào.... thank 100 phát nhé. |
Bạn bỏ cái portd=0x82;
lenh(); ra khỏi vòng lặp for đi nhé.Nếu viết như bạn thì nhảy từng chữ là đúng rối fai viết như sau: portd=0x82; lenh(); for(i=0;i<15;i++) { portd=ten[i]; xuat(); delay_ms(5); } 100% chạy.. :D -Thì mình nói rồi đấy thử viết chương trình hiển thị 1 số nào đó lên LCD đi.. vd:1234 chẳng hạn bạn tính toán ra được 4 số nghin,tram,chuc,dv sau đó chỉ việc portd=nghin; xuat() portd=tram; xuat() . . cứ như thế thôi. |
cảm ơn bạn đã viết dc và cơ bản đả thành công tỏng việc hiện thị ( chữ , số lên màn hình lCD )
mình se tiếp tục nghiêm cứu và học hỏi thêm.... xin chân thành cảm ở các tiền bối, các quý đồng đạo trong thời gian quan đã nhiệt tình chỉ giáo... và rất cảm ơn bạn stupid11 ...! cảm ơn và cảm ơn..... chân thành cảm ơn. ko biết nói gì luôn như cảm ơn nhiều làm. mail : lambaotrungdt@gmail.com fone: 01284279279 bạn stupid11 có thể cho mình xin số fone ko.. bạn gữi vào mail nhé. |
bạn ơi mình có vấn đề cần hỏi thêm
như vậy mình có giá trị cửa "tinh" như vậy khi mình đếm đếm 1000 chẩn hạng minh muốn nó ngưng lại thi phải làm sao... core mình muốn việt co nội dùng là có a = 1000 int32 tinh,a; ấn 1 phím dem++; hien thi tinh lên LCD if (dem>a) { core } else; nhưng khi mình làm nhu thế này #include <16f877a.h> #fuses xt,nowdt,noprotect,nolvp #use delay(clock=4000000) #use fast_io(b) #use fast_io(d) #byte portb=0x6 #byte portd=0x8 #byte porta=0x5 #byte portc=0x07 #bit RA0 = porta.0 #bit rs = portb.0 #bit rw = portb.1 #bit e = portb.2 void lenh(); void xuat(); void khoitao(); void lenh() {rs=0; rw=0; e=1; e=0; delay_ms(5); } void xuat() { e=1; rs=1; rw=0; e=0; delay_ms(5); } void khoitao() {portd=0x01; lenh(); portd=0x0e; lenh(); portd=0x80; lenh(); portd=0x38; lenh(); delay_ms(5); } void main() { int32 i, dem,donvi,chuc,tram,nghin,chucnghin,a; const char tenem[] = " lam bao trung "; char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '}; set_tris_b(0); set_tris_d(0); set_tris_c(0x0); khoitao(); a=1000; //////////////////////////////////////////////////////////////////////////////// while(1) { if(dem>a) { output_c(0xff); } else output_c(0xf0); } //////////////////////////////////////////////////////////////////////////////////////////////////// while(2) { if (ra0==0) { do{} while (ra0==0); dem=dem+100; } } chucnghin=dem/10000; nghin=(dem%10000)/1000; tram=(dem%1000)/100; chuc=(dem%100)/10; donvi=dem%10; portd=0x0c; lenh(); for(i=0;i<20;i++) { portd=0x82; lenh(); portd=ht[chucnghin]; xuat(); portd=ht[nghin]; xuat(); portd=ht[tram]; xuat(); portd=ht[chuc]; xuat(); portd=ht[donvi]; xuat(); delay_ms(5); portd=0xc0; lenh(); for(i=0;i<30;i++) { portd=tenem[i]; xuat(); } } } } các bạn chú ý chổ //////////////////// while(1) { if(dem>a) { output_c(0xff); } else output_c(0xf0); /////////////////////////////////// minh làm như thế thi nó ko hiển thi nửa...... |
Anh stupid11 em dùng code lập trình của anh trong bài đo nhiệt độ đó . Mà khi em nạp chương trình sang PIC và kết nối thì không chạy anh ah ...... Nó nhảy liên tục ở chỗ hiển thị nhiệt độ đó . Anh xem lại dùm em với . Thanks anh đã giúp đỡ .có gì anh send sang mail của em or post lên diễn đàn khiendohuu@gmail.com
|
Ah mà anh stupid11 chuyển hộ em data LCD sang port d 4 bit với em chuyển code sang mà nó chưa chạy nữa .........em chưa gói lại nên chưa gửi lên anh xem dùm em nha.thanks anh nhiều
|
các bác cho em hỏi:
em đang học viết chương trình đo nhiệt độ bằng lm35 từ con Pic18f67j60 slave rồi đưa thông tin nhiệt độ về con pic18f67j60 master qua modul EUSART ,sau đó hiển thị ra LCD va lên máy tính, đây là đồ án của em,em sắp phải nộp rồi, bác nào biết hướng dẫn em với nha,em đang rất cần, em tìm trog diễn đàn không thấy chủ đề nào nói về EUSART mong các bác giúp đỡ em em lập trình bằng ccs |
Trích:
|
gửi khienpzo
Mình gửi vào mail rồi đấy |
gui lambaotrung
Mình gửi vào mail rồi đấy... |
Trích:
|
e có một bài tập ntn, e đang làm một đề là truyền một dòng chữ từ 1 con chíp sang một con khác (16f77a) và hiển thị trên LCD ,e chua biết xây dựng chương trình như thế nào, xin các a chi cho,nếu đươc xin qua email ahungnd@gmail.com
|
chưa ai làm đề tài này ah, ai bt giúp mình với nhe
liên hẹ voi mình qua mail : hieu89tx@gmail.com |
Chào mọi người, mình cũng đang có 1 vấn đề về LCD mà "loay hoay" lâu rùi vẫn chưa giải quyết đc mong mọi người giúp đỡ cho.
Mình đang dùng 1 bàn phím để nhập dữ liệu vào (ví dụ số 123) sau khi nhập vào thì dùng Pic để nhận biết, sau đó xuất lên LCD16x2 (hiện thị lên LCD mã NHỊ PHÂN). Mình tìm hiểu mãi mà vẫn chưa xuất lên LCD dc,mong mọi người chỉ giao cho Thank mọi người trước. |
Múi giờ GMT. Hiện tại là 11:16 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