Nguyên văn bởi trimen
Xem bài viết
Thông báo
Collapse
No announcement yet.
chương trình delay
Collapse
X
-
Nguyên văn bởi chick3nb0y9x Xem bài viếtthế là sao hả bạn, với câu lệnh trên bạn có thể giải thích giùm mình công dụng của nó dc k?
Comment
-
Nguyên văn bởi trimen Xem bài viếtĐầu tiên lệnh Push 05 sẽ đẩy nội dung thanh ghi tại địa chỉ 05 vào stack,địa chỉ 05 này tuơng ứng với thanh ghi R5, sau đó bạn có thể sử dụng thanh ghi R5 này vào mục đích khác mà không lo giá trị R5 ở chuơng trình chính bị thay đổi, ở đây R5 được sử dụng vào chuơng trình con delay do người viết sợ bạn sẽ sử dụng R5 trong chuơng trình chính vào việc khác nên mới dùng lệnh push để lưu giữ giá trị R5 trong chuơng trình chính vào stack,khi thực hiện xong chuơng trình con delay thì gọi lệnh pop 05 lúc này dữ liệu trong stack sẽ được đưa vào ô nhớ có địa chỉ 05 chính là thanh ghi R5, dữ liệu này là dữ liệu của R5 trước khi vào chuơng trình con delay.
thế bạn ơi, bạn có biết cách tính tần số quét ảnh của led7thanh và matrix k? hướng dẫn mình với
Comment
-
mắt thường không thể sự thay đổi ảnh ở tần số 50hz trở lên, bạn có thể thấy tần số quét của màn hình monitor máy tính là 60hz.Với f=50hz thì mình có T=1/f=20ms vậy chu kì quét led của bạn từ 20ms trở xuống thì mắt bạn sẽ không phân biệt được các led có chớp tắt không.
Comment
-
Nguyên văn bởi trimen Xem bài viếtmắt thường không thể sự thay đổi ảnh ở tần số 50hz trở lên, bạn có thể thấy tần số quét của màn hình monitor máy tính là 60hz.Với f=50hz thì mình có T=1/f=20ms vậy chu kì quét led của bạn từ 20ms trở xuống thì mắt bạn sẽ không phân biệt được các led có chớp tắt không.
Comment
-
bạn có thể dùng delay thường hoặc timer, nếu là timer thì giá trị ô nhớ là tl0 là low(-20000) và th0 là high(-20000) là xấp xỉ 20ms,còn dùng delay thường thì bạn tính toán chu kì các lệnh để delay đúng hoặc ít hơn 20ms.Bạn có thể tham khảo chuơng trình delay dưới đây của mình dùng để quét 14 kon led 7 đoạn:
delay:
push 30h
push 31h
mov 30h,#4
mov 31h,#1
lap:
djnz 31h,$
djnz 30h,lap
pop 31h
pop 30h
ret
Comment
-
Nguyên văn bởi trimen Xem bài viếtbạn có thể dùng delay thường hoặc timer, nếu là timer thì giá trị ô nhớ là tl0 là low(-20000) và th0 là high(-20000) là xấp xỉ 20ms,còn dùng delay thường thì bạn tính toán chu kì các lệnh để delay đúng hoặc ít hơn 20ms.Bạn có thể tham khảo chuơng trình delay dưới đây của mình dùng để quét 14 kon led 7 đoạn:
delay:
push 30h
push 31h
mov 30h,#4
mov 31h,#1
lap:
djnz 31h,$
djnz 30h,lap
pop 31h
pop 30h
ret
Comment
-
đúng rồi nếu bạn không dùng 30h và 31h thì không cần dùng lệnh push,pop.1 thanh ghi 8 bit giá trị thập phân max của nó là 255 bạn,mình chạy từng bước 2 lần cho bạn thấy tại sao mình để 1 và 4:
Đầu tiên 31h giảm từ 1 xuống 0 ,30h giảm từ 4 xuống 3 , trở lại lặp lúc này 31h đang là 0 giảm 1 lần nữa là 255 lúc đó 31h sẽ giảm đúng 255 lần để về 0 ,30h giảm từ 3 xuống 2,trở lại lặp lúc này 31h đang là 0 giảm xuống 255 và quay lại chu trình trên cho đến khi 30h là 0.
Comment
-
Nguyên văn bởi trimen Xem bài viếtđúng rồi nếu bạn không dùng 30h và 31h thì không cần dùng lệnh push,pop.1 thanh ghi 8 bit giá trị thập phân max của nó là 255 bạn,mình chạy từng bước 2 lần cho bạn thấy tại sao mình để 1 và 4:
Đầu tiên 31h giảm từ 1 xuống 0 ,30h giảm từ 4 xuống 3 , trở lại lặp lúc này 31h đang là 0 giảm 1 lần nữa là 255 lúc đó 31h sẽ giảm đúng 255 lần để về 0 ,30h giảm từ 3 xuống 2,trở lại lặp lúc này 31h đang là 0 giảm xuống 255 và quay lại chu trình trên cho đến khi 30h là 0.
à bạn có nic yh k? cho minh xin đc k?
Comment
-
code này mình viết lại từ code delay 50ms cuả mình nên cũng làm biếng tính bao nhiu giây , bạn có thể tham khảo code delay 50ms của mình rồi giảm 2 số trong 30h với 31h để hợp với bài tập của bạn:
t50ms:
push 30h
push 31h
mov 30h,#97
mov 31h,#255
lap:
djnz 31h,$
djnz 30h,lap
pop 31h
pop 30h
mov r0,#64
djnz r0,$
ret
Nick yh mình là Toilaai678_pt@yahoo.com
Comment
-
Nguyên văn bởi trimen Xem bài viếtcode này mình viết lại từ code delay 50ms cuả mình nên cũng làm biếng tính bao nhiu giây , bạn có thể tham khảo code delay 50ms của mình rồi giảm 2 số trong 30h với 31h để hợp với bài tập của bạn:
t50ms:
push 30h
push 31h
mov 30h,#97
mov 31h,#255
lap:
djnz 31h,$
djnz 30h,lap
pop 31h
pop 30h
mov r0,#64
djnz r0,$
ret
Nick yh mình là Toilaai678_pt@yahoo.com
học kỳ trước, thầy mình có dạy mình cách tính thời gian delay dùng vòng lặp có công thức tạm gọi như thế này: 2*n*m=time delay
ví dụ: muốn delay 1s=1000000us=2*m*n
nên m*n=500000, sau đó mình chia ra, tại vì mỗi ô nhớ (r0,r1,...r7) có giá trị cực đại là 255, nên khi chia ra ta sẽ đc là 250,200,10, vậy mình cho nó vào 3 ô nhớ, thì sẽ có lệnh như thế này đúng k bạn:
mov r0,#10
lap:
mov r1,#200
lap1:
mov r2,#250
djnz r2,$
djnz r1,lap1
djnz r0,lap
ret
như thế đúng k bạn?
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Mua anten ở đâu?bởi tmcodonAnten bạn thu nguồn sóng nào vậy? Nếu xem truyền hình thì giờ k làm đc anten nữa rồi
-
Channel: Ăng ten và truyền sóng
16-11-2024, 15:34 -
-
Trả lời cho Mạch nguồn đôi dùng 7812 và 7912bởi tmcodonThank bác nhá. Tìm mãi mới thấy. Giờ vọc đã xem sao...
-
Channel: Hỗ trợ học tập
16-11-2024, 10:39 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
15-11-2024, 08:27 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment