目录

  • 基于STC89C51的交通信号灯控制程序
    • 关于STC89C516
    • 程序设计思路
    • 源程序
    • 最终效果

基于STC89C51的交通信号灯控制程序

这两天手边能钻研的只有一套普中仪器的51开发仪,就根据开发仪上有的电子元件实现了一个交通信号灯拟真。

关于STC89C516

有关这颗芯片的资料并不是特别多,总的来说这颗芯片算是低配版本的STC89C52,DIP-40封装,程序区仅有4KB,不适合大型程序。
芯片引脚图:

在本个实验中需要用到GPIO-P0口(作为数码管显示信号)、P1口(作为LED控制信号)、P2口低三位(联合74LS138作为数码管控制信号)。

程序设计思路

因为动态数码管显示控制需要刷新,故在主程序里面需要实现数码管的刷新;同时参考到现实情况绿灯在最后时间内会闪烁提示,故而在程序实现中采用了分段循环的设计。

源程序

在另外一台电脑上,后续几天更新。

#include <reg52.h>typedef unsigned int  u16;
typedef unsigned char u8;u8 code CHARSET[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void __delay_kicks(u16 kick){while(kick--);return;
}int main(void){u16 count = 0;u16 count2 = 19;u16 i,c0;u8 c1,c2,c3,step;step = 0;while(1){c1 = count % 10;c2 = count / 10;c2 = c2 % 10;c3 = count / 100;c3 = c3 % 10;for (i = 0; i < 50; i++){c0 = i / 10;P2 = 0x07;P0 = CHARSET[c0];__delay_kicks(195);P2 = 0x06;P0 = CHARSET[c1] + 0x80;__delay_kicks(195);P2 = 0x05;P0 = CHARSET[c2];__delay_kicks(195);P2 = 0x04;P0 = CHARSET[c3];__delay_kicks(195);P2 = 0x03;if (count2 <= 9){P0 = CHARSET[count2];}else{P0 = 0x40;}__delay_kicks(195);}  count++;count2--;if(count2 <= 0){if(step == 0){step = 1;count2 = 25;}else if(step == 1){step = 2;count2 = 3;}else if(step == 2){step = 0;count2 = 19;}}if(step == 0 && count2 > 3){P1 = ~(0x30);}else if(step == 0 && count2 <= 3){P1 = ~(0x50);}else if(step == 1){P1 = ~(0x84);}else if(step == 2){P1 = ~(0x88);}for (i = 50; i < 100; i++){c0 = i / 10;P2 = 0x07;P0 = CHARSET[c0];__delay_kicks(195);P2 = 0x06;P0 = CHARSET[c1] + 0x80;__delay_kicks(195);P2 = 0x05;P0 = CHARSET[c2];__delay_kicks(195);P2 = 0x04;P0 = CHARSET[c3];__delay_kicks(195);P2 = 0x03;if (count2 <= 9){P0 = CHARSET[count2];}else{P0 = 0x40;}__delay_kicks(195);}if(step == 0 && count2 > 9){P1 = ~(0x30);}else if(step == 0 && count2 > 3){P1 = ~(0x10);}else if(step == 0 && count2 <= 3){P1 = ~(0x50);}else if(step == 1 && count2 > 5){P1 = ~(0x84);}else if(step == 1 && count2 <= 5){P1 = ~(0x80);             }else if(step == 2){P1 = ~(0x88);}}
}

最终效果

视频:

21013101-基于STC89C516的交通信号灯拟真

腾讯微云-红绿灯展示
视频下载(如果上面那个链接失效请选择这个):腾讯微云

基于STC89C51的交通信号灯控制程序相关推荐

  1. 基于MATLAB图像处理交通信号灯识别

    基于MATLAB图像处理交通信号灯识别 摘 要:交通信号灯是智能车辆在城市环境中行驶的主要指示信号,在城市交通安全中发挥了不可或缺的作用.交通信号灯通常设在交叉口,能够供应智能车辆的方位信息,查看和辨 ...

  2. java交通信号灯毕业论文范文_信号灯设计论文,关于基于FPGA的交通信号灯控制系统设计相关参考文献资料-免费论文范文...

    导读:本文关于信号灯设计论文范文,可以做为相关参考文献. 文/ 胡桂戎 陕西警官职业学院 陕西 西安 710021 [摘 要]本文采用FPGA 设计,结合了道路传感器,设计了交通信号灯全感应自适应的控 ...

  3. 基于单片机的交通信号灯控制

    目录 一.方案流程及技术规格书设计 二.系统硬件电路设计 三.系统软件设计 四.系统调试测试与分析 前言        伴随着越来越多的家用小轿车的出现,道路安全问题也越来越被人们重视,当今,红绿灯也 ...

  4. 基于FPGA的交通信号灯设计

    1.1 设计目的 1.2 设计任务 1.模拟十字路口交通信号灯的工作过程,利用交通信号灯上的两组红,黄,绿LED发光二极管作为交通信号灯,设计一个交通信号灯控制器. 2.模拟两条公路,一条交通主干道, ...

  5. 基于单片机的交通信号灯系统设计(#0405)

    十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统. 功能描述 1.采用51单片机作为主控单元: 2.采用74HC245芯片驱动数 ...

  6. 基于matlab的交通信号模糊控制系统设计

    目录 1.系统效果图 2.研究对象 3.不定相序模糊控制 4.模糊控制器设计思路 5.系统开发环境配置 6.相序优化模块 7.绿灯延时模块 8.修正模块 9.系统GUI界面设计 1.系统效果图   一 ...

  7. 用c语言交通信号灯论文,plc交通信号灯毕业论文.doc

    毕业论文(设计) 题 目: 基于plc的交通信号灯模拟控制系统的设计 系 别: 装备制造系 专 业: 机电一体化技术 学生姓名: 王伟杰 学 号: 年级: 2013级 指导教师: 田淑娟 职称: 讲师 ...

  8. 基于Arduino的多功能智能交通信号灯的设计与实现 ---------对盲人语音播报,红灯结束时铃声提醒,信号灯倒计时和闯红灯语音劝阻

    ** 基于Arduino的多功能智能交通信号灯的设计与实现 ---------对盲人语音播报,红灯结束时铃声提醒,信号灯倒计时和闯红灯语音劝阻 ** 魏树鸿, 1.系统设计思路 a.: 满足基本信号灯 ...

  9. 基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)

    基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J013 目录标题 基于51单片机十字路口 ...

最新文章

  1. 寻找连通域算法_【车牌识别算法】
  2. JavaScript库和API
  3. RabbitMQ启动参数具体含义
  4. 完全用Linux工作,抛弃windows
  5. libxml2中文支持
  6. 如何处理postman Self-signed SSL certificate blocked错误
  7. Android的MVC框架
  8. 清华2020计算机系张晨,2020清华特奖入围名单公布:电子系学霸两篇顶会一作
  9. System memory,AGP memory和video memory
  10. python 爬虫性能_Python 爬虫性能相关总结
  11. 你如何在PowerShell中注释掉代码?
  12. 美食博主整本菜譜全記錄
  13. 卷积神经网络CNN原理以及TensorFlow实现
  14. 西门子系列PLC教学视频资源3——S7-1500博图
  15. html制作古诗念奴娇,《念奴娇·赤壁怀古》_苏轼的诗词_诗词名句网
  16. 公众号开发定时群发php,微信公众平台新增定时群发功能(新功能)
  17. scikit-learn的高级介绍
  18. 探索反汇编-在Linux环境下
  19. Apache Atlas 数据血缘
  20. 核高基项目应该支持谁?

热门文章

  1. win10推送_升级!win10 2020年5月更新已正式发布,你还没有收到官方推送?
  2. 运维小知识之CDN内容分发网络原理解析
  3. 【Python错误】Simplify chained comparison
  4. baxter仿真操作简单命令
  5. 合泰杯 | 合泰单片机入门 定时器详解(三)
  6. 滑稽树下你和我Average distance(树形dp求任意两点距离之和)
  7. 2018年程序员涨薪必备——24本经典纸质书
  8. MapReduce统计部门员工组别,并排序
  9. 八本最佳管理书籍,你读过几本?
  10. Sphinx 0.9.9/Coreseek 3.2 参考手册