câu lệnh gọi trễ của bạn có vấn đề rùi đó VĐK ko có câu lệnh đó đâu.Câu lệnh đó chỉ dùng khi lập trình với ngôn ngữ Pascal thui. Bạn phải viết một chưong trình con có tên là delay mức độ làm trể bạn phải viết trong chuong trình con này sau đó dùng câu lệnh (call delay) để gọi trể.
Thông báo
Collapse
No announcement yet.
Dành cho người mới tìm hiểu 8051
Collapse
X
-
Quỳnh gửi cho mình xin nhé
Nguyên văn bởi quynh Xem bài viếtĐây là quyển sách khá hay về lạp trinh C cho 8051.
Tui up mãi lên đây ko được.Bạn nào cần thì liên hệ với mình nhé.Quyển này viết bằng tiếng anh, khá cơ bản.Dung lượng gần 5MB
Cảm ơn bạn nhiều
xuanvudk2@gmail.comNGUYỄN XUÂN VŨ
Mua bán, sửa chữa PLC, biến tần
Vỉ mạch điện tử công nghiệp các loại
0978462163
Comment
-
Cách mắc led như thế nào để led sáng tốt?
Chào cả nhà.
Cho D hỏi, hiện nay mình mới mua một cái mạch ráp chử làm sẳn, có 8 nhánh,nguồn 12v. D mua tanpho 12V và 1A để cấp nguồn và đồng thời mình lắp mỗi nhánh song song khoản 150 led. Mạch dùng D8050 . Mình lắp như thế đèn sáng rất yếu. Vậy D phải lắp như thế nào để led sáng hơn? Còn nữa, cho minh hỏi thay con D8050 thành H1061 thì nó không vứa với mạch in vậy có cách nào khác để led sang ốt không vậy.
Giúp minh với.
Comment
-
Nguyên văn bởi dientu9 Xem bài viếtChào cả nhà.
Cho D hỏi, hiện nay mình mới mua một cái mạch ráp chử làm sẳn, có 8 nhánh,nguồn 12v. D mua tanpho 12V và 1A để cấp nguồn và đồng thời mình lắp mỗi nhánh song song khoản 150 led. Mạch dùng D8050 . Mình lắp như thế đèn sáng rất yếu. Vậy D phải lắp như thế nào để led sáng hơn? Còn nữa, cho minh hỏi thay con D8050 thành H1061 thì nó không vứa với mạch in vậy có cách nào khác để led sang ốt không vậy.
Giúp minh với.
Comment
-
Mắc led song song
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtđọc tới chỗ : mỗi nhánh // 150 led , mỗi con cần dòng 10mA để sáng tỏ --> cần 1.5A cũng cấp chỉ cho 1 nhánh . Vậy cái biến thế 12V 1A của u liệu cấp dòng đủ k ta ? hèn j k đủ sáng
Cho D hỏi thêm tí nữa . Mạch của D làm sẳn có 8 R=390 ôm nối tiếp với 1 led. Có 8 nhánh. D thay con D8050 thành con H1061 và D mắc song song khoản 150 led cho mỗi nhánh . Nếu như Bạn nói thế thì mình phải chọn Nguồn 12V và I=12A . Bạn có cách nào khác không vậy?
Comment
-
mấy bạn xem dùm mình đoạn code về đọc cờ BF trong giao tiếp LCD dùm mình chút,viết mà nó không chạy,lại không biết sai lỗi j,thank mọi người
Code:void read_BF() { RS = 0; RW = 1; //BF = 1;//cho này set hay khong nó deu khong chay het :(( E = 1; E = 0; while(BF) { } }
Code:#include "regx52.h" #define RS P1_4 #define RW P1_5 #define E P1_6 #define BF P1_3 //-------------------- #define lcd_data P1 //-------------------- void delay(unsigned int time); void int_lcd(void); // intialize lcd void lcd_putcmd(unsigned char Var);//write lcd commond void lcd_putdata(unsigned char Var);//write lcd data void read_BF();//check busy flag ( BF ) //----------------Function delay--------- void delay(unsigned int time) { while(time--) { unsigned int j=100; while(j--) { } } } //--------------Read busy flag--------- void read_BF() { RS = 0; RW = 1; //BF = 1; E = 1; E = 0; while(BF); } //------------Write Command---------- void lcd_putcmd(unsigned char Var) { read_BF(); lcd_data = (Var>>4)&0x0f; RS = 0; RW = 0; E = 1; E = 0; read_BF(); lcd_data = (Var&0x0f); RS = 0; RW = 0; E = 1; E = 0; } //------------Write Data----------------- void lcd_putdata(unsigned char dt) { read_BF(); lcd_data = (dt>>4)&0x0f; RS = 1; RW = 0; E = 1; E = 0; read_BF(); lcd_data = (dt&0x0f); RS = 1; RW = 0; E = 1; E = 0; } //------------Intialize LCD----------- void int_lcd() { delay(100); lcd_putcmd(0x02);//interface 4bit lcd_putcmd(0x28);// interface 4bit 2line display 5*8 lcd_putcmd(0x0f);//display On cursor on cursor blink on lcd_putcmd(0x01);//clear LCD } //*************************************************** void main() { int_lcd(); lcd_putcmd(0x80);// line 1 lcd_putdata('A'); while(1); }
Last edited by vodienDT4; 03-09-2009, 00:45.
Comment
-
Chương trình kiểm tra BF của chú em chưa đúng sao nó chạy được.
Dùng thử cái này xem sao:
PHP Code:void wait(void)
{
char n=0;
EN=1; // Dua chan chot du lieu len cao
RS=0; // Chon RS la thanh ghi lenh
RW=1; // Doc du lieu tu LCD
LCDdata=0xFF;
while(BF)
{
n++;
if(n>100) break; // Doi n dem den 100 thi thoat ko kiem tra Busy Flag
EN=0; // Dua xung cao xuong thap de chot du lieu
RW=0; // Cho phep dua du lieu len LCD
}
}
Comment
-
Nguyên văn bởi vodienDT4 Xem bài viếtmấy bạn xem dùm mình đoạn code về đọc cờ BF trong giao tiếp LCD dùm mình chút,viết mà nó không chạy,lại không biết sai lỗi j,thank mọi người
Code:void read_BF() { RS = 0; RW = 1; //BF = 1;//cho này set hay khong nó deu khong chay het :(( E = 1; E = 0; while(BF) { } }
Code:#include "regx52.h" #define RS P1_4 #define RW P1_5 #define E P1_6 #define BF P1_3 //-------------------- #define lcd_data P1 //-------------------- void delay(unsigned int time); void int_lcd(void); // intialize lcd void lcd_putcmd(unsigned char Var);//write lcd commond void lcd_putdata(unsigned char Var);//write lcd data void read_BF();//check busy flag ( BF ) //----------------Function delay--------- void delay(unsigned int time) { while(time--) { unsigned int j=100; while(j--) { } } } //--------------Read busy flag--------- void read_BF() { RS = 0; RW = 1; //BF = 1; E = 1; E = 0; while(BF); } //------------Write Command---------- void lcd_putcmd(unsigned char Var) { read_BF(); lcd_data = (Var>>4)&0x0f; RS = 0; RW = 0; E = 1; E = 0; read_BF(); lcd_data = (Var&0x0f); RS = 0; RW = 0; E = 1; E = 0; } //------------Write Data----------------- void lcd_putdata(unsigned char dt) { read_BF(); lcd_data = (dt>>4)&0x0f; RS = 1; RW = 0; E = 1; E = 0; read_BF(); lcd_data = (dt&0x0f); RS = 1; RW = 0; E = 1; E = 0; } //------------Intialize LCD----------- void int_lcd() { delay(100); lcd_putcmd(0x02);//interface 4bit lcd_putcmd(0x28);// interface 4bit 2line display 5*8 lcd_putcmd(0x0f);//display On cursor on cursor blink on lcd_putcmd(0x01);//clear LCD } //*************************************************** void main() { int_lcd(); lcd_putcmd(0x80);// line 1 lcd_putdata('A'); while(1); }
- U dùng 89 để giao tiếp thì trong 89 , mún là chân nhập , trước hết ta phải cho chân đó = 1 , cụ thể ở đây là P1.3=1 . P1.3 = 1 k có nghĩa là ta xuất mức 1 ra chân đó , mà là khai báo chân nhập .
trong PIC hay AVR , tại 1 thời điểm , chân đó là In hoặc Out , nếu In thì còn có In vào mức 0 hay mức 1 , OUT thì out ra mức 0 hay mức 1 . 89 thì k rõ ràng , dở là ở chỗ đó đó
Comment
-
P1 gửi dữ liệu ra LCD mode 4bit , nhưng u dùng P1.3->P1.6 làm các chân đk LCD , thử hỏi u gửi data ra LCD = các chân nào nữa ?? chẳng lẽ P1.0 , P1.1 ,P1.2 , P1.7 ??
chương trình trên nếu dùng lệnh delay ở mỗi hàm truyền thì nó chạy,còn dùng BF thì nó không,nên nó sai chỉ sai ở hàm kiểm tra cờ BF thôi ah,dữ liệu thì nó vẫn truyền được mà,không bị ảnh hưởng bởi 3 chân RS RW E
void wait(void)
{
char n=0;
EN=1; // Dua chan chot du lieu len cao
RS=0; // Chon RS la thanh ghi lenh
RW=1; // Doc du lieu tu LCD
LCDdata=0xFF;
while(BF)
{
n++;
if(n>100) break; // Doi n dem den 100 thi thoat ko kiem tra Busy Flag
EN=0; // Dua xung cao xuong thap de chot du lieu
RW=0; // Cho phep dua du lieu len LCD
}
}
mà anh Multi ơi,giả dụ khi n >100 mà cờ BF vẫn chưa xóa thì làm sao ah,lúc đấy LCD còn bận,đáng lẽ cho lập vô tận đến khi nào nó xoa cờ đi chứ ah
em nói thế không biết đúng khôngLast edited by vodienDT4; 02-09-2009, 20:57.
Comment
-
Nguyên văn bởi vodienDT4 Xem bài viết
em thay hàm read_BF của em bằng hàm của anh mà nó vẫn không chạy
mà anh Multi ơi,giả dụ khi n >100 mà cờ BF vẫn chưa xóa thì làm sao ah,lúc đấy LCD còn bận,đáng lẽ cho lập vô tận đến khi nào nó xoa cờ đi chứ ah
em nói thế không biết đúng không
Comment
-
Nguyên văn bởi Multi System Xem bài viếtViệc kiểm tra BF chỉ là thủ tục khởi tạo, đoạn này có thể thay bằng 1 hàm delay vào chục us là được thôi.
Comment
-
thất ra em biết cái ấy,vấn đề delay sẽ làm tăng thời gian hơn so với cờ bận,mà thấy ct cờ bận cũng đơn giản,có điều không biết sao nó hổng chạy ,đang có gắng có được cái code tốt nhất mà a ,khi xài cờ bận,ta sẽ không cần quan tâm đến thời gian thực hiện câu lệnh của LCD nữa,như thế nó tiện hơn mà,hơi cầu toàn một chút,biết thêm 1 cách cũng tốt màLast edited by vodienDT4; 06-09-2009, 22:03.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
hôm nay, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
hôm nay, 11:37 -
-
bởi pia2k1Cùng câu hỏi và cần được giải đáp thêm ạ...
-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 11:28 -
-
Trả lời cho Công thức điện tửbởi mèomướpDạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 20:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Ok , thanks bác đã chỉ...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 15:06 -
-
bởi nguyendinhvanSau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !
Chập thì thay. Cháy thì tháo
Làm thì láo. Báo thì hay
May thì khoe. Rủi thì bỏ
Thành tích nhỏ. Báo thành to
Làm cho có. Báo chi li
Sai cả li. Báo...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:35 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
-
Channel: Thiết bị điện tử cá nhân
25-11-2024, 22:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
-
Channel: Thiết bị điện tử cá nhân
25-11-2024, 22:14 -
-
Trả lời cho Tự làm máy đo Cuộn cảmbởi bacthoHay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
-
Channel: Điện tử dành cho người mới bắt đầu
25-11-2024, 21:48 -
Comment