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
-
Đầ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.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
-
à, thì ra là thế, cám ơn bạn nhiều nhaNguyê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
-
vậy có phải là khj dùng vòng lặp thì mình cho 2 giá trị ô nhớ là 200 và 50 phải k bạn?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
-
bạn ơi, nếu với câu lệnh trên của bạn, nếu chương trình chính của mình mà k dùng ô nhớ 31h và 30h thì k cần lệnh push pop phải k bạn? còn cái giá trị gán vào 2 ô nhớ đó tại sao lại phải dùng 2 ô nhớ đó thế, tại vì 1 ô nhớ là 250bit mà,trong khj với câu lệnh trên của bạn, nó chỉ lặp có 4 lần mà?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
-
vậy nếu với code của bạn mình sẽ có thời gian delay là bao nhiêu vậy bạn?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
-
ủa sao code trên của bạn, đến lệnh pop 30h thì phải ret luôn chứ, sao còn thực hiện 2 lệnh dưới làm gì nữaNguyê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 Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
31-07-2026, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
30-07-2026, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
30-07-2026, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -

Comment