![]() |
Mạch mô phỏng đèn giao thông
2 Attachment(s)
Chào các anh chị em, mình cũng vừa mới nghiên cứu về PIC16F84A và ứng dụng vào mô phỏng một mạch đèn giao thông có đếm số. Mình dùng thêm con 7447 để giải mã Led 7 đoạn và con 74138,74139 để phân kênh
Mạch mô phỏng mình dùng PROTEUS đễ vẽ. Còn đoạn code thì dùng chương trình MPLAB viết. Tuy nhiên vì sản phẩm đầu tay về con PIC nên đoạn mã chưa chạy, cũng chưa biết sai chỗ nào. Ở đây mình chỉ đơn thuần là xuất các chân trên các Port cho các Led sáng, sau đó delay một khoảng thời gian, và cứ như vậy theo phương pháp quét Led. Nào, anh chị em cùng ra tay giúp đỡ lính mới nhé. |
Đây là phần đầu code của bạn (Do dài quá diễn đàn cấm nếu số ký tự vượt giới hạn):
Code:
LIST P=16F84A |
Phần còn lại:
Code:
;.......................LUOT 2......................................; |
Xem nào !
Đầu tiên là các vòng lặp LOOPx của bạn tại sao lại kết thúc bằng return.Chỉ khi nào dùng lệnh call nhãn thì cuối nhãn đó bạn phải đặt lệnh return để nó quay trở về khi thực hiện xong. Trong mỗi vòng lặp LOOPx, bạn đều dùng lệnh GOTO LOOPx ở cuối.Nghĩa là với vòng lặp LOOP1 đầu tiên nếu viết đúng thì nó cứ lặp đi lặp lại những gì trong vòng lặp này chứ có nhảy tới vòng lặp LOOP nào khác nữa đâu. Từ Nhãn SET_PORTS trở đi là OK rồi. Bạn xem kĩ nhé! |
À ! Còn một lỗi cực kì quan trọng khiến chương trình mô phỏng của bạn bị tịt ngòi.
Đoạn cuối cùng code của bạn: Code:
;..........................................TAO HAM DELAY...................................; Trích:
d nhận một trong hai giá trị 0 hoặc 1 Nếu d=0, kết quả giảm bien se được lưu vào thanh ghi W (bien -> W), Nếu d=1, kết quả giảm bien sẽ được lưu vào bien (bien -> bien) |
Hay quá, vậy mà mình cứ tìm hoài không ra, để mình thử lại xem sao rồi nhắn lại cho anh em biết nhé. Cảm ơn bạn "nhh" nhiều.
|
1 Attachment(s)
Ban "nhh" cho mình hỏi tiếp nhé. Mình đã chỉnh sửa lại đoạn code rồi. Mình có gởi kèm đoạn code cho bạn xem đấy. Mình đã bỏ phần: Tạo hàm Delay, mà thay vào đó là viết luôn vào các Loop, tuy nhiên trình biên dịch MPLAB vẫn còn báo lỗi. Lần này lại phải nhờ tiếp đến bạn "nhh" và các anh chị em nữa rồi, giúp đỡ anh em với nhé.
|
Trích:
Code:
LOOP1 Code:
BCF STATUS,RP1 Chương trình sau sẽ làm sáng bừng 8 con led nối với portb của PIC6F84 qua 8 điện trở 220 Ohm: Code:
;==================================================================== Còn đây là chương trình nhấp nháy 8 con led trong trường hợp trên, thời gian trễ là 1s Code:
;======================================== Chúc học tốt nhé! |
chào các anh chị ,có ai có tai lieu ve vấn đề nay thi gưi cho em với , em đang làm đồ án mạch đèn giao thông do.cam ơn
|
Bác Nhh nên dùng ngắt Timer1 để viết cho chương trình nhấp nháy vừa ngắn gọn lại hiệu quả. Viết như vậy không xứng danh với đệ tử 9 túi.
Tại chương trình ngắt timer0 ta kiểm tra timer1 (Để tràn Timer1 là 0,5s) để tạo ngắt Timer0 0,5ms (đối với thạch anh 4MHz) bạn đưa 0xa0 vào thanh ghi INTCON, đưa 0x80 vào thanh ghi Option_Reg. Để tạo tràn timer1 0,5s bạn đưa 0x31 vào thanh ghi t1con ngay đầu Init chương trình ví dụ trong chương trình sử dụng ngắt Timer0, Dùng thạch anh trong Chip = 4Mhz. |
ví dụ trong chương trình sử dụng ngắt Timer0, Dùng thạch anh trong Chip = 4Mhz.
;--------------------------------------------------------------------- list p=pic16f627A, r=dec #include <p16f627A.inc> #include <Comm.h> __CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_CLKOUT & _LVP_OFF & _MCLRE_OFF atris = 0x00 btris = 0x00 ;Files define org 0x0 ; Khi reset chip goto Init org 0x4 ; Địa chỉ ngắt Timer0 nop clrwdt ; cấm WD btfsc pir1,tmr1if call T1Int ; Có cờ tràn Timer1 bcf intcon,tmr0if ; Xóa cờ ngắt Timer0 T0End retfie ; Kết thúc chương trình ngắt Timer0 ;--------------------- T1Int bcf pir1,tmr1if movlw 0xff xorwf portb,f ; 8 Led nhấp nháy với tần số ~ 1Hz return ;--------------------- ;--------------------- Init call PortInit call TimerInit Loop goto Loop ;---------------------- ;---------------------- PortInit call rBank0 movlw 0x7 movwf cmcon ; All Pin are digital movlw 0xf movwf pcon call rBank1 movlw 0x80 movwf option_reg ;Timer0 Interrupt ~ 0.5 ms movlw atris movwf trisa movlw btris movwf trisb goto rBank0 ;------------------------ TimerInit movlw 0xa0 movwf intcon ; Ngắt Timer0 movlw 0x31 movwf t1con ; Tràn Timer1 = 0,5s return ;------------------------- ;---------------------------- rBank0 bcf status,rp0 bcf status,rp1 return ;--------------------- rBank1 bsf status,rp0 bcf status,rp1 return ;--------------------- end ;---------------------- |
ẹc
ai có mạch đèn giao thông có đếm ngược ko gởi dùm tui cái đi.Có led đếm ngược lun nghe .CẢM ƠN NHÌU NHÌU hEHHEHEHE |
Mạch đèn Giao Thông
2 Attachment(s)
Mình thấy chủ đề này không mới nhưng có nhiều bạn quan tâm, mới lục lại cái đồ án môn ngày xưa, post cho anh em đỡ phải mất thời gian mày mò, mạch này chạy ngon! Bây giờ bạn chỉ việc tập trung làm thêm phần giao tiếp máy tính cho phép thay đổi thời gian của các đèn là xong.
|
ui cảm ơn bạn nhìu nha.mà bạn ơi bạn có đoạn mã nào viết bằng hợp ngữ không đầy đủ tí không pót dùm mình đi.Mình lần đầu lam nên chưa hiểu rõ lém.Híc
|
Mình quen viết CCS C thôi, các tài liệu hướng dẫn hợp ngữ thì bạn tìm trong diễn đàn nhé, nhiều lắm!
|
Trích:
+ no model spectified for U (tuc là con 74138) +no model specified for U#(tức là con 74239) +sumilation.........quên mất bạn thử tìm cach giúp dùm mình đi Ah mà đoạn mã chạy trong proteus thì nó nói code đúng bạn ơi |
Trích:
Cảm ơn anh rất nhiều |
Trích:
khi bat cong tac on thi den xanh sang truoc' 10s sau do den vàng sang 8s sau do den đỏ sáng 2s , ai giup toi di |
giup toi voi
lam on guip toi co ai co mach den giao thong chay nhu the nay hog <ve plc ha>
khi bat cong tac on thi den xanh sang truoc' 10s sau do den vàng sang 8s sau do den đỏ sáng 2s , ai giup toi di |
PLC hả!.............
Trích:
|
anh nao co tai lieu lap tring bang hop ngu cho pic16f877a cho e voi!!!dag can gap !thank may a nha!
|
anh t oi em moi hoc nam dau thoi.thay cho tap lam do an.gui cho em so do nguyen ly mach chay chu~ voi. vdu nhu:happy new year.em rat cam on. ^^!
|
em mới học PIC 16F84 được mấy hôm nay, em đang gặp chút bối rối trong việc sử dụng hàm Delay.
Nếu em sử dụng Thạch anh có dao tần số dao động là 4Mhz thì chu khì máy sẽ là 1us phải ko ạ.vậy nếu em muôn tạo vòng trễ 10ms thì phải cần tới 10 000 chu kì máy phải ko ạ.em ko biết tính thế nào để có thể có một đoạn CODE chạy 10 000 chu kì.... các anh có thể viết dùm em ví dụ này được ko ạ ? |
Trích:
|
tôi củng vậy không hiểu gì cả
|
Trích:
;========= count = 0x0c count1 = count+1 delay_10ms movlw d'19' movwf count loop decfsz count,1 goto loop1 goto next loop1 movlw d'174' movwf count1 loop2 decfsz count1 goto loop2 goto loop netx......... end |
chao mọi người. em mới học năm nhất .thầy cho làm đề án kĩ thuật số . chọn mãi em quyết định làm mạch đèn giao thông .
anh nào có tài liệu thì xin bỏ chút thời gian post lên dùm em với ? chân thành cảm ơn . |
1 Attachment(s)
Trích:
|
Trích:
bạn giúp mình nhé...mail của mình: lephucanh1508@gmail.com có gì bạn có thể liên lạc với mình nhé...thanks. |
cảm ơn các anh em trong diễn đàm nhé!
|
tụi tui đang bắt viết bằng ASM đây.chán
|
minh dang lam do an tot nghiep cung vve den giao thong. nhung khong su dung pic. ma de tai cua minh la dung con psoc cy8c27443. ba con nao co code chuong trinh cho psoc thi dup minh voi nha
|
nếu viết bằng code notepad thì có khác dzi không????
còn muốn gắn thêm bàn phím để điều khiển theo ý của mình thì cần làm thế nao??? |
anh em trong 4room đâu hết rùi nè
|
em cũng mới bắt đầu học về Asem,thầy bắt làm bt lớn dùng pic16f877a thiết kế mạch đèn giao thông,em còn lơ mơ quá ko biết bắt đầu từ đâu.hix
|
có bạn nào làm nhiều về led 7seg không pót lên giúp mình vài bài
|
ban co co mach dieu khien den gt o nga tu .giao tiep voi may tinh tu 6h-23h thi den xanh den do den vang sang .con thoi gian con lai chj co den vang nhap nhay!
|
Ai thích thì down về tham khảo vậy.cái này mình tự làm cách đây cũng lâu rồichưa có giao tiếp với máy tính(vì trình độ lúc đó còn hạn chế :)).Bạn nào down về rồi sửa lại cho giao tiếp với máy tình rồi up lai cho anh em thi quá hay
Code:
/* Chuong Trinh den giao thong.Hien thi ra LCD.dung PIC16F877*/ http://www.mediafire.com/?stiskv0rp3t5s |
andyhug co mach in va mach nguyen ly day du ko cho de tham khao voi,thanks so much
|
ban nao co so do nguyen ly mach dkhien den giao thong dung 8951 hay pic cung duoc+2 con 8255 ko?
minh dag lam do an ma chua co mach,mong moi nguoi giup do |
Múi giờ GMT. Hiện tại là 04:58 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam