交通信号灯调试程序
Posted dyw31
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交通信号灯调试程序相关的知识,希望对你有一定的参考价值。
一,以下内容需要的软件以及使用方法和操作方法请看我以前的博文。这里发下要使用到的proteus电路图
链接:https://pan.baidu.com/s/1W9vbEOxdCtdtd3VAaV1rkg 提取码:dxak
二,要交通灯的要求。
1,先东西南北红灯亮,1秒。
2,东西红灯亮,南北绿灯亮,10秒。
3,东西红灯闪,南北黄灯闪,3秒。
4,东西绿灯亮,南北红灯亮,10秒。
5,东西黄灯闪,南北绿灯亮,3秒。
三,开始
1,使用proteus软件打开交通灯的电路图(直接打开电路图即可),如下图所示(电路图第一步发了)
2.打开Keil uVision4开始写代码。
具体内容:详细操作请看我以前发布的博文
1,创建工程。
2,添加2个点C文件,一个点h文件。
3,将点C与点h文件加入到工程界面。
4,编写3个代码,2个点C,与一个点h文件。(如下图所示)
3,具体代码。
#include <reg52.h> #include "delay.h" sbit XD_R=P0^0; sbit XD_H=P0^1; sbit XD_L=P0^2; sbit BN_R=P0^3; sbit BN_H=P0^4; sbit BN_L=P0^5; void main() { unsigned char i=0; //东西南北路口红灯亮 XD_R = 0; BN_R = 0; delay1s(); while(1) { //东西红灯亮,南北绿灯亮延时10秒 XD_R = 0; BN_R = 1; BN_L = 0; delay10s(); for(i=0;i<3;i++) //东西红灯闪,南北黄灯闪,3秒延时 { XD_R = 0; BN_H = 0; BN_L = 1; delay1s(); XD_R = 1; BN_H = 1; delay1s(); } //东西绿灯亮,南北红灯亮,10秒延时 XD_R = 1; BN_H = 1; XD_L = 0; BN_R = 0; delay10s(); for(i=0;i<3;i++) //东西黄灯闪,南北红灯闪,3秒延时 { XD_L = 1; XD_H = 0; BN_R = 0; delay1s(); XD_H = 1; BN_R = 1; delay1s(); } } }
void delay1s(); void delay10s();
void delay1s() { unsigned char x = 0; unsigned char i; unsigned char y = 0; while(y < 3) { x = 0; while(x<250) { i = 0; while(i<250) { i++; } x++; } y++; } } void delay10s() { unsigned char x = 0; unsigned char i; unsigned char y = 0; while(y < 30) { x = 0; while(x<250) { i = 0; while(i<250) { i++; } x++; } y++; } }
四,最后运行程序,生成hex文件,将它添加进proteus交通灯电路图模拟即可。
以上是关于交通信号灯调试程序的主要内容,如果未能解决你的问题,请参考以下文章