Tình hình là e đang có bài tập viết giao tiếp AT89C51 với led 7 đoạn đếm giờ phút giây bằng ngôn ngử ASM nhưng không biết viết ntn. Bro nào có mạch đó cho e với có dk không .thank nhiều
Thông báo
Collapse
No announcement yet.
Help mach dong dong ho
Collapse
X
-
em viết được một đoạn như thế này nhưng sao khi hiển thị lên đếm giây xong được một phút mà led đếm phút sáng rồi lại tắ nhỉ. em kung không biết nửa, bro nào giúp em với
link DONG HO.rar★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
-
đã sửa lại code của chú, tham khảo rồi viết thêm cho led hour, viết hoài ko chạy thì post lên hỏi tiếp
Code:ORG 00H main: MOV P3,#00H MOV R1,#0 MOV R2,#0 MOV DPTR,#MALED7SEG LOOP: CALL GIAIMA CALL GIAIMA1 MOV R5,#25 LOOP1: CALL HIENTHI CALL HIENTHI1 DJNZ R5,LOOP1 INC R1 CJNE R1,#60,LOOP MOV R1,#0 INC R2 CJNE R2,#60,LOOP MOV R2,#0 SJMP LOOP HIENTHI: MOV P0,42H SETB P3.1 CALL DELAY CLR P3.1 MOV P0,41H SETB P3.0 CALL DELAY CLR P3.0 RET HIENTHI1: MOV P0,44H SETB P3.3 CALL DELAY CLR P3.3 MOV P0,43H SETB P3.2 CALL DELAY CLR P3.2 RET GIAIMA: MOV A,R1 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 41H,A MOV A,B MOVC A,@A+DPTR MOV 42H,A RET GIAIMA1: MOV A,R2 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 43H,A MOV A,B MOVC A,@A+DPTR MOV 44H,A RET DELAY: MOV R7,#20 LAP: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP RET MALED7SEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
Comment
-
thanhk bác nhiều nhá.Nguyên văn bởi chung1608 Xem bài viếtđã sửa lại code của chú, tham khảo rồi viết thêm cho led hour, viết hoài ko chạy thì post lên hỏi tiếp
Code:ORG 00H main: MOV P3,#00H MOV R1,#0 MOV R2,#0 MOV DPTR,#MALED7SEG LOOP: CALL GIAIMA CALL GIAIMA1 MOV R5,#25 LOOP1: CALL HIENTHI CALL HIENTHI1 DJNZ R5,LOOP1 INC R1 CJNE R1,#60,LOOP MOV R1,#0 INC R2 CJNE R2,#60,LOOP MOV R2,#0 SJMP LOOP HIENTHI: MOV P0,42H SETB P3.1 CALL DELAY CLR P3.1 MOV P0,41H SETB P3.0 CALL DELAY CLR P3.0 RET HIENTHI1: MOV P0,44H SETB P3.3 CALL DELAY CLR P3.3 MOV P0,43H SETB P3.2 CALL DELAY CLR P3.2 RET GIAIMA: MOV A,R1 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 41H,A MOV A,B MOVC A,@A+DPTR MOV 42H,A RET GIAIMA1: MOV A,R2 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 43H,A MOV A,B MOVC A,@A+DPTR MOV 44H,A RET DELAY: MOV R7,#20 LAP: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP RET MALED7SEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
Last edited by thuongdtqb; 19-03-2012, 17:05.★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
Comment
-
mà bác có thể giải thích dùm mấy lệnh bác thêm cho em với dk khôngLast edited by thuongdtqb; 19-03-2012, 17:11.★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
Comment
-
em viết thêm led hour như thế này nhưng chạy bị giật. Em không biết do gì nửa bác coi dùm em với. Mà cho em hỏi lun là dòng lệnh: MOV R5,#25 có nghỉ là gì vậy và lệnh giảm R5: DJNZ R5,LOOP1 để làm gì . thank bac nhiều
Code:ORG 00H main: MOV P3,#00H MOV R1,#0 MOV R2,#0 MOV R3,#0 MOV DPTR,#MALED7SEG LOOP: CALL GIAIMAGIAY CALL GIAIMAPHUT CALL GIAIMAGIO MOV R5,#25 LOOP1: CALL HIENTHIGIAY CALL HIENTHIPHUT CALL HIENTHIGIO DJNZ R5,LOOP1 INC R1 CJNE R1,#60,LOOP MOV R1,#0 INC R2 CJNE R2,#60,LOOP MOV R1,#0 MOV R2,#0 INC R3 CJNE R3,#60,LOOP MOV R3,#0 SJMP LOOP HIENTHIGIAY: MOV P0,42H SETB P3.1 CALL DELAY CLR P3.1 MOV P0,41H SETB P3.0 CALL DELAY CLR P3.0 RET HIENTHIPHUT: MOV P0,44H SETB P3.3 CALL DELAY CLR P3.3 MOV P0,43H SETB P3.2 CALL DELAY CLR P3.2 RET HIENTHIGIO: MOV P0,46H SETB P3.5 CALL DELAY CLR P3.5 MOV P0,45H SETB P3.4 CALL DELAY CLR P3.4 RET GIAIMAGIAY: MOV A,R1 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 41H,A MOV A,B MOVC A,@A+DPTR MOV 42H,A RET GIAIMAPHUT: MOV A,R2 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 43H,A MOV A,B MOVC A,@A+DPTR MOV 44H,A RET GIAIMAGIO: MOV A,R3 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 45H,A MOV A,B MOVC A,@A+DPTR MOV 46H,A RET DELAY: MOV R7,#20 LAP: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP RET MALED7SEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
Comment
-
vấn đề quét led bị giật và MOV R5,#25 để làm gì là hai vấn đề liên quan tới nhau. Chú tìm hiểu lại phương pháp quét led cụ thể là phần thời gian lưu ảnh sẽ hiểu. Sửa chương trình ko chỉ rặp khuôn cái đã sửa, mà phải sửa lại cái đã được sửa rồi.
Comment
-
lúc đầu dùng 4 lần gọi delay để tạo trì hoãn 1 giây, làm như thế tần số quét led thấp sẽ bị nháy, vì thế cần phải giảm delay mà giảm delay thì thời gian tăng nhỏ hơn 1 giây nên phải có R5 để đếm số lần quét led cho việc tính delayNguyên văn bởi thuongdtqb Xem bài viếtThì thời gian lưu ảnh của mắt là 24 hình/S. Nhưng em vẩn không hỉu R5 ở đây để làm gì.Bác có thể giải thích cho em vớ dk không
(20*250*2)*4*25=1000000uS
Comment
-
Thank bác nhé. Nếu như vậy có phải bây giờ em phải giảm thời gian delay sao cho gọi 8 lần delay đủ cho thời gian trì hoản 1s phải không bác. Em làm như thế này có được không?Nguyên văn bởi chung1608 Xem bài viếtlúc đầu dùng 4 lần gọi delay để tạo trì hoãn 1 giây, làm như thế tần số quét led thấp sẽ bị nháy, vì thế cần phải giảm delay mà giảm delay thì thời gian tăng nhỏ hơn 1 giây nên phải có R5 để đếm số lần quét led cho việc tính delay
(20*250*2)*4*25=1000000uS
Code
(10*250*2)*8*25=1000000uSCode:ORG 00H MAIN: MOV P3,#00H MOV R1,#0 MOV R2,#0 MOV R3,#0 MOV DPTR,#MALED7SEG LOOP: CALL GIAIMAGIAY CALL GIAIMAPHUT CALL GIAIMAGIO CALL DELAY MOV R5,#25 LOOP1: CALL HIENTHIGIAY CALL HIENTHIPHUT CALL HIENTHIGIO CALL DELAY DJNZ R5,LOOP1 INC R1 CJNE R1,#60,LOOP MOV R1,#0 INC R2 CJNE R2,#60,LOOP MOV R1,#0 MOV R2,#0 INC R3 CJNE R3,#60,LOOP MOV R3,#0 SJMP LOOP HIENTHIGIAY: MOV P0,42H SETB P3.1 CALL DELAY CLR P3.1 MOV P0,41H SETB P3.0 CALL DELAY CLR P3.0 RET HIENTHIPHUT: MOV P0,44H SETB P3.3 CALL DELAY CLR P3.3 MOV P0,43H SETB P3.2 CALL DELAY CLR P3.2 RET HIENTHIGIO: MOV P0,46H SETB P3.5 CALL DELAY CLR P3.5 MOV P0,45H SETB P3.4 CALL DELAY CLR P3.4 RET GIAIMAGIAY: MOV A,R1 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 41H,A MOV A,B MOVC A,@A+DPTR MOV 42H,A RET GIAIMAPHUT: MOV A,R2 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 43H,A MOV A,B MOVC A,@A+DPTR MOV 44H,A RET GIAIMAGIO: MOV A,R3 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 45H,A MOV A,B MOVC A,@A+DPTR MOV 46H,A RET DELAY: MOV R7,#10 LAP: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP RET MALED7SEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
Mà cho em hỏi cái biểu tượng $ trong chương trình delay có nghỉa gì vậyLast edited by thuongdtqb; 21-03-2012, 08:48.★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
Comment
-
$ là nhãn nhảy về đầu dòngNguyên văn bởi thuongdtqb Xem bài viếtThank bác nhé. Nếu như vậy có phải bây giờ em phải giảm thời gian delay sao cho gọi 6 lần delay đủ cho thời gian trì hoản 1s phải không bác. Mà cho em hỏi cái biểu tượng $ trong chương trình delay có nghỉa gì vậy
Comment
-
Mà cho em hỏi đoạn code nàyNguyên văn bởi chung1608 Xem bài viếtlúc đầu dùng 4 lần gọi delay để tạo trì hoãn 1 giây, làm như thế tần số quét led thấp sẽ bị nháy, vì thế cần phải giảm delay mà giảm delay thì thời gian tăng nhỏ hơn 1 giây nên phải có R5 để đếm số lần quét led cho việc tính delay
(20*250*2)*4*25=1000000uS
Nếu tính như bác vậy thì em nghỉ là mới chạy chương trình vào thì thời gian delay là: (20*250*2)*4=40000uS. Sau khi thực hiện lệnh DJNZ R5,LOOP1 thì R5 giảm đi một đơn vị thì quay trở nhản LOOP1. Lúc này thời gian trì hoản delay sẻ là: (20*250*2)*2*24=500000uS. Tổng cộng time sau khi R5=0 là: 40000+500000=540000uS thôi ah. Không biết em tính thế có đứng không mong bác chỉ giáo dùm em với.Code:LOOP: CALL GIAIMAGIAY CALL GIAIMAPHUT MOV R5,#25 LOOP1: CALL HIENTHIGIAY CALL HIENTHIPHUT DJNZ R5,LOOP1 INC R1 CJNE R1,#60,LOOP MOV R1,#0
★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
Comment
-
chú bấm máy lộn 20*250*2*24=960000Nguyên văn bởi thuongdtqb Xem bài viếtMà cho em hỏi đoạn code này
Nếu tính như bác vậy thì em nghỉ là mới chạy chương trình vào thì thời gian delay là: (20*250*2)*4=40000uS. Sau khi thực hiện lệnh DJNZ R5,LOOP1 thì R5 giảm đi một đơn vị thì quay trở nhản LOOP1. Lúc này thời gian trì hoản delay sẻ là: (20*250*2)*2*24=500000uS. Tổng cộng time sau khi R5=0 là: 40000+500000=540000uS thôi ah. Không biết em tính thế có đứng không mong bác chỉ giáo dùm em với.Code:LOOP: CALL GIAIMAGIAY CALL GIAIMAPHUT MOV R5,#25 LOOP1: CALL HIENTHIGIAY CALL HIENTHIPHUT DJNZ R5,LOOP1 INC R1 CJNE R1,#60,LOOP MOV R1,#0
Comment
-
Thì lúc mới chạy chương trình vào thì thời gian delay là: (20*250*2)*4=40000uS rồi.Phia sau em bấm máy nhầm nhưng em tính lại là sau lệnh DJNZ R5,LOOP1 thì thời gian sẻ là: (20*250*2)*2*24=480000 và tổng cộng thời gian là 480000+40000=520000uS < 1000000uS như bác tính ah.Nguyên văn bởi chung1608 Xem bài viếtchú bấm máy lộn 20*250*2*24=960000
Ah cho em hỏi luôn nha: $ là nhản nhảy về đầu dòng, em vẩn không hiểu nhưng cụ thể trong chương trình delay đó $ là nhảy về đầu dòng nào ahLast edited by thuongdtqb; 22-03-2012, 10:42.★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
Comment
-
20*250*2 là thời gian của chương trình delayNguyên văn bởi thuongdtqb Xem bài viếtthì lúc mới đầu là 40000uS rồi.
Ah em nhầm nhưng em tính lại là sau lệnh DJNZ R5,LOOP1 thì thời gian sẻ là: (20*250*2)*2*24=480000 và tổng cộng thời gian là 480000+40000=520000uS < 1000000uS như bác tính ah.
delay trong quét led đc gọi 4 lần
cho là lúc đầu làm mấy 40000uS như chú nói thì 24 lần làm kết tiếp là
20*250*2*4*24= 960000uS
Comment
Bài viết mới nhất
Collapse
-
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 CA KHÚC VỀ CHA MẸ:
Nặng Nghĩa Mẹ Cha
Sáng tác: Hoàng Đình Thường
Giọng hát: AI
Công cha cao tựa như Thái Sơn
Nghĩa mẹ sâu nước biếc xanh trong
Mong con khôn lớn đời hạnh phúc
Mẹ cha...-
Channel: Tâm tình dân kỹ thuật
12-05-2026, 16:22 -
-
bởi afrendlyCảm ơn bạn. Mình hỏi để thợ có thể tham khảo thôi chứ không đủ kiển thức để sửa, mà cũng không có đồ nghề, mua đồ nghề quá tiền máy. Gọi nhiều lần mà thợ hẹn mãi chưa có tới ấy bạn. Mình muốn sửa được chứ bỏ thì uống, nhưng sợ là được mỗi người thợ mà lại không sửa nổi....
-
Channel: Điện tử gia dụng
11-05-2026, 00:34 -
-
bởi mèomướpDạ nó bị tắc ẩm hoặc rò thiếu gas hoặc lốc yếu hoặc van tiết lưu có vấn đề hoặc tất cả những nguyên nhân trên ạ. Chú ko chuyên về mảng này thì bán đi, giành thời gian trồng rau sạch đem ra chợ bán lấy tiền mua tủ mới ạ. Còn...
-
Channel: Điện tử gia dụng
10-05-2026, 17:01 -
-
bởi afrendlyXin chào mọi người. Mình lại có vấn đề về đồ điện cần nhờ mọi người hỗ trợ giúp. Mình có tủ lạnh Sharp dùng cũng lâu rồi. Trước có bị kém lạnh, không đông đá thì có thợ họ mang về, sục đường ga gì đó hết 900k và đã dùng...
-
Channel: Điện tử gia dụng
10-05-2026, 16:53 -
-
bởi dinhthuong92Đấy, cái tôi thắc mắc là chỗ màu hồng ấy bạn, để áp vào cao chứ không bị sụt gần bằng áp pin thì rất cần cuộc cảm để làm điều đó. Tuy nhiên, trong công thức bác thớt dẫn không thấy mặt L, và một vài mạch MPPT tôi đã kiểm...
-
Channel: Nguồn!
09-05-2026, 10:01 -
-
bởi mèomướpDạ mạch sạc là 1 cục nguồn, nó sẽ điều chỉnh công suất đầu ra để có tổng trở bằng nội trở của pin ạ. Và cái cách nó chỉnh công suất đầu ra sẽ là dạng buck, boot. Đều cần đến cuộn cảm ạ. Tất nhiên chú thích thì có thể dùng dạng tuyến tính transistor để bù trừ nhưng mà nó đốt năng lượng vô ích ạ...
-
Channel: Nguồn!
08-05-2026, 16:26 -
-
bởi dinhthuong92Tng trở R của tải (gồm pin và mạch sạc) trong công thức đó rõ ràng khống có L xuất hiện. Nếu tính các dây dẫn thì rất nhỏ, bỏ qua. Vì nội trở pin là rất nhỏ, có thể nói luôn lớn hơn nội trở solar, nên mạch MPPT sẽ hầu như luôn tính...
-
Channel: Nguồn!
08-05-2026, 11:00 -
-
bởi dinhthuong92Chào bác. Đã là công thức phải tổng quát chứ, nó phải thể hiện cả quá trình, rối thì quá độ hay xác lập tính sau vì tùy điều kiện. Cũng như công thức tính diện tích chả hạn, phải là tích phân....
-
Channel: Nguồn!
08-05-2026, 10:49 -

Comment