| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 51单片机模拟交通信号灯控制系统设计 -> 正文阅读 |
|
[嵌入式]51单片机模拟交通信号灯控制系统设计 |
51单片机模拟交通信号灯控制系统设计 设计要求: 1.用LED灯模拟十字路口交通灯控制 2.正常情况下双方向轮流通行 3.特殊情况时,A方向通行 4.紧急情况时,A和B方向都不通行 本任务涉及定时控制东、南、西、北四个方向上的12盏交通信号灯,且出现特殊和紧急情况时,能及时调整交通灯的指示状态。 采用12个LED发光二极管模拟红、黄、绿交通灯,用单片机的P1口控制发光二极管的亮灭状态;而单片机的P1口只有8个控制端,如何控制12个二极管的亮灭呢? 观察LED状态表,可以发现,在不考虑左转弯行驶车辆的情况下,东、西两个方向的信号灯显示状态是一样的,所以,对应两个方向上的6个发光二极管只用P1口的3根I/O端口线控制即可。同理,南、北方向上的6个发光二极管可用P1口的另外3根I/O端口线控制。 当I/O端口线输出高电平时,对应的交通灯熄灭;反之,当I/O端口线输出低电平时,对应的交通灯点亮。
?实验原理图如下:
实验程序如下:
?注意事项:
问题1、定时器延时时间不准确比正常时间更快。for(t0=0;t0<2;t0++) 问题2、外部中断0的中断函数int_0 ()结束后,返回值出现误差。 问题3、紧急情况不能打断特殊情况中断
问题1、最后发现是定时器延时函数delay0_5s1的程序设置错误, for(t0=0;t0<10;t0++) ,中间误差0.4秒时间。 问题2、原因在于int_0 ()函数中在写保护及恢复数据时没有对中断进行 关闭及打开导致,可能程序在写保护的时候就被紧急情况中断了,导致 写保护没能全部完成。加上EA总中断开关即可。 问题3、该问题分很多原因,原程序出现该问题在于没有对外部中断进行, 中断优先级设置,只需要在main主函数里面的加上: PX0 = 1; ?//外部中断0中断优先级高 PX1 = 0; ?//外部中断1中断优先级低于外部中断0 还有一种更高级的带数码管显示倒计时时间的交通灯,但我的实验要求作业是这样所以没写那个,需要的可以关注私信,我写一下。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 16:41:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |