Nguyên văn bởi thangbom64
Thông báo
Collapse
No announcement yet.
Dành cho người mới tìm hiểu 8051
Collapse
X
-
Lcd
Các bác giúp em với. Hiện nay em đang làm bài tập về LCD mô phỏng hiện chữ lên màn hình dùng chương trình mô phỏng Proteus. Em đã mô phỏng 2 trường hợp của chương trình con WAIT_LCD
Trường hợp 1 em đợi khoảng thời gian mù ( dùng delay ) thì chữ hiện lên LCD bình thường.
Trường họp 2 em đợi cho cờ BF (ACC.7) từ mức 1 xuống mức 0. Nhưng cờ không thể xuống mức 0 được ( em không hiểu tại sao ??
) và chương trình không thể thoát khỏi chương trình con được.
Đây là chương trình và của em. Mong các bác tìm giúp em lỗi sai ở cờ BF (ACC.7). Em có đính kèm các file chương trình + mô phỏng ở dưới.
Em cảm ơn nhiều.
org 0000h
DB0 BIT P0.0
DB1 BIT P0.1
DB2 BIT P0.2
DB3 BIT P0.3
DB4 BIT P0.4
DB5 BIT P0.5
DB6 BIT P0.6
DB7 BIT P0.7
RW BIT P3.5
RS BIT P3.6
E BIT P3.7
MAIN:
LCALL DELAY
LCALL INIT_LCD
LCALL CLR_LCD
MOV A,#'D'
LCALL WRITE_TEXT
MOV A,#'U'
LCALL WRITE_TEXT
MOV A,#'N'
LCALL WRITE_TEXT
MOV A,#'G'
LCALL WRITE_TEXT
;************************************************* *************
; Delay program
;************************************************* *************
DELAY:
PUSH 7
PUSH 6
MOV R7,#1
RE1: MOV R6,#2
DJNZ R6, $
DJNZ R7,RE1
POP 6
POP 7
RET
;************************************************* **************
; Start LCD
;************************************************* **************
INIT_LCD:
CLR RS
CLR RW
MOV P0,#38h
SETB E
CLR E
LCALL WAIT_LCD
CLR RS
CLR RW
MOV P0,#0Eh
SETB E
CLR E
LCALL WAIT_LCD
CLR RS
CLR RW
MOV P0,#06h
SETB E
CLR E
LCALL WAIT_LCD
RET
;************************************************* **************
; Clear LCD
;************************************************* **************
CLR_LCD:
CLR RW
CLR RS
MOV P0,#01h
SETB E
CLR E
LCALL WAIT_LCD
RET
;************************************************* *************
; Write the context to LCD
;************************************************* ************
WRITE_TEXT:
CLR RW
SETB RS
MOV P0,A
SETB E
CLR E
LCALL WAIT_LCD
RET
;************************************************* *************
; Test busy flat ( wait lcd program )
;************************************************* ************
WAIT_LCD:
; lcall delay
; CLR E ;Start LCD command
CLR RS ;It's a command
SETB RW ;It's a read command
MOV P0,#0FFh ;Set all pins to FF initially
SETB E
MOV A,P0 ;Read the return value
JB ACC.7,$ ;If bit 7 high, LCD still busy
CLR E ;Finish the command
CLR RW ;Turn off RW for future commands
RET
ENDAttached Files
Comment
-
đơn giản thôi mà bạn: dòng qua các con led là khoảng 10mA.còn áp trên con điện trở là 220-175=45V.Vậy thì con trở sẽ là 45/10m=4500 Ohm.Nguyên văn bởi tranvannam59Chào các bạn mình có 70 con led mắc nối tiếp, mỗi con 2v5 tổng hiệu điện thế là 70x2v5= 175v sử dụng điện thế 220v như vậy phải dùng điện trở bao nhiêu ohm? và công thức tính như thế nào nếu thay đổi số lượng led mong các bạn chỉ giúp.
Cám ơn nhiềuSỰ HỌC LÀ MÃI MÃI......!!!!
Comment
-
bạn Dũng thân mến : cái thằng Proteus nó chỉ là mô phỏng thôi mà.nó đâu phải là sản phẩm thật đâu.Do đó cái thằng LCD trên đó đâu thể tạo ra tín hiệu cho cờ BF=0 được đâu.trường hợp này tui đã gặp.mô phỏng thì chỉ có thể dùng delay thôi.còn bạn hãy đe chương trình bạn viết bằng cờ BF nạp thẳng vào mạch chắc chắn sẽ chạy(hì hì nếu bạn viết đúng nhá)Nguyên văn bởi DungNTvt Xem bài viếtTrong chương trình mô phỏng em chạy từng lệnh một nhưng tới lệnh JB ACC.7 ,$ thì không thoát ra được ( ACC.7) luôn ở trạng thái 1 (??).
Chúc vui!SỰ HỌC LÀ MÃI MÃI......!!!!
Comment
-
Bậy nào, tui làm kiểm tra cờ vẫn chạy ầm ầm.bạn Dũng thân mến : cái thằng Proteus nó chỉ là mô phỏng thôi mà.nó đâu phải là sản phẩm thật đâu.Do đó cái thằng LCD trên đó đâu thể tạo ra tín hiệu cho cờ BF=0 được đâu.trường hợp này tui đã gặp.mô phỏng thì chỉ có thể dùng delay thôi.còn bạn hãy đe chương trình bạn viết bằng cờ BF nạp thẳng vào mạch chắc chắn sẽ chạy(hì hì nếu bạn viết đúng nhá)
Chúc vui!
Comment
-
70 con led mắc nối tiếp, chết 1 con thì....Mà led mua ngoài chợ zoi dễ dính tr hợp đó lắm. Công thức tính thì có rồi đấy. Nhưng chú ý là led có thể chết do áp đỉnh của điện lưới, kô phải là 220 đâu mà là 380v đấy.Bạn nên nắn điện sang 1 chiều , dùng tụ lọc rồi mới cắm dàn led vào.đơn giản thôi mà bạn: dòng qua các con led là khoảng 10mA.còn áp trên con điện trở là 220-175=45V.Vậy thì con trở sẽ là 45/10m=4500 Ohm.
Comment
-
thực sự thì mình cơ khí cũng thích,điện tử cũn Ok.nhưng mà học thì cái j cũng cưỡi ngựa xem hoa ấy.tìm người hỏi khó lắmNguyên văn bởi Zz_Bi_zZ Xem bài viếtTui cũng học CDT , thấy rất thú vị đó chứ . Có lẽ bạn là ng ko ham Cơ khí và điện tử lám . Mấy ku lớp tui học năm 5 oy mà h chưa bit điều tốc động cơ DC = cách j . chán !
lên trên này cũng mong mọi người chỉ giáo nhiều
Comment
-
Làm việc với LCD thì có 4 môdul chính :có bác nào có thể vẽ hộ em cái lưu đồ để có thể hiển thị LCD với.
ngồi đọc mấy tài liệu về LCD nhưng mãi mà vẫn ko hiểu thế nào.mong mọi người giúp với nhá
1_ Init_LCD : khởi tạo các chế độ làm việc của LCD
2_ Sent_comman: mô đul gửi mã lệnh
3_ Sent_data: môdul gửi dữ liệu
4_ Busy: kiểm tra cờ bận
Sau khi viết xong các môdul này thì bạn hoàn toàn có thể yên tâm làm việc với LCD. Tuy nhiên, để viết được chúng bạn phải hiểu được cách thức hoạt động của LCD và cách giao tiếp 8051 với LCD.
Comment
-
xin mọi người giúp đỡ
e dùng keil lập trình cho chip 89c51 (tạo file.hex) làm led P0 sáng tắt xen kẽ, sau đó dùng bo rixin nạp thì nó báo complete. sau đó nối dây mạch reset, thạch anh, chân 31 nối VCC = 5v, mà sao nó chẳng hoạt động gì hết. tháo ra nạp code khác thì nó cũng kô có tác dụng gì hết, toàn bộ led po đều sáng chập chờn. e ngĩ là e két nối sai. hoặc do bo nạp hư, nhưng thấy nó chạy bình thường. xin các a hướng dẫn cho e với đã mò 2 ngày rồi mà nó kô chạy gì cả. các a xem file đính kèm nhe!. e xin cảm ơn!Attached Files
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -

Comment