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 Mạch mở đèn led dâybởi dataonline
-
Channel: Điện tử dành cho người mới bắt đầu
04-04-2026, 23:18 -
-
Trả lời cho Mạch mở đèn led dâybởi dataonline
-
Channel: Điện tử dành cho người mới bắt đầu
04-04-2026, 23:05 -
-
bởi dataonlineMình có mạch này nhưng khi hoàn thiện thì tụ k5 bị nổ và không sáng đèn led. Mọi người phân tích giúp mình cho phù hợp với ạ. Nguồn vào 24vac 6a. Đầu ra led dây 24vdc 100w. Mình cảm ơn
-
Channel: Điện tử dành cho người mới bắt đầu
04-04-2026, 23:05 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi davidcopyNgõ ra của IC 7806 là 6VDC, 7905 là -5VDC. Dòng điện ngõ ra của IC tối đa khoảng 1.5A, thông số này nên tra cứu datasheet từng loại sẽ chính xác hơn. Nếu gắn tải nhỏ làm dòng ngõ ra lớn hơn dòng tối đa(1.5A) thì điện áp ngõ ra sẽ giảm....
-
Channel: Hỗ trợ học tập
02-04-2026, 21:10 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345Cách tính U và I của từng nút sao anh
-
Channel: Hỗ trợ học tập
02-04-2026, 15:02 -
-
bởi chinhnguyen9
Nhìn ảnh sản phẩm đã thấy ấn tượng ngay bởi thiết kế tinh gọn, hiện đại, phần tản nhiệt rất đẹp, thông minh và bắt mắt. Mạch sạc MPPT tự chế của tôi đang hỏng, sửa mãi chưa xong vì lý do tổ trác! Vì vậy, tôi quyết định mua module này về dùng thử để xem chất lượng thực tế thế nào.
...-
Channel: Đánh giá sản phẩm DTVN
02-04-2026, 08:44 -
-
bởi ittcHic. Cảm ơn bác nha, chốt là em sẽ dùng camera IP POE và đầu ghi của hãng Hikvision, em có vào website quốc tế và vài website bán hàng uy tín ở VN thì hình như dòng camera gia đình nói chung em thấy họ để 4 chủng loại chính, em thì không dùng dòng Wifi nên gạt sang 1 bên, còn mấy dòng như:
- AcuSen
-
Channel: Tâm tình dân kỹ thuật
01-04-2026, 15:54 -
bởi nguyendinhvanCách ní nuận có vấn đề, không xát xao với quần chúng.
Nguồn điện lưới, lấy từ nhà máy phát điện có năng lượng hàng Mega, Gigawat, lớn hơn nhiều nhiều lần năng lượng của ắc quy. Nên bộ sạc ắc quy cần có một kiểu.
Nguồn...-
Channel: Đánh giá sản phẩm DTVN
31-03-2026, 22:19 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi davidcopyMạch 3 dùng để tạo ra nguồn đôi -/+( 5V, 6V, 9V, 12V, ...) nên ngõ ra biến áp cách ly thường là nguồn đối xứng.
Như trong mạch 3, ngõ ra biến áp là 9VAC đôi và 12VAC đôi. Khi đo 2 đầu 9V hoặc 12V thì điện áp sẽ là 18VAC hoặc 24VAC....-
Channel: Hỗ trợ học tập
31-03-2026, 19:20 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345Dạ mình muốn tìm hiểu nguyên lý của mạch 3 ạ đặc biệt là 2 con IC 7806 ở trên và 7905 ở dưới nhiệm vụ của nó làm ạ
-
Channel: Hỗ trợ học tập
30-03-2026, 15:34 -

Comment