首先介绍下元件

名称型号数量Proteus对应元件名称
51单片机STC90516RD1AT89C51
晶振12MHZ1CRYSTAL
电容30pf2CAP
电解电容10ufCAP-ELEC
按键BUTTON
LED发光二极管LED-YELLOW
电阻510ΩRES
电阻10KΩRES
单机三位开关1SW-ROT-3

在proteus中按照如图拼接电路

在keil中编写以下代码,(keil具体操作方式,请查看以前文章)

 //名称汽车转向
 #include<regx51.h>       
 sbit    LEDL1=P0^0;     //定义P0.0引脚名称为LEDL1,左前转向灯
 sbit    LEDL2=P0^1;     //定义P0.1引脚名称为LEDL1,左后转向灯
 sbit    LEDR1=P0^2;     //定义P0.2引脚名称为LEDL1,右前转向灯
 sbit    LEDR2=P0^3;     //定义P0.3引脚名称为LEDL1,右后转向灯
 sbit    S1=P1^0;		 //定义P1.0引脚名称为 S1 S1=0左转向灯闪烁
 sbit    S2=P1^1;		 //定义P1.1引脚名称为 S2 S2=0右转向灯闪烁


 void delay(unsigned int i)
 {
   while(i--);     
 }
 void main()            //主函数
 {
   while(1)             //无限循环
   {
    P1=0xff;
	LEDL1=S1;				 //读取S1引脚的控制状态并赋值给左转向灯LEDL1
	LEDL2=S1;				 //读取S1引脚的控制状态并赋值给左转向灯LEDL2
	LEDR1=S2;				 //读取S2引脚的控制状态并赋值给右转向灯LEDR1
	LEDR2=S2;				 //读取S2引脚的控制状态并赋值给右转向灯LEDR1
	delay(20000);			 //延时
	LEDL1=1;				 //将LEDL1引脚置1 熄灭LEDL1
	LEDL2=1;				 //将LEDL2引脚置1  熄灭LEDL2
	LEDR1=1;				 //将LEDR1引脚置1  熄灭LEDR1
	LEDR2=1;				  //将LEDR2引脚置1  熄灭LEDR2
	delay(20000);           //延时
   }
 }

编译完成没有出现错误的话,把生成的.hex文件放到proteus中的单片机中,进行仿真测试

有疑问可以在下面评论

相关文件下载地址
*该资源需回复评论后下载,马上去发表评论?
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

被岁月冰封的一簇火苗,等待理想把它融化、燃烧。