【实验内容】
1.在最小系统的基础上,设计一个十字路口交通灯,每个方向红黄绿三色灯。
2.编写相关程序,按照交通灯的实际运行机制运行。
3.增加电路所用元器件参考:
LED-RED、LED-YELLOW、LED-GREEN
C51和普通C在数据类型定义上有什么区别?
C51中的数据类型与标准C的数据类型也有的区别,在C51中还增加了几种针对51单片机特有的数据类型;C51变量的存储模式与标准C中变量的存储模式不一样,C51中变量的存储模式是与MCS-51单片机的存储器紧密相关;5.2 Keil C51的数据类型;
signed char 最高位为符号位,“0”表示正数,“1”表示负数。补码表示,所能表示的数值范围是-128~+127。
unsigned char 它用于定义无符号字节数据或字符,可以存放一个字节的无符号数,其取值范围为0~255。默认为signed char。二者长度占用一个字节,用于存放一个单字节的数据。
singed int:用于存放两字节带符号数,补码表示,数的范畴为-32768~+32767;
unsigned int:用于存放两字节无符号数,数的范围为0~65535。默认为signed int。它们的长度均为两个字节,用于存放一个双字节数据。
singed long:用于存放四字节带带符号数,补码表示,数的范围为: 147483648~+2147483647。
unsigned long:用于存放四字节无符号数,数的范围为 0~4294967295。它们的长度均为四个字节,用于存放一个四字节数据。
#include<reg52.h>
sbit P03 = P0^3;
sbit P01 = P0^1;
sbit P00 = P0^0;
sbit P10 = P1^0;//左绿
sbit P11 = P1^1;//红
sbit P12 = P1^2;//黄
void delay(unsigned int z){
unsigned int x,y;
for(x=0;x<z;x++)
for(y=0;y<200;y++);
}
void main(){
int i;
P00 = 0;
P01 = 0;
P11 = 0;
P12 = 0;
while(1){
for(i =0;i<4;i++){
P03 = 1;
P10 = 1;
delay(500);
}
for(i=0;i<3;i++){
P03 = 1;
P10 = 1;
delay(300);
P03 =0;
P10 = 0;
delay(300);
}
P10 = 0;
P03 = 0;
//yellow
P01 = 1;
P12 = 1;
delay(1000);
P01 = 0;
P12 = 0;
delay(100);
P10 = 0;
P03 = 0;
for(i =0;i<4;i++){
P00 = 1;
P11 = 1;
delay(500);
}
for(i = 0;i<3;i++){
P00 = 1;
P11 = 1;
delay(300);
P11 = 0;
P00 = 0;
delay(300);
}
P10 = 0;
P03 = 0;
P01 = 1;
P12 = 1;
delay(1000);
P01 = 0;
P12 = 0;
delay(100);
}
}