PDA

View Full Version : Mạch mô phỏng đèn giao thông viết bằng CCS C!!


ngochieubmt
13-05-2009, 06:56 PM
Chào các bạn,mình đang thực hiện 1 đèn giao thông điều khiển bằng 16F877A,đang trong giai đoạn viết code,khi thực hiện mô phỏng trên proteus thì gặp các vấn đề sau mà không giải quyết được,mong các bạn giúp đỡ:
-Khi mô phỏng thì CPU load 100% nên thời gian trên proteus chạy rất chậm,mình không biết có bị tràn vòng lặp chỗ nào không.
-Khi mình set thời gian đèn sáng chỉ là 1s thì sau đến 4s(thời gian trong proteus) đèn mới chuyển chế độ (set 10s thì 40s mới chuyển).
-Mình quét led 2ms đèn led nó cứ nhảy lung tung,mắt mình vẫn nhìn thấy led nó nháy(cái này thì mình tìm hiểu thì nghe bảo proteus không mô phỏng được cái quét led này,không biết có đúng ko).
Mình gửi kèm file mô phỏng và code dưới đây.

PS:Có bạn nào biết nguyên tắc hoạt động của cái đèn rẽ trái không vậy??Mình cần thêm cái này vào nữa.

lequocbao
14-05-2009, 07:04 PM
Làm mạch thật đi bạn!

tienchuan
14-05-2009, 07:13 PM
minh nho la co mot chuong trinh mo phong den giao thong hoan thien ,co ca code lun,hinh nhu la minh down ben dien dan dientuvietnam.net

ban can thi lien he voi minh:ramromct@yahoo.com / tienchuanct@gmail.com

minh dang o quan NET nen khong co san,thong cam ha!

ngochieubmt
15-05-2009, 12:34 AM
Cảm ơn bạn,nhưng mình không tìm mạch đèn giao thông hoàn chỉnh,mình chỉ muốn tìm hiểu thử xem cái code với cái mô phỏng của mình có bị sai chỗ nào không mà nó có 1 số chỗ không như mong muốn như trên thôi.Thx for reply ^^!

thaithien
15-05-2009, 10:47 PM
Tui nghĩ cái chậm này là do bạn chưa chỉnh cái tần số trong proteus cho đúng với tần số khai báo trong code.Và t đã chỉnh lại code của bạn để thấy các số ró hơn rồi nhưng cũng chưa thật sự hiểu ý đồ của bạn trong mạch này,t chỉ thấy các số đêm 0,1,2 gì đó thôi hà.Bạn nói rõ hơn về cái ý tưởng đi

ngochieubmt
15-05-2009, 11:19 PM
Chỉnh cái tần số trong proteus như thế nào vậy bạn.Còn cái thời gian là thời gian của cái đèn giao thông đó,bạn vào trong code chỉnh lại xanh1=15s vang1=3s trong hàm main là giống như đèn giao thông bình thường thôi mà.
.

thaithien
16-05-2009, 05:12 AM
Khi nạp file hex cho vi điều khiển,dưới cái ô để dẫn tới file hex còn có ô tần số.bạn chỉnh ở ngay đó

Nin
17-05-2009, 09:56 PM
proterus mô phỏng ở tốc độ thấp cho tương thích mọi máy, chỉnh nhanh wa máy yếu dễ treo lắm đó. thg này tương đối thôi, làm mạch nó khác 1 trời 1 vực... ráp test bo là tốt nhất.

thanhnam
30-05-2009, 11:55 AM
Hi ngochieubmt :
Mình đã đọc bảng proteur cảu bạn, mình có nhận xét thế này :
- Bạn dùng 01 PIC để vừa xuất tín hiệu cho đèn THGT và cả đèn đếm số (lưu ý ở đây là đếm lùi) là không phù hợp với thực tế.
Theo mình bạn nên làm thế này :
- Dùng 01 PIC (gọi là P1) để xuất ra tín hiệu Xanh - Vàng - Đỏ (nếu làm mô hình thử thì chỉ cần làm 01 xuất tuyến là được rồi, lưu ý trong thực tế có ít nhất 02 xuất tuyến và có cả đèn xanh đi bộ-đoe đi bộ nữa)
- Dùng 01 PIC (gọi là P2) khác để nhận tín hiệu Xanh-Vàng-Đỏ từ P1 (đếm khoảng thời gian thực tế của Xanh-Vàng-Đỏ) sau đó lưu vào bộ nhớ của P2 trong 01 chu kỳ Xanh-Vàng-Đỏ đầu tiên (Khi mới khởi động chu kỳ đầu ko xuất tín hiệu đếm), đến chu kỳ thứ hai trở lên thì xuất tín hiệu đếm lùi khi ra 02 LEd 7 đoạn khi có tín hiệu của đèn Xanh hoặc Vàng hoặc Đỏ.
Từ cơ sở này bạn mới có thể hoàn thiện một mạch tín hiệu giao thông gần giống với thực tế được.
Chúc thành công

lequocbao
30-05-2009, 12:32 PM
Hi ngochieubmt :
Mình đã đọc bảng proteur cảu bạn, mình có nhận xét thế này :
- Bạn dùng 01 PIC để vừa xuất tín hiệu cho đèn THGT và cả đèn đếm số (lưu ý ở đây là đếm lùi) là không phù hợp với thực tế.
Theo mình bạn nên làm thế này :
- Dùng 01 PIC (gọi là P1) để xuất ra tín hiệu Xanh - Vàng - Đỏ (nếu làm mô hình thử thì chỉ cần làm 01 xuất tuyến là được rồi, lưu ý trong thực tế có ít nhất 02 xuất tuyến và có cả đèn xanh đi bộ-đoe đi bộ nữa)
- Dùng 01 PIC (gọi là P2) khác để nhận tín hiệu Xanh-Vàng-Đỏ từ P1 (đếm khoảng thời gian thực tế của Xanh-Vàng-Đỏ) sau đó lưu vào bộ nhớ của P2 trong 01 chu kỳ Xanh-Vàng-Đỏ đầu tiên (Khi mới khởi động chu kỳ đầu ko xuất tín hiệu đếm), đến chu kỳ thứ hai trở lên thì xuất tín hiệu đếm lùi khi ra 02 LEd 7 đoạn khi có tín hiệu của đèn Xanh hoặc Vàng hoặc Đỏ.
Từ cơ sở này bạn mới có thể hoàn thiện một mạch tín hiệu giao thông gần giống với thực tế được.
Chúc thành công

bác nói sao chứ mình đã từng làm 01 pic 77a vẫn có thể đk 6 đèn tín hiệu(6 led) + 8 led 7 đoạn hiển thị thời gian(04 led đếm lùi + 4 led setup) ngon lành.

thanhnam
02-06-2009, 09:44 AM
Chào lequocbao!
Vấn đề mình nói không phải là làm được hay không được, ý mình ở đây là làm mô hình hệ thống đèn THGT cho giống với thực tế. Ở trong thực tế thì bạn sẽ thấy hệ thống có 1 tủ điều khiển đèn THGT (thường thì người ta dùng PLC để lập trình điều khiển còn trong demo của chúng ta mình đã đề nghị dùng 01 con PIC (gọi là P1) để thay cho tủ điều khiển). Kế đến tín hiệu đến các trụ đèn là tín hiệu Xanh-Vàng-Đỏ và dây chung (ngoài ra còn có tín hiệu đèn đi bộ Xanh-Đỏ mà ở đây mình không cần xét đến), do đặt thù như vậy mà khi thiết kế thì bộ đếm lùi phải được tách riêng hoàn toàn và phải chạy dựa trên 3 tín hiệu Xanh-Vàng-Đỏ đưa đến từng trụ. Do đó phương án sẽ là :
- Dùng 01 PIC (gọi là P2) khác để nhận tín hiệu Xanh-Vàng-Đỏ từ P1 (đếm khoảng thời gian thực tế của Xanh-Vàng-Đỏ) sau đó lưu vào bộ nhớ của P2 trong 01 chu kỳ Xanh-Vàng-Đỏ đầu tiên (Khi mới khởi động chu kỳ đầu ko xuất tín hiệu đếm), đến chu kỳ thứ hai trở lên thì xuất tín hiệu đếm lùi khi ra 02 LEd 7 đoạn khi có tín hiệu của đèn Xanh hoặc Vàng hoặc Đỏ.
Làm đựơc như vậy thì khi ứng dụng vào thực tế sẽ bớt bỡ ngỡ hơn.
Thân chào. Chúc một ngày vui!

thoithanhtan
08-07-2009, 01:00 AM
đối với proteus thì bạn nên delay khoảng 40 đến 50ms. chứ bạn delay 2ms thì proteus sẽ không mô phỏng được. khi cho delay_ms(40) thi ta thấy nó hơi nhấp nháy. Còn đối với mạch thật thì nên delay khoảng 4-5ms, nếu nhanh quá thì sẽ để lại bóng mờ.

talenttran
09-07-2009, 01:16 PM
xin loi vi dg tham vao do an hoc phan nen ko thoi pót bai nhung mih cam thay mach cua ban lam rat tot

nguyenhahumg
07-09-2009, 01:43 PM
ban nao co mach mo phong den giao thong bang proteus gui cho minh vi minh dang lam den giao thong bang pic 16f877 vua moi hoc nen thay kho wa

aqbatbai
11-09-2009, 12:40 PM
bạn dclick vào con pic trên mạch protus, chỉnh lại tần số cho nó là 20M hoặc 10M bạn se thấy khác liền. Lúc mô phỏng protus thì bạn nên để ý tần số thạch anh trong chương trình khai báo, tần số con thạch anh trong mạch và tần số trong con pic, mình đã thử làm rồi. do nó chỉ là chương trình mô phỏng nên có lúc nó chạy đúng nhưng mạch thực tế chạy ko đúng(nhất là phần hiển thị LCD đó). Nếu có điều kiện bạn làm test boar là tốt nhất sử dụng chế độ nạp ICSP cho pic cho tiện chỉnh sữa nạp chương trình test pic luôn

rongbacdalat
05-11-2009, 02:29 AM
có pac nào biết viết chương trình đèn giao thông để nạp cho eprom2764 không chỉ mình với

sinhthai
09-11-2009, 09:28 AM
Mình có mạc = asem bạn có lấy thì pmm mình nhé

loctran
09-11-2009, 06:01 PM
Củ chuối quá đi, dùng timer là Ok mà, mấy cái này để cho mấy người mới học PIC nghiên cứu thuật toán thôi chứ có gì mà... Cứ đưa về giải quyết 1 cột đèn là ra hết! Tui mới học PIC nhưng cũng thấy có gì khó đâu? Hỏi cái gì khó hơn để mọi người cùng giải quyết và thiết thực hơn ấy! Mấy cái này mấy bác bên giao thông công chính lo rùi!

tudonghoak51
09-05-2010, 08:54 PM
anh em oi em dang can mot mcah dieu khien tien hieu den giao thong co anh nao giup em duoc ko>

orecky
18-05-2010, 01:12 AM
Chào các bạn,mình đang thực hiện 1 đèn giao thông điều khiển bằng 16F877A,đang trong giai đoạn viết code,khi thực hiện mô phỏng trên proteus thì gặp các vấn đề sau mà không giải quyết được,mong các bạn giúp đỡ:
-Khi mô phỏng thì CPU load 100% nên thời gian trên proteus chạy rất chậm,mình không biết có bị tràn vòng lặp chỗ nào không.
-Khi mình set thời gian đèn sáng chỉ là 1s thì sau đến 4s(thời gian trong proteus) đèn mới chuyển chế độ (set 10s thì 40s mới chuyển).
-Mình quét led 2ms đèn led nó cứ nhảy lung tung,mắt mình vẫn nhìn thấy led nó nháy(cái này thì mình tìm hiểu thì nghe bảo proteus không mô phỏng được cái quét led này,không biết có đúng ko).
Mình gửi kèm file mô phỏng và code dưới đây.

PS:Có bạn nào biết nguyên tắc hoạt động của cái đèn rẽ trái không vậy??Mình cần thêm cái này vào nữa.thử làm mạch thật đi bạn ơi, trong những chương trình CPU load ~100% thì khó mô phỏng bằng protues lắm,