十字路口交通灯控制设计

发布时间 : 星期一 文章十字路口交通灯控制设计更新完毕开始阅读

黄绿各4个)。

三 单元模块设计

到了8255的片子作为核心控制部分。

1 各单元模块功能简介及电路设计

了8255和8155的片子作为核心控制部分。

本设计中采用硬件定时器完成交通灯转换间的延时控制。

功能,在本设计中数码管显示从30到0的倒计时。设计电路时用到

交通灯转换间的延时可用两种方法实现。一种是软件延时,另

件计时要给定一定的数进行循环并由计时软件完成时间的换算,故在

一种是硬件定时器实现。其中硬件实现计时十分准确,这个不同于软

3 系统硬件电路的设计

2 电路参数的计算及元器件的选择

(2)数码管显示倒计时:主要完成红灯转换到绿灯间的倒计时

(1)延时:主要完成交通灯转换间的时间控制,设计电路时用

(3)交通灯:用12个二极管的亮灭表示交通灯的变换闪烁(红

四 系统软件系统的设计

#include #include

#define K8255 XBYTE[0xFF2B] #define C8255 XBYTE[0xFF2A] #define B8255 XBYTE[0xFF29] #define A8155 XBYTE[0XFF21] #define B8155 XBYTE[0XFF22] #define C8155 XBYTE[0XFF23] #define K8155 XBYTE[0XFF20] unsigned int i,j,k,l; unsigned int m,cnt=0; unsigned char code

tal[]={0x40,0x10,0x00,0x78,0x02,0x12,0x19,0x30,0x24,0x79};

unsigned char code tal1[]={0x30,0x24,0x79,0x40}; void delay(unsigned int n); void main() {

SP=0x50; K8255=0x80; TMOD=0x01;

TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1;ET0=1; while(1) {

C8255=0x61; B8255=0x08; cnt=0; j=0;k=0;TR0=1; while(1) {

A8155=0X01;

B8155=tal[j]; l=150;while(l--); A8155=0x02;

B8155=tal1[k]; l=150;while(l--); A8155=0X10;

B8155=tal[j]; l=150;while(l--); A8155=0x20;

B8155=tal1[k]; l=50;while(l--); if(cnt==10) {

cnt=0;j++; if(j==1) k++;

if(j>9) j=0;

if(k==4) //{k=0;j=0;} break; } } TR0=0; for(k=0;k<5;k++) {

C8255=0x51; B8255=0x04; delay(100); C8255=0x41; B8255=0x00; delay(100); }

delay(100); C8255=0x0C; B8255=0x03; j=0;k=0;TR0=1; while(1) {

联系合同范文客服:xxxxx#qq.com(#替换为@)