Các anh giúp em với, e làm mạch đo nhiệt độ sử dụng lm35 và 89c51, mạch và code e lấy trên mạng, mô phỏng trên proteus thì chạy nhưng làm mạch thực tế thì lcd chỉ hiển thị được 1 dòng.mong các anh giúp vơi, chân thành cảm ơn !!!
Thông báo
Collapse
No announcement yet.
Hoi về code của lcd và 8051
Collapse
X
-
Nguyên văn bởi hoadang Xem bài viếtKhông mô phỏng được file của bạn vì không có hex file. Nhưng nhìn sơ đồ phần cứng thì các chân DB0-DB3 của LCD không dùng nên nối xuống GND.
chuong trinh la: link: LCD_clk04-dt2.rar
;;;;;;;;;;;;;;;;;;;;;;;
ORG 00H
MAIN:
MOV A,#38H ;khoi tao lcd che do 2 dong 5x7
LCALL GUILENH
LCALL DELLAY
;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0EH ;bat hien thi nhap nhay con tro
LCALL GUILENH
LCALL DELLAY
;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#01H ;xoa man hnh hien thi
LCALL GUILENH
LCALL DELLAY
;;;;;;;;;;;;;;;;;;;;
MOV A,#80H ;dua con tro ve dau hang 1
LCALL GUILENH
LCALL DELLAY
MOV DPTR,#DONG1 ;hien thi len dong1
LCALL HIENTHI
LCALL DELLAY
;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0C0H ;;dua con tro ve dau hang 2
LCALL GUILENH
LCALL DELLAY
MOV DPTR,#DONG2 ;;hien thi len dong2
LCALL HIENTHI
LCALL DELLAY
;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov r3,#0
lap:
mov a,#1ch
lcall guilenh
lcall dellay
lcall dellay
lcall dellay
lcall dellay
lcall dellay
inc r3
cjne r3,#32,lap
mov r3,#0
JMP $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GUILENH: ;chuong trinh con lenh dieu khien
LCALL KTTT
MOV P2,A
CLR P3.0
CLR P3.1
SETB P3.2
CLR P3.2
RET
GUIDULIEU: ;;chuong trinh con du lieu
LCALL KTTT
MOV P2,A
SETB P3.0
CLR P3.1
SETB P3.2
CLR P3.2
RET
KTTT: ;;chuong trinh con kiem tra trang thai
SETB P2.7
CLR P3.0
SETB P3.1
BACK:
CLR P3.2
SETB P3.2
JB P2.7,BACK
RET
HIENTHI: ;;chuong trinh con hien thi
MOV A,R0 ;dua du lieu vao thanh ghi R0
MOVC A,@A+DPTR
LCALL GUIDULIEU
MOV A,#06H ;tang con tro chong trong lan
LCALL GUILENH
LCALL DELLAY
INC R0
CJNE R0,#16,HIENTHI ;so sanh
MOV R0,#0
LCALL DELLAY
RET
DELLAY:
MOV R5,#20
BCAD: MOV R6,#20
CABD: MOV R7,#20
DJNZ R7,$
DJNZ R6,CABD
DJNZ R5,BCAD
RET
DATAS:
DONG1:
DB 'NGUYEN ANH VIET '
DONG2:
DB 'NGUYEN ANH VIET '
END
Comment
-
Nguyên văn bởi vietbiker Xem bài viếtanh ơi dup em với sao em viết code này mãi nó không chạy nhỉ?em sửa mãi mà không làm thế nào cho nó di chuyển qua trái và qua phải được.bây giờ em muốn nó dịch từ dòng 2 lên dòng 1 được không?
Bạn vào link sau đây tham khảo nhé, có các lệnh và demo cho bạn: http://www.geocities.com/dinceraydin/lcd/commands.htm
Comment
-
Nguyên văn bởi hoadang Xem bài viếtĐể cho dễ, thì đầu tiền bạn làm với LCD bạn chưa cần kiểm tra trạng thái của LCD đâu, dùng delay chờ một khoảng thời gian đã. Sau khi làm với delay xong rồi hãy chuyển qua làm kiểm tra trạng thái.
mình nghe thầy giáo bảo là có thể viết thêm vào chương trình chính hoặc viết chương trình con để nó dịch qua lại hay di chuyển từ dưới lên trên hoặc xuống dưới,bạn thấy sao?
đây là bài của minh: link :LCD_clk04-dt2.rar
Comment
-
Nguyên văn bởi hoadang Xem bài viếtĐể cho dễ, thì đầu tiền bạn làm với LCD bạn chưa cần kiểm tra trạng thái của LCD đâu, dùng delay chờ một khoảng thời gian đã. Sau khi làm với delay xong rồi hãy chuyển qua làm kiểm tra trạng thái.
mình nghe thầy giáo bảo là có thể viết thêm vào chương trình chính hoặc viết chương trình con để nó dịch qua lại hay di chuyển từ dưới lên trên hoặc xuống dưới,bạn thấy sao?
đây là bài của minh: link :LCD_clk04-dt2.rar
mình không biết máy mình sao nữa nhưng viết chữ : DELAY nó toàn báo lỗi,phải viết là DELLAY nó mới nhận bạn biết vì sao không?
phần mềm viết chương trình là :Microcontroller_V3.0.exe,
phần mềm mô phỏng la: Proteus 7.8
Comment
-
đây là tài liệu về LCD16x2 (bạn chịu khó đọc nhé) LCD interfacing with Microcontrollers tutorial.
về chương trình: để giao tiếp với LCD thì cần các hàm cơ bản sau:
+ LCD_Reset(): khi bắt đầu bật nguồn, cần có một khoảng thời gian cho LCD tự reset nó.
+ LCD_Init(): là hàm để khởi tạo LCD, chế độ bao nhiêu bit, bao nhiêu dòng, vị trị con trỏ, ...
+ LCD_Data(<data>): gửi dữ liệu lên LCD để hiển thị
+ LCD_Cmd(<command>): gửi lệnh lên LCD
+ ( nếu dùng delay sau mỗi lần gửi lệnh hay dữ liệu thì không cần kiểm tra trạng thái của LCD, còn nếu không cần có thêm hàm kiểm tra trạng thái LCD trước khi gửi lệnh hay dữ liệu)
- Về dịch trái hay dịch phải hiển thị thì mã lệnh là 0x18 (dịch trái hiển thị )0 và 0x1E (dịch phải hiển thị) (dịch toàn bộ hiển thị)
- Về dịch con trỏ thì mã lệnh là 0x10 (dịch trái con trỏ) và 0x14 (dịch phải con trỏ)
- Về menu cuộn thì theo mình chỉ có cách ghi dữ liệu hàng dưới lên hàng trên thôi, và ghi theo kiểu quay vòng vậy. chứ LCD16x2 không có lệnh dịch dữ liệu
từ dòng 2 lên dòng 1.
Comment
-
thaks ban rất nhiều mình đã dịch trái và phải rồi nhưng còn :
"Về menu cuộn thì theo mình chỉ có cách ghi dữ liệu hàng dưới lên hàng trên thôi, và ghi theo kiểu quay vòng vậy. chứ LCD16x2 không có lệnh dịch dữ liệu
từ dòng 2 lên dòng 1."
- theo bạn mình đã ghi đè lên hàng dưới lên hàng trên nhưng kết quả la dữ liệu hiển thị linh tinh hết.
- mình đầu hàng lun không hiểu pải viết như thế nào cả?bạn viết dúp mình đoạn code này để mình làm mẫu được không?
Comment
-
LCD Menu
đây là ví dụ mình thử làm, thấy có sao đâu. mình khi được bấm lên hay xuống thì chỉ ghi lại dữ liệu dòng trên xuống dưới và ngược lại. Dòng tiếp theo ghi dữ liệu mới vào thôi. Mình viết bằng C, nếu bạn muốn mình send code cho thôi, còn viết ASM, hơi ngại vì mình phải đọc lại tập lệnh nữa, lâu không dùng thì nó cũng mọt đị rồi. Link download file mô phỏng
sorry, mình không up được file lên diễn đàn.
Chúc ngày mới vui vẻ.
Comment
-
Nguyên văn bởi hoadang Xem bài viếtđây là ví dụ mình thử làm, thấy có sao đâu. mình khi được bấm lên hay xuống thì chỉ ghi lại dữ liệu dòng trên xuống dưới và ngược lại. Dòng tiếp theo ghi dữ liệu mới vào thôi. Mình viết bằng C, nếu bạn muốn mình send code cho thôi, còn viết ASM, hơi ngại vì mình phải đọc lại tập lệnh nữa, lâu không dùng thì nó cũng mọt đị rồi. Link download file mô phỏng
sorry, mình không up được file lên diễn đàn.
Chúc ngày mới vui vẻ.
Comment
-
Xin lỗi nhưng mình không viết code ASM cho bạn được,
nên chỉ hỗ trợ lý thuyết cho bạn được thôi.
Đầu tiên bạn hãy xây dựng các hàm cơ bản sau:
- hàm khởi tạo LCD
- hàm gửi một lệnh lên LCD với lệnh là biến truyền vào
- hàm gửi một ký tự lên LCD với lệnh là biến truyền vào
- hàm hiển thị một chuỗi ký tự lên LCD với địa chỉ bắt đầu chuối là biến truyền vào
- hàm di chuyển con trỏ hiển thị đến dòng y cột x bất kỳ với x,y là biến truyền vào
Tất cả ví dụ mình làm trên đều chỉ dùng những hàm cơ bản này thôi, khi có được những hàm này rồi thì hiển thị lên LCD như thế nào là tùy bạn,
Comment
-
Nguyên văn bởi hoadang Xem bài viếtXin lỗi nhưng mình không viết code ASM cho bạn được,
nên chỉ hỗ trợ lý thuyết cho bạn được thôi.
Đầu tiên bạn hãy xây dựng các hàm cơ bản sau:
- hàm khởi tạo LCD
- hàm gửi một lệnh lên LCD với lệnh là biến truyền vào
- hàm gửi một ký tự lên LCD với lệnh là biến truyền vào
- hàm hiển thị một chuỗi ký tự lên LCD với địa chỉ bắt đầu chuối là biến truyền vào
- hàm di chuyển con trỏ hiển thị đến dòng y cột x bất kỳ với x,y là biến truyền vào
Tất cả ví dụ mình làm trên đều chỉ dùng những hàm cơ bản này thôi, khi có được những hàm này rồi thì hiển thị lên LCD như thế nào là tùy bạn,
Comment
-
Nguyên văn bởi hoadang Xem bài viếtXin lỗi nhưng mình không viết code ASM cho bạn được,
nên chỉ hỗ trợ lý thuyết cho bạn được thôi.
Đầu tiên bạn hãy xây dựng các hàm cơ bản sau:
- hàm khởi tạo LCD
- hàm gửi một lệnh lên LCD với lệnh là biến truyền vào
- hàm gửi một ký tự lên LCD với lệnh là biến truyền vào
- hàm hiển thị một chuỗi ký tự lên LCD với địa chỉ bắt đầu chuối là biến truyền vào
- hàm di chuyển con trỏ hiển thị đến dòng y cột x bất kỳ với x,y là biến truyền vào
Tất cả ví dụ mình làm trên đều chỉ dùng những hàm cơ bản này thôi, khi có được những hàm này rồi thì hiển thị lên LCD như thế nào là tùy bạn,
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80(ĐT chia sẻ MPPT này, với mong muốn rằng, chúng ta hãy tự tin lên, hãy tự hào là người VN, đừng quá tin vào người khác, đừng quá thần tượng họ, cần kiểm tra thực chứng chứ không nên cứ cho các thiết bị thông minh, cao siêu là hoàn hảo)
-
Channel: Điện tử công suất
hôm nay, 12:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Dưới đây là hình ảnh thực:
(bị phạm con tụ pi C17: văng mất xác!)
(hàn vào vị trí C17 tụ pi 27nF ( giá trị phỏng đoán từ 10-100nF!), mạch vẫn chạy như trước khi cạy keo)...-
Channel: Điện tử công suất
hôm nay, 12:05 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80ĐT đã mạnh dạn mail thử cho hãng SRNE, họ trả lời là nó dùng nhiệt điện trở ở bên trong mạch như sau:
"Our street light controller product triggers high temperature protection based on internal thermistor sampling''
Thấy hơi lo lắng vì kiến thức điện tử...-
Channel: Điện tử công suất
hôm nay, 11:39 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi mèomướpDạ chú mua cái kẹp dòng ấy ạ. Chị hàng xóm nhà cháu có 1 cái thấy lâu lâu rùi chưa hỏng ạ. Ví dụ như mẫu này trên shoppee đầy ạ...
https://vn.shp.ee/dWYVgq7-
Channel: Điện tử dành cho người mới bắt đầu
21-01-2025, 12:48 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi vi van phamBác Đinh Vặn sai rồi,bây giờ con nít mẫu giáo đã giải phương trình 2 ẩn số rồi.
Tôi chứng minh bác lên youtube đầy video đơn giản tựa rất hot, chỉ 1 transistor hay 1 con diode và hướng dẩn cách làm, tác giả không vẽ sơ đồ mạch điện...-
Channel: Điện tử công suất
21-01-2025, 11:55 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi nguyendinhvanBây giờ mới có tháng giêng, bao giờ mới đến tháng mười ?
Các cháu mẫu giáo mới lên lớp 1 được có 4 tháng. Nên đừng lấy lý do chúng nó đã đi học rồi để bắt nó viết một bài luận văn, hay là giải bài toán hàm. Phải kiên nhẫn...-
Channel: Điện tử công suất
21-01-2025, 00:47 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nguyendinhvanKhông có loại nào đủ một vạn chức năng đâu. Nó chỉ được 2345678 , hoặc khủng lắm thì được 10 chức năng.
-
Channel: Điện tử dành cho người mới bắt đầu
21-01-2025, 00:16 -
-
bởi since0501Cảm ơn bác đã chia sẻ!...
-
Channel: Điện tử dành cho người mới bắt đầu
19-01-2025, 19:00 -
-
bởi Lê Gia TứMình muốn tìm mua đồng hồ vạn năng giá khoảng 200k có đo tần số cao khoảng 0~1mhz mọi người tư vấn giúp mình với
-
Channel: Điện tử dành cho người mới bắt đầu
19-01-2025, 15:47 -
-
Trả lời cho Mạch tự động bật nguồnbởi davidcopyChỉ cần dùng R C mắc vô phím power là ok....
-
Channel: Điện tử gia dụng
18-01-2025, 20:47 -
Comment