PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Mạch mô phỏng đèn giao thông (http://www.picvietnam.com/forum/showthread.php?t=450)

thongyloan 17-04-2009 03:47 PM

Trích:

Nguyên văn bởi thang0105 (Post 3213)
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é.

bạn ơi mình đã thử với mạch của bạn bằng cách chạy trong chương trình proteus nhưng nó báo có ba lỗi.Mình cũng không biết phải sữa sao nữa.Híc.Lỗi như thế này bạn ah.Bạn xem thữ giúp mình được không nhé:
+ 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

forever4u 25-04-2009 06:37 PM

Trích:

Nguyên văn bởi andyhug (Post 24711)
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!

Anh có thể hướng dẫn thêm về cách sử dụng PCW nói chung và cách dịch từ file lập trình của anh sang file hex được không.
Cảm ơn anh rất nhiều

sonba 28-04-2009 10:06 AM

Trích:

Nguyên văn bởi nhh (Post 3218)
Đâ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
                INCLUDE                P16F84A.INC
REG_L        EQU                        0x0C
REG_M        EQU                        0X0D
REG_H        EQU                        0X0E
                ORG                0X00
                CALL                SET_PORTS
               
;...............................LUOT 1.....................................;

LOOP
LOOP1        ;...LED1:1...LED2:3...DO...LED3:1...LED4:0...XANH...;
                MOVLW                B'10000000'                ;LED1: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'11000001'                ;LED2: 3;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'10000010'                ;LED3: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000011'                ;LED4: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP1
                RETURN
;...............................................................................;
LOOP2        ;...LED1:1...LED2:2...DO...LED3:0...LED4:9...XANH...;
                MOVLW                B'10000000'                ;LED1: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'01000001'                ;LED2: 2;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'10010011'                ;LED4: 9;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS
                CALL                DELAY
                GOTO                LOOP2
                RETURN
;...................................................................................;
LOOP3        ;...LED1:1...LED2:1...DO...LED3:0...LED4:8...XANH...;
                MOVLW                B'10000000'                ;LED1: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'01000001'                ;LED2: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00010011'                ;LED4: 8;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS
                CALL                DELAY
                GOTO                LOOP3
                RETURN
;.................................................................................;
LOOP4        ;...LED1:1...LED2:0...DO...LED3:0...LED4:7...XANH...;
                MOVLW                B'10000000'                ;LED1: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000001'                ;LED2: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'11100011'                ;LED4: 7;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP4
                RETURN
;....................................................................................;
LOOP5        ;...LED1:0...LED2:9...DO...LED3:0...LED4:6...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'10010001'                ;LED2: 9;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'01100011'                ;LED4: 6;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP5
                RETURN
;...................................................................................;
LOOP6        ;...LED1:0...LED2:8...DO...LED3:0...LED4:5...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00010001'                ;LED2: 8;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'10100011'                ;LED4: 5;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP6
                RETURN
;................................................................................;
LOOP7        ;...LED1:0...LED2:7...DO...LED3:0...LED4:4...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'11100001'                ;LED2: 7;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00100011'                ;LED4: 4;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP7
                RETURN
;...............................................................................;
LOOP8        ;...LED1:0...LED2:6...DO...LED3:0...LED4:3...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'01100001'                ;LED2: 6;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'11000011'                ;LED4: 3;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP8
                RETURN
;.............................................................................;
LOOP9        ;...LED1:0...LED2:5...DO...LED3:0...LED4:2...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'10100001'                ;LED2: 5;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'01000011'                ;LED4: 2;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS       
                CALL                DELAY
                GOTO                LOOP9
                RETURN
;........................................................................;
LOOP10        ;...LED1:0...LED2:4...DO...LED3:0...LED4:1...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00100001'                ;LED2: 4;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'10000011'                ;LED4: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS               
                CALL                DELAY
                GOTO                LOOP10
                RETURN

;...........................................................................;
LOOP11        ;...LED1:0...LED2:3...DO...LED3:0...LED4:0...XANH...;
                MOVLW                B'00000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'11000001'                ;LED2: 3;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'00000010'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000011'                ;LED4: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000101'                ;LED XANH;
                MOVWF                PORTA
                CALL                DELAY_10uS               
                CALL                DELAY
                GOTO                LOOP11
                RETURN
;...........................................................................;
LOOP12        ;...LED1:0...LED2:2...DO...LED3:0...LED4:2...VANG...;
                MOVLW                B'10000000'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'11000011'                ;LED2: 2;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'10000100'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000111'                ;LED4: 2;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000100'                ;LED VANG;
                MOVWF                PORTA
                CALL                DELAY_10uS               
                CALL                DELAY
                GOTO                LOOP12
                RETURN
;...........................................................................;
LOOP13        ;...LED1:0...LED2:1...DO...LED3:0...LED4:1...VANG...;
                MOVLW                B'10000001'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'11000011'                ;LED2: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'10000100'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000111'                ;LED4: 1;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000100'                ;LED VANG;
                MOVWF                PORTA
                CALL                DELAY_10uS               
                CALL                DELAY
                GOTO                LOOP13
                RETURN
;.............................................................................;
LOOP14        ;...LED1:0...LED2:0...DO...LED3:0...LED4:0...VANG...;
                MOVLW                B'10000001'                ;LED1: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'11000011'                ;LED2: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS
                MOVLW                B'10000100'                ;LED3: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000111'                ;LED4: 0;
                MOVWF                PORTB
                CALL                DELAY_10uS       
                MOVLW                B'00000000'                ;LED DO;
                MOVWF                PORTA
                CALL                DELAY_10uS
                MOVLW                B'00000100'                ;LED VANG;
                MOVWF                PORTA
                CALL                DELAY_10uS               
                CALL                DELAY
                GOTO                LOOP14
                RETURN
;.......................HET LUOT 1..................................;


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

sonba 28-04-2009 10:08 AM

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

andyhug 28-04-2009 11:25 AM

PLC hả!.............
 
Trích:

Nguyên văn bởi sonba (Post 25315)
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 thì bạn nên sang diễn đàn nào chuyên về món này, picvietnam chuyên về PIC thôi!

nguyentam_511 10-09-2009 06:33 PM

anh nao co tai lieu lap tring bang hop ngu cho pic16f877a cho e voi!!!dag can gap !thank may a nha!

benzu 10-09-2009 08:32 PM

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. ^^!

manhphat007 11-09-2009 08:28 AM

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 ạ ?

ketnoivungtau 11-09-2009 05:22 PM

Trích:

Nguyên văn bởi manhphat007 (Post 29510)
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 ạ ?

em sang hỏi anh hà đấy..hahaha

votinh1986 11-09-2009 06:09 PM

tôi củng vậy không hiểu gì cả

manhphat007 11-09-2009 10:25 PM

Trích:

Nguyên văn bởi ketnoivungtau (Post 29526)
em sang hỏi anh hà đấy..hahaha

he he .... cám ơn bác đã chỉ đường nhé. nhưng mình tự viết được rồi. để mình tự viết theo suy nghĩ của mình nhé, nếu sai xin mọi người góp ý.


;=========
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

nguyenduynjnh 17-09-2009 05:20 PM

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 .

lequocbao 17-09-2009 10:00 PM

1 Attachment(s)
Trích:

Nguyên văn bởi nguyenduynjnh (Post 29618)
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 .

lấy cái nì về nghiên cứu!

lephucanh1508 19-10-2009 10:01 AM

Trích:

Nguyên văn bởi andyhug (Post 24711)
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!

bạn có thể giúp mình viết cho mình đề tài này dc ko? thiết kế bộ đếm thứ tự sinh viên.
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.

niem 03-03-2010 04:01 PM

cảm ơn các anh em trong diễn đàm nhé!


Múi giờ GMT. Hiện tại là 08:32 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