Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
em mới học về lập trình nên chưa hiểu mấy mà thầy đã bắt làm đề tài về lập trình rùi nên post đề tài này lên nhờ mọi người giúp em với
Đề bài:
Sử dụng ic 8501 tạo mạch khóa số thảo mãn các yêu cầu sau:
Nhập vào bốn mã nếu đúng thì phát tín hiệu mở khóa
Nhập sai 3 lần phát tín hiệu báo trộm
Ý tưởng thực hiện:
Dùng chương trình quét bàn phím scankey để nhập 4 mã vào
Cho phép người nhập 4 mã cùng lúc(được cất trong ngăn xếp)
Có tín hiệu báo khi người nhập đủ 4 mã
Nhập sai 3 lần có tín hiệu báo
Nhập đúng mã số,kích xung mở khóa
Mạch được kết nối:
Led-d1 sáng: tín hiệu mở khóa được kích hoạt
Mã nhập vào là 6009
Mạch được thiết kế sao cho người nhập chỉ nhập mã vào 1 lần là 4 số
Hết 4 số lần 1,sẽ chuyển sang những lần kế tiếp và chỉ được nhập 3 lần
Mã đúng là 6009
Led –d3 báo đã nhập đủ 4 mã số:
Led d3 được kích hoạt,báo cho người sử dụng biết đã nhập đủ 4 mã số
Sau khoảng thời gian trễ là 500 ms led d3 sẽ tắt,và được sử dụng cho các lần kế tiếp
Điều này có tác dụng trong trường hợp người sử dụng không biết là mình đã nhập mấy mã,chu kỳ 4 mã nhập ,led-d3 sáng giúp cho khóa mã tiện ích hơn
Chức năng chống trộm của mạch:
Trong trường hợp có người lạ không biết mã số,cố ý mở khóa,sau 3 lần nhập mã không đúng,thì:
Chân p2.1 được kích cạnh xuống,kích hoạt thiết bị báo trộm(trong mạch để cho đơn giản ta sử dụng led-d2)
Trong main_code ta sử dụng led-d2 với tính chất mô phỏng cho chức năng này,led-d2 sáng khi nhập sai 3 lần
Theo nguyên tắc ta phai reset lại mạch thì chuông báo động mới hết kêu,nhưng ở phần mô phỏng này ta cho thời gian trễ là 5s ,led-d2 sẽ tắt,rồi quay về chương trình chính.Cho lần thử sau
em tìm thấy cái code này trên mạng nhưng nạp vào con ĂT9C51 thì nó không chạy chắc là code lỗi mong mọi người giúp đỡ nhá
code:
main code:
org 0000h
start:
ljmp main; lap lai
scan:
mov p1,#0f0h;
mov a,p1;
cjne a,#0f0h,scan; neu A khac 0f0 scan
scanner:
mov a,#0feh;
1up:
mov r0,a;
mov p1,a;
mov a,p1;
mov r1,a;
orl a,#0fh; hop ma phim
cjne a,#0ffh,cnvrt; neu A khac 0ff cnvrt
sjmp scanner;
cnvrt:
mov a,r1;
mov r3,#0;
clup:
jib acc.0,cnvrt2;
rr a;
mov r2,a;
mov a,r3;
add a,#4;
mov r3,a;
mov a,r2;
sjmp c1up;
cnvrt2:
mov a,r1;
swap a; quay ma phim
ret; ket thuc chuong trinh con
main:
mov r5,#3;
init:
mov r7,#4;
nhapso:
acall scan;
mov r0,a;
push 0; cat vao stack
djnz r7,nhapso; dem r7
mov r1,#0feh;
mov p2,r1;
acall delay_500ms;
pop 1; lay ra khoi stack
pop 2;
pop 3;
pop 4;
cjne r1,#0d7h,sorry;
cjne r2,#0beh,sorry;
cjne r3,#0beh,sorry;
cjne r4,#0dbh,sorry;
clr p3.5;
sorry:
acall delay_500ms;
setb p2.0;
djnz r5,init;
clr p2.1;
em dùng phần mềm asm 51 để kiểm tra thì thấy nó báo lỗi nhiều quá, chẳng hiểu là lỗi gì nữa nên post code này lên mong cac bạn giúp đỡ nhé (swả code giúp tớ or có thể tạo 1 code mới phù hợp với đề tài của tớ cũng được. cảm ơn mọi người trc nhá
main code: ; Xóa dòng này đi
org 0000h
start:
ljmp main; lap lai
scan:
mov p1,#0f0h;
mov a,p1;
cjne a,#0f0h,scan; neu A khac 0f0 scan
scanner:
mov a,#0feh;
1up: ; nhãn này báo lỗi, bạn nên đặt nhãn khác không có số đứng trước.
mov r0,a;
mov p1,a;
mov a,p1;
mov r1,a;
orl a,#0fh; hop ma phim
cjne a,#0ffh,cnvrt; neu A khac 0ff cnvrt
sjmp scanner;
cnvrt:
mov a,r1;
mov r3,#0;
clup:
jib acc.0,cnvrt2;Cú pháp sai jnb hoặc jb
rr a;
mov r2,a;
mov a,r3;
add a,#4;
mov r3,a;
mov a,r2;
sjmp c1 up; Nhãn c1 bạn chưa định nghĩa
cnvrt2:
mov a,r1;
swap a; quay ma phim
ret; ket thuc chuong trinh con
main:
mov r5,#3;
init:
mov r7,#4;
nhapso:
acall scan;
mov r0,a;
push 0; cat vao stack
djnz r7,nhapso; dem r7
mov r1,#0feh;
mov p2,r1;
acall delay_500ms;
pop 1; lay ra khoi stack
pop 2;
pop 3;
pop 4;
cjne r1,#0d7h,sorry;
cjne r2,#0beh,sorry;
cjne r3,#0beh,sorry;
cjne r4,#0dbh,sorry;
clr p3.5;
sorry:
acall delay_500ms;
setb p2.0;
djnz r5,init;
clr p2.1;
acall delay_5s;
setb p2.1;
sjmp main;
delay_5s:
mov tmod,#10h;
mov th1,#high(-50000);
mov tl1,#low(-50000);
mov r4,#100;
again:
setb tr1;
jnb tf1,$;
clr tr1;
clr tf1;
djnz r4,again;
ret;
delay_500ms:
mov tmod,#10h;
mov th1,#high(-50000);
mov tl1,#low(-50000);
mov r4,#10;
again1:
setb tr1;
jnb tf1,$;
clr tr1;
clr tf1;
djnz r4,again1;
ret;
end. ; sau lệnh end ban không được thêmđấu chấm hoặc enter thêm dòng trống nào.
Mình chỉ kiểm tra dùm bạn về cú pháp còn về giải thuật và hướng lập trình nếu kết quả không như ý bạn cần tiếp tục thảo luận thêm để biết và hiểu sâu hơn.
Chúc thành công
Bạn langtuk10 tham khảo files ASM và PROTEUS tôi đính kèm, tôi chỉ sử dụng những đoạn chương trình mà bạn đã viết để giải quyết các yêu cầu cơ bản nhất của bộ khóa số , bạn có thể hoàn thiện hơn .
Chúc thành công .
tôi có một trương trình kết nối rom 28c020 nhưng ko có điêù kiện thử nên post lên đây nhờ các bạn chỉ giáo sem có đọc được dữ liệu từ rôm ko ah các ban cho hỏi tạo bang dữ liệu để nạp vào rôm như thế nào vậy minh mới tìm hiểu về kết nối với rôm còn cách nạp rom và tao file hex cho rôm như thế nào thi mình kô có tài liệu tìm cũng ko thấy có ai có tài liệu gửi cho mình vơi hoac chỉ giáo mình chut
ai giúp em sửa code bài này với "điều khiển động cơ dc với yêu cầu có nút chạy/dừng kết nối với p3.0,có nút nhấn đảo chiều kết nối với chân p3.1",em dùng chân p2.0 và p2.1 để điều khiển xung ra cầu H,khi mô phỏng thì chỉ chạy được một trạng thái,không đảo chiều được.giúp em với,em sắp phải nộp rồi.huhu
anh oi send cho em cái tài liệu mà anh bảo ấy nhé
qua mail cho em nhe duytuan2105@gmail.com em cảm ơn anh nhiều nhiều lắm anh àh ma anh có tài liệu vê cách lam robocon cần lam nhung gi.em dân co khí len chỉ biêt sơ sơ về mạch diên chua biet nhiều cac bác nào trong diễn đàn . hãy chỉ giáo em với em xin trân thành cảm ơn
điện tử việt nam muôn năm
Cả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....
Dạ 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...
Xin 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...
Dạ nếu cứ nhất định ko cuộn cảm thì có thể dùng cầu H đảo pha và tụ nhân áp để tăng công suất sạc; giảm công suất sạc thì dùng điều tần FM nối tiếp qua tụ điện hạn dòng tùy ý theo tần số thay đổi. Hoặc chỉ đơn giản là...
Đấ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...
Dạ 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 ạ...
Tng 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...
Chà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....
Dạ L nằm trong tổng trở tải R ấy ạ. Chứ ai lại dùng dạng tuyến tính thuần trở để bù cho tổng trở. Kiểu như nguồn xung khi chạy công suất khác nhau thì nó sẽ có tổng trở khác nhau ấy ạ...
Về mặt lý thuyết mạch, công thức _nếu_ có L và C chỉ xuất hiện ở trạng thái quá độ của mạch. Về mặt toán, L và C xuất hiện ở công thức có dI/dt hoặc dV/dt hoặc cả hai. Ở trạng thái xác lập, công thức sẽ không có L hay C.
Comment