文章目录

  • 交通灯控制系统
    • 一、生成.hex文件
    • 二、在Proteus中进行仿真
      • 1、Proteus新建工程步骤
      • 2、交通灯仿真测试

交通灯控制系统

目的:设计一个十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两位的数码管显示剩余的时间。

一、生成.hex文件

1、打开keil5软件,新建工程
2、芯片选择“AT89C51”,点击“OK”进入下一步3、新建程序文件,输入代码
代码如下

#include "reg51.h"
sbit hr=P1^0;
sbit hy=P1^1;
sbit hg=P1^2;
sbit sr=P1^3;
sbit sy=P1^4;
sbit sg=P1^5;
sbit h1=P2^0;
sbit h2=P2^1;
sbit s1=P2^2;
sbit s2=P2^3;
int count=0;
int time=0;
int num[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(int t)
{int x,y;
for(x=0;x<t;x++)
{for(y=0;y<100;y++);
}
}
void main()
{
P1=0xff;
hg=0;sr=0;P2=0x00;
TMOD=0x01;
TL0=0x3C;TH0=0xB0;
ET0=1;EA=1;TR0=1;while(1){if(time<30){h1=1;P0=num[((30-time)/10)];delay(10);h1=0;h2=1;P0=num[((30-time)%10)];delay(10);h2=0;s1=1;P0=num[((33-time)/10)];delay(10);s1=0;s2=1;P0=num[((33-time)%10)];delay(10);s2=0;}else if(time<33){h1=1;P0=num[((33-time)/10)];delay(10);h1=0;h2=1;P0=num[((33-time)%10)];delay(10);h2=0;s1=1;P0=num[((33-time)/10)];delay(10);s1=0;s2=1;P0=num[((33-time)%10)];delay(10);s2=0;}else if(time<63){h1=1;P0=num[((66-time)/10)];delay(10);h1=0;h2=1;P0=num[((66-time)%10)];delay(10);h2=0;s1=1;P0=num[((63-time)/10)];delay(10);s1=0;s2=1;P0=num[((63-time)%10)];delay(10);s2=0;}else if(time<66){h1=1;P0=num[((66-time)/10)];delay(10);h1=0;h2=1;P0=num[((66-time)%10)];delay(10);h2=0;s1=1;P0=num[((66-time)/10)];delay(10);s1=0;s2=1;P0=num[((66-time)%10)];delay(10);s2=0; }}
}
void timer() interrupt 1
{TH0=0x3C;TL0=0xB0;count=count+1;if(count==20){count=0;time=time+1;if(time==30){P1=0xff;hy=0;sr=0;}else if(time==33){P1=0xff;hr=0;sg=0;}else if(time==63){P1=0xff;hr=0;sy=0;}else if(time==66){time=0;P1=0xff;hg=0;sr=0;  }}
}

4、设置参数,选中“Output”,勾选“Creat HEX File”,点击“OK”退出界面(为了生成.hex文件)
5、编译程序
6、生成.hex文件

二、在Proteus中进行仿真

1、Proteus新建工程步骤

(1)、点击“File”,选择新建工程(2)、选择保存路径并命名
(3)、依次作如下设置


至此,工程建立完成。

2、交通灯仿真测试

(1)、选择所需元件并连接好电路图
(点击P添加电路元件)

(2)、双击51单片机,点击下图红框处,添加步骤1中的.hex文件到单片机
(3)、运行电路,进行仿真测试,仿真结果如下


基于Proteus的51单片机程序设计及仿真(交通灯控制系统)相关推荐

  1. c++程序设计_基于proteus的51单片机开发实例30-模块化程序设计

    1. 基于proteus的51单片机开发实例30-模块化程序设计 1.1. 实验目的 模块化程序设计 不知不觉我们的51单片机开发实例已经进行到第三十篇了,是时候进行一个总结和反思了,总结什么?反思什 ...

  2. hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下

    1. 基于proteus的51单片机开发实例(13)-LED指示那个按键被按下 1.1. 实验目的 本实例将实现两路外部中断的检测和识别,让我们能够更好地理解51单片机的外部中断以及中断优先级的概念. ...

  3. c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...

    1. 基于proteus的51单片机开发实例(14)中断嵌套和中断优先级 1.1. 实验目的 在前面实例中我们已经学习了51单片机的定时器/计数器中断,外部中断,通过这些实例,知道了中断电路的设计,中 ...

  4. hc05与单片机连接图_基于proteus的51单片机开发实例37-DAC0832

    学习手记 1. 基于proteus的51单片机开发实例37-DAC0832 1.1. 实验目的 之前我们学习了数模转换芯片DAC0808,今天我们继续学习另一种D/A转换芯片DAC0832. 1.2. ...

  5. 基于proteus的51单片机仿真实例二、关于proteus

    一.proteus的使用 proteus软件能对单片机系统同时进行软件和硬件仿真.是初学单片机而又没有硬件工具的一个很好的选择. 后面的学习将以protwus 7.4中文版为学习平台. 1.软件的下载 ...

  6. c51倒计时程序汇编语言,51单片机汇编程序:倒计时交通灯

    一个51单片机汇编语言的程序,要求就是红灯25秒,绿灯20秒,黄灯闪烁5秒. 很简单的要求,用下图电路即可实现: 全部程序如下: ;倒计时交通灯 ;四位共阳数码管 ;P0 接段码 ;P2.0123 接 ...

  7. 单片机交通灯数码管c语言程序,51单片机C语言实现交通灯(红绿灯)源程序.doc

    51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /*1.程序目的:使用定 ...

  8. proteus矩阵按键计算机,基于proteus的51单片机仿真实例八十二、4X4矩阵键盘应用实例...

    1.矩阵键盘的工作原理: 1)接口电路:在单片机系统中,当按键数量较多时,为了减少IO口的使用,通常将按键排列成矩阵型式,例如本例中的16个按键,被排列成了如下图所示的4X4矩阵方式.即由4根行线和4 ...

  9. 基于proteus的51单片机仿真实例七十六、8-3编码芯片74HC148应用实例

    1.本例使用8-3编码芯片74HC148实现外部中断扩展,可以实现对8路外部中断信号按优先级进行处理 2.74HC148是带优先级的编码芯片,对于外部的8根数据输入线,只要有一根或者几根被置0,编码芯 ...

  10. 基于proteus的51单片机仿真实例七十二、并口转串口器件74HC165应用实例(续)

    1.本例使用单片机的串口,使串口工作于移位寄存器模式,165的串行输出端口连接到单片机的串行数据输入端,单片机的串行数据发送端负责发送移位时钟脉冲,与165的CLK引脚相连.学要注意的是SH/LD引脚 ...

最新文章

  1. 对于百川SDK签名验证的问题
  2. ddr读时序波形_测试新体验|如何解决DDR内存系统测试难题?
  3. 模式主节点ORACLE DG介绍(物理无实例)
  4. 批处理框架 Spring Batch,数据迁移量过大如何保证内存?
  5. 爱立信两大股东不满股价表现 欲撤换CEO卫翰思
  6. python利用Tesseract识别验证码
  7. phpwind8.7升级9.0.1过程(三)20130107升级到20130227
  8. jmp怎么做合并的箱线图_基于JMP 15的箱线图(Box Plot)的着色
  9. flac文件如何转换成mp3
  10. 学好英语网html首页制作,首页英语
  11. 爱自己,实现财务自由
  12. 较好用的待办清单软件有哪些 电脑待办清单事项管理便签下载
  13. db2还原备份文件详细教程
  14. PLDA宣布XpressLINK-SOC™ CXL控制器IP支持AMBA CXS Issue B协议
  15. 学习记录:安装binwalk
  16. ACM信息学竞赛算法总结
  17. FPGA系统性学习笔记连载_Day8【4位乘法器、4位除法器设计】 【原理及verilog实现、仿真】篇
  18. 小正数,避免极小截断误差
  19. 【程序人生】:腾讯的职级系统
  20. Cocos2d-x利用xxtea进行图片资源加密

热门文章

  1. 准确率(Accuracy) 精确率(Precision) 召回率(Recall)和F1-Measure(精确率和召回率的调和平均值)
  2. C++ 中cin的输入原理及字符串(string、char[])输入问题
  3. Charles 4.2.7 for Mac 中文破解版
  4. c语言链栈案例,C语言链栈
  5. 图书馆图书借阅登记微信小程序管理软件系统开发制作
  6. Linux安装SSH
  7. 烽火通信力推SDN技术在网络中实现
  8. Spring学习的书-夏昕(2)
  9. vue热敏打印机_方振起技术手记 - vue 使用打印机打印数据 print-js
  10. MATLAB websave批量下载(URL)