Nguyên văn bởi phonghp91
Xem bài viết
Thông báo
Collapse
No announcement yet.
lcd với css
Collapse
X
-
sao dạo này mình lú lẫn quá, bạn khai báo #define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D
dòng này nhé#include <LCD.C> // Thu vien ham cho LCD , đoạn code trên mình viết bị ngượcDang Van Hieu
Cell: 0986506154
web:
Công Ty TNHH SXTMDV VÀ KỸ THUẬT SAO VIỆT
60 Đỗ Thừa Luông,P. Tân Quý, Q.Tân Phú,TPHCM
Comment
-
Nguyên văn bởi startechmec Xem bài viếtsao dạo này mình lú lẫn quá, bạn khai báo #define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D
dòng này nhé#include <LCD.C> // Thu vien ham cho LCD , đoạn code trên mình viết bị ngược
ok . mình build code của b và đã chạy ngon lành rồi.hj. còn đây là code minh chỉnh sửa theo ý mình chút cho các b chưa bít giống mình tham khảo . rất cảm ơn b .
#include "C:\Documents and Settings\haphong computer\Desktop\css\lcd.h"
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <LCD.C> // Thu vien ham cho LCD
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
void lcd_refresh()
{
lcd_send_byte(0,1);
lcd_send_byte(0,6);
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_d(0);
output_a(0);
LCD_init();
lcd_refresh();
lcd_gotoxy(1,1);
lcd_putc("DIEN");
DELAY_MS(50);
lcd_gotoxy(6,1);
LCD_PUTC("TU");
DELAY_MS(50);
lcd_gotoxy(9,1);
LCD_PUTC("VIET");
DELAY_MS(50);
lcd_gotoxy(14,1);
LCD_PUTC("NAM");
}Ph.vmr
Comment
-
Nguyên văn bởi startechmec Xem bài viếtsao dạo này mình lú lẫn quá, bạn khai báo #define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D
dòng này nhé#include <LCD.C> // Thu vien ham cho LCD , đoạn code trên mình viết bị ngược
ok . mình build code của b và đã chạy ngon lành rồi.hj. còn đây là code minh chỉnh sửa theo ý mình chút cho các b chưa bít giống mình tham khảo . rất cảm ơn b .
#include "C:\Documents and Settings\haphong computer\Desktop\css\lcd.h"
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <LCD.C> // Thu vien ham cho LCD
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
void lcd_refresh()
{
lcd_send_byte(0,1);
lcd_send_byte(0,6);
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_d(0);
output_a(0);
LCD_init();
lcd_refresh();
lcd_gotoxy(1,1);
lcd_putc("DIEN");
DELAY_MS(50);
lcd_gotoxy(6,1);
LCD_PUTC("TU");
DELAY_MS(50);
lcd_gotoxy(9,1);
LCD_PUTC("VIET");
DELAY_MS(50);
lcd_gotoxy(14,1);
LCD_PUTC("NAM");
}Ph.vmr
Comment
-
Sau đó lại tiếp tục là tiếp tục cái gì hả bạn ?Nguyên văn bởi phonghp91 Xem bài viếtsao mình đọc bài b chẳng hiểu j vậy . trước giờ mình vẫn nghĩ là các bước cài đặt cũng như khai báo các tham số cho time thì ở trong hàm main chứ như mình viết bài trên của mình theo ý hiểu của mình như thế này các b xem có đúng không nhé . ban đầu mình cho portb=1 , sau đó cho time đếm đến khi xảy ra ngắt time thì chương trình ngắt sẽ cho portb=0 sau đó lại tiếp tục .
trong bài của b đoạn lệnh
set_timer0(25); // 100us
OUT=!OUT;
mình không hiểu out=!out là thế nào , sao trong hàm ngắt lại có set_timer0(25) nhỉ .
set_timer0(x) là đặt giá trị cho timer0, nếu kệ nó thì nó 0-> 255->0->255... Không muốn nó đếm từ 0 thì phải đặt cho nó cái giá trị x.
OUT=!OUT là lệnh đảo bit.
Những câu lệnh này đều là những lệnh cơ bản, những thuật toán cơ bản mà ??? Mà thôi nó cũng chỉ ngoài luồng thôi. Bạn không phải để ý đến nó đâu, chú trọng vào LCD thôi
Nhưng mà gì thì gì cũng phải cho cái while(true) vào main.
Last edited by duong_act; 20-05-2013, 19:15.
Comment
-
Nguyên văn bởi duong_act Xem bài viếtSau đó lại tiếp tục là tiếp tục cái gì hả bạn ?
set_timer0(x) là đặt giá trị cho timer0, nếu kệ nó thì nó 0-> 255->0->255... Không muốn nó đếm từ 0 thì phải đặt cho nó cái giá trị x.
OUT=!OUT là lệnh đảo bit.
Những câu lệnh này đều là những lệnh cơ bản, những thuật toán cơ bản mà ??? Mà thôi nó cũng chỉ ngoài luồng thôi. Bạn không phải để ý đến nó đâu, chú trọng vào LCD thôi
Nhưng mà gì thì gì cũng phải cho cái while(true) vào main.
sau đó time lại tiếp tục đếm đó b , không biết mình nghĩ vậy có đúng không . code của b thì mình chưa mô phỏng thử xem sao nhưng nhìn code của b viết và code của startmchec viết thấy khác nhau quá . trong hàm ngắt của startmchec viết thì trước khi thay đổi giá trị portb ( tương đương với lệnh out=!out của b ) thì cũng có thời gian delay như của b nhưng sau lệnh đó thì cũng lại có thời gian delay . code của startmchec thì mình mô phỏng đã đúng . vì sao lai có sự khác nhau như vậy ?? . uh đúng mình tạo ra luồng này là hỏi về lcd nhưng suốt từ trang đâu tới giờ có vài b xem thì chắc đã hiểu hết rồi và mình thì cũng coi như đã hiểu vậy thì sao chúng ta không thảo luận thêm các chủ đề khác để các b khác khỏi mất công đi tìm nhỉ . các b cho ý kiến nhé .Ph.vmr
Comment
-
Nguyên văn bởi duong_act Xem bài viếtSau đó lại tiếp tục là tiếp tục cái gì hả bạn ?
set_timer0(x) là đặt giá trị cho timer0, nếu kệ nó thì nó 0-> 255->0->255... Không muốn nó đếm từ 0 thì phải đặt cho nó cái giá trị x.
OUT=!OUT là lệnh đảo bit.
Những câu lệnh này đều là những lệnh cơ bản, những thuật toán cơ bản mà ??? Mà thôi nó cũng chỉ ngoài luồng thôi. Bạn không phải để ý đến nó đâu, chú trọng vào LCD thôi
Nhưng mà gì thì gì cũng phải cho cái while(true) vào main.
sau đó time lại tiếp tục đếm đó b , không biết mình nghĩ vậy có đúng không . code của b thì mình chưa mô phỏng thử xem sao nhưng nhìn code của b viết và code của startmchec viết thấy khác nhau quá . trong hàm ngắt của startmchec viết thì trước khi thay đổi giá trị portb ( tương đương với lệnh out=!out của b ) thì cũng có thời gian delay như của b nhưng sau lệnh đó thì cũng lại có thời gian delay . code của startmchec thì mình mô phỏng đã đúng . vì sao lai có sự khác nhau như vậy ?? . uh đúng mình tạo ra luồng này là hỏi về lcd nhưng suốt từ trang đâu tới giờ có vài b xem thì chắc đã hiểu hết rồi và mình thì cũng coi như đã hiểu vậy thì sao chúng ta không thảo luận thêm các chủ đề khác để các b khác khỏi mất công đi tìm nhỉ . các b cho ý kiến nhé .Ph.vmr
Comment
-
cũng không khác nhau lắm đâu bạn, tại bữa mình viết CODE theo ý tưởng dựa vào cái CODE của bạn có để PORTB =?? vào trong hàm ngắt, thực ra nếu không có thêm dòng delay phía sau thì ngắt cũng hoạt động nhưng mà làm như vậy thì PORTB trong main =1, khi ngắt đủ thời gian thì PORTB =0, và trong tích tắc thoát ra khỏi ngắt thì PORTB lại bằng 1 nên mình không thấy được PORTB =0. Vì thế mình thêm delay vào ( để nhìn thấy ), nhưng như vậy thì thành thử thời gian ngắt không đúng vì có tham gia bởi hàm delay.Nếu muốn chớp tắt PORTB trong thời gian ngắt thì nên viết kiểu này:Nguyên văn bởi phonghp91 Xem bài viếtsau đó time lại tiếp tục đếm đó b , không biết mình nghĩ vậy có đúng không . code của b thì mình chưa mô phỏng thử xem sao nhưng nhìn code của b viết và code của startmchec viết thấy khác nhau quá . trong hàm ngắt của startmchec viết thì trước khi thay đổi giá trị portb ( tương đương với lệnh out=!out của b ) thì cũng có thời gian delay như của b nhưng sau lệnh đó thì cũng lại có thời gian delay . code của startmchec thì mình mô phỏng đã đúng . vì sao lai có sự khác nhau như vậy ?? . uh đúng mình tạo ra luồng này là hỏi về lcd nhưng suốt từ trang đâu tới giờ có vài b xem thì chắc đã hiểu hết rồi và mình thì cũng coi như đã hiểu vậy thì sao chúng ta không thảo luận thêm các chủ đề khác để các b khác khỏi mất công đi tìm nhỉ . các b cho ý kiến nhé .
Code:#include <16f877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) int32 dem1; int32 value; int OUT; //Chuong trinh ngat TMR0 #int_timer0 void interrupt_timer0() { dem1++; if(dem1>=3000)//3000*100us=300000us=300ms; { ///=========================CONG VIEC CAN LAM KHI DU 300ms/// ////.......................................... //................................................ OUT=!OUT; // dao bit b0 cua portb dem1=0; } } //=============================chuong trinh chinh====================================== void main() { set_tris_b(0); enable_interrupts(int_timer0); enable_interrupts(global); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); set_timer0(6);// T_dinhthi = 2*(256 - 6)*0.2us = 100us output_b(0xff); while(1) { output_b(OUT); } } //================================================== =====END========================================== ================Dang Van Hieu
Cell: 0986506154
web:
Công Ty TNHH SXTMDV VÀ KỸ THUẬT SAO VIỆT
60 Đỗ Thừa Luông,P. Tân Quý, Q.Tân Phú,TPHCM
Comment
-
rất cảm ơn b nhé . bạn viết và giải thích mình rất hiểu . hj . hy vọng khi mình tìm hiểu về những chuẩn giao tiếp sẽ tiếp tục đc b giúp đỡ nhé .Nguyên văn bởi startechmec Xem bài viếtcũng không khác nhau lắm đâu bạn, tại bữa mình viết CODE theo ý tưởng dựa vào cái CODE của bạn có để PORTB =?? vào trong hàm ngắt, thực ra nếu không có thêm dòng delay phía sau thì ngắt cũng hoạt động nhưng mà làm như vậy thì PORTB trong main =1, khi ngắt đủ thời gian thì PORTB =0, và trong tích tắc thoát ra khỏi ngắt thì PORTB lại bằng 1 nên mình không thấy được PORTB =0. Vì thế mình thêm delay vào ( để nhìn thấy ), nhưng như vậy thì thành thử thời gian ngắt không đúng vì có tham gia bởi hàm delay.Nếu muốn chớp tắt PORTB trong thời gian ngắt thì nên viết kiểu này:
Code:#include <16f877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) int32 dem1; int32 value; int OUT; //Chuong trinh ngat TMR0 #int_timer0 void interrupt_timer0() { dem1++; if(dem1>=3000)//3000*100us=300000us=300ms; { ///=========================CONG VIEC CAN LAM KHI DU 300ms/// ////.......................................... //................................................ OUT=!OUT; // dao bit b0 cua portb dem1=0; } } //=============================chuong trinh chinh====================================== void main() { set_tris_b(0); enable_interrupts(int_timer0); enable_interrupts(global); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); set_timer0(6);// T_dinhthi = 2*(256 - 6)*0.2us = 100us output_b(0xff); while(1) { output_b(OUT); } } //================================================== =====END========================================== ================Ph.vmr
Comment
-
Sao mình copy nguyên như này mà mô phỏng ko hiện gì nhỉNguyên văn bởi startechmec Xem bài viết[ATTACH=CONFIG]66064[/ATTACH]#include <16f877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <LCD.C> // Thu vien ham cho LCD
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D
void lcd_refresh()
{
lcd_send_byte(0,1);
lcd_send_byte(0,6);
}
//================================================== ==================================================
void main()
{
set_tris_d(0);
output_a(0);
LCD_init();
lcd_refresh();
lcd_gotoxy(1,1);
lcd_putc("DIEN TU VIET NAM");
lcd_gotoxy(1,2);
lcd_putc(" STARTECHMEC ");
}
//================================================== =====END========================================== ================
Đây là 1 đoạn code dùng hàm LCD 4 bít LCD.C của CCS, mình dùng lập trình cho PIC 16f877a, bạn nên dùng thư viện của CCS vừa tiện lợi, lại nhanh gọn, chúc bạn thành công!
Comment
-
Chào bạn, mình đã xem lại mail của bạn, chương trình mô phỏng thì chạy được mà, nếu thực tế khong chạy hay lcd hiển thị dấu đen bạn lấy viết vặn biến trở gần lcd xem, nếu không được thì bạn kiểm tra lcd nối giống phần mô phỏng chưa, lcd có bị hư không?Dang Van Hieu
Cell: 0986506154
web:
Công Ty TNHH SXTMDV VÀ KỸ THUẬT SAO VIỆT
60 Đỗ Thừa Luông,P. Tân Quý, Q.Tân Phú,TPHCM
Comment
Bài viết mới nhất
Collapse
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
hôm nay, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
hôm nay, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -
-
Trả lời cho Máy đo khuôn mẫubởi vi van phamQuá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 08:49 -
-
Trả lời cho Máy Phun sương tạo ầm Trung Quốc.bởi nguyendinhvanMạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...-
Channel: Tâm tình dân kỹ thuật
07-06-2026, 00:09 -
-
bởi nguyendinhvan
Cái máy đo này mắc tiền quá !
Anh em dtvn có giải pháp nào tự chế được không ?...-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 00:00 -
-
bởi nguyendinhvanOi giời.
Thơi buổi PLC rồi, cậu còn hỏi mấy thứ cổ lỗ sĩ này nữa.-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 22:59 -
-
bởi nguyendinhvanChuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...-
Channel: Tìm mua
06-06-2026, 22:56 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phambao nhiêu năm quên bẳng đi, là mình còn có 1 chút xíu nghệ thuật bài bản, đã dạy cho con cháu chơi đàn, dù bố mẹ và chúng không xem là quan trọng. Hôm qua ngày bế mạc lớp lá, bỗng dưng thằng cháu ngoại thấy con bé được sơ giới thiệu...
-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 21:58 -

Comment