Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
semicon_lab.jpg

Code + Mạch mô phỏng đèn giao thông

E-mail Print PDF
Code c mạch đèn giao thông
Trước đây chủ đề đèn giao thông khá là “hot”, rất nhiều các đồ án làm về chủ đề này. Do đó mà đến thời điểm này cho dù đây không còn là vấn đề mới mẻ nữa nhưng nó vẫn mang một sức hút khá mạnh đối với các bạn học điện tử. Nhất là đổi với các bạn mới bắt đầu với vi xử lý.

Vì những lý do đó mà 7segone đã tổng hợp và thu thập có chọn lọc code đèn giao thông trên một số diễn đàn và trang mạng. Dưới đây sẽ là code đèn giao thông viết cho dòng chip 8051 viết bằng 2 ngôn ngữ – một dòng chíp thông dụng và cơ bản mà ai cũng từng nghe thấy khi bước chân vào vi xử lý.

Code Assembry

Code c mạch đèn giao thông
org 000H sjmp main org 0BH     mov TH0,0D8H     mov TL0,0EFH     inc R0     reti xanh_1 equ 30H do_1   equ 31H xanh_2 equ 32H do_2   equ 33H vang   equ 34H  main:     mov TMOD,#01     mov TH0,#3CH     mov TL0,#0AFH     clr TF0     setb TR0     mov IE,#82H start:      mov P0,#21H   ;xuat led do2 xanh1     mov xanh_1,#25     mov do_1,#36     mov xanh_2,#33     mov do_2,#28      mov vang,#3     mov R1,xanh_1     mov R2,do_2 loop_1:      mov R0,#0     lcall chuyen_BCD        again_1:         lcall xuat_led     cjne R0,#20,again_1     dec R2     djnz R1,loop_1     mov P0,#22H  ;xuat led vang sang     mov R1,vang loop_2: mov R0,#0     lcall chuyen_BCD again_2:      lcall xuat_led     cjne R0,#20,again_2     dec R2     djnz R1,loop_2     mov P0,#0CH      ;xuat led xanh2 do 1 sang     mov R1,do_1     mov R2,xanh_2 loop_3:      mov R0,#0EFH     lcall chuyen_BCD again_3:       lcall xuat_led     cjne R0,#20,again_3     dec R1     djnz R2,loop_3     mov P0,#14H         ;vang2 sang     mov R2,vang loop_4:     mov R0,#0     lcall chuyen_BCD again_4:        lcall xuat_led     cjne R0,#20,again_4     dec R2     djnz R1,loop_4            ljmp start chuyen_BCD:      mov A,R1     mov B,#10     div AB     mov 50H,A     mov 51H,B                                                        mov A,R2     mov B,#10     div AB     mov 52H,A     mov 53H,B       xuat_led:     mov DPTR,#123H     mov A,50H     movc A,@A+DPTR     mov P2,A     mov P3,#01H     lcall delay     mov P3,#00H      mov A,51H     movc A,@A+DPTR     mov P2,A     mov P3,#02H     lcall delay     mov P3,#00H      mov A,52H     movC A,@A+DPTR     mov P1,A     mov P3,#04H     lcall delay     mov P3,#00H          mov A,53H     movc A,@A+DPTR     mov P1,A     mov P3,#08H     lcall delay     mov P3,#00H    delay:  mov R6,#100 lap:   djnz R6,lap         ret  org 123H DB  0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H end

Code C

Đối với code C dưới đây được viết với 2 Led 7 đoạn, cụ thể: Đèn đỏ sáng 20 giây, sau đó đèn xanh sáng 15 giây và cuối cùng đèn vàng sáng 5 giây.
Code c mạch đèn giao thông

Với các tính năng như vậy các bạn có thể linh hoạt thay đổi thời gian và có thể sửa đổi và thêm chức năng để ứng dụng vào đèn giao thông một cách dễ dàng.
#include"main.h" #include"..\lib\delay.h"  unsigned char code Code7Seg[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};  // Khai bao ket noi sbit DEN_DO = P0^0; sbit DEN_VANG = P0^1; sbit DEN_XANH = P0^2; #define LED_CHUC P2 #define LED_DVI  P3  void main() {  signed char i;   while(1)  {    // Den do   DEN_DO = 0;   // Bat den do   DEN_XANH = 1;   DEN_VANG = 1;   for(i=20;i>=0;i--)   {    LED_CHUC = Code7Seg[i/10];    LED_DVI = Code7Seg[i%10];     Delay_ms(1000);    }    // Den xanh   DEN_DO = 1;      DEN_XANH = 0;   DEN_VANG = 1;   for(i=15;i>=0;i--)   {    LED_CHUC = Code7Seg[i/10];    LED_DVI = Code7Seg[i%10];     Delay_ms(1000);    }    // Den vang   DEN_DO = 1;      DEN_XANH = 1;   DEN_VANG = 0;   for(i=5;i>=0;i--)   {    LED_CHUC = Code7Seg[i/10];    LED_DVI = Code7Seg[i%10];      Delay_ms(1000);   }  } }
 
 Nguồn:http://www.7segone.com/

Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

  HotLine: 0972 800 931 or 0938 838 404  Ms Duyên

 
 

Related Articles

Chat Zalo