[PIC®/AVR®/dsPIC®产品] 分享一个简单的交通信号灯演示代码

[复制链接]
1907|9
 楼主| 幸福小强 发表于 2025-5-29 15:54 | 显示全部楼层 |阅读模式
  1. /*
  2. * File:   traffic light.c
  3. * Author: hana
  4. *
  5. * Created on 1 December, 2024, 8:45 AM
  6. */


  7. #include <xc.h>

  8. void main(void)
  9. {
  10.     long int i;
  11.     while (1)
  12. {
  13.         TRISC = 0x00;
  14.       
  15.         LATC = 0x01; //1=high
  16.         for (i = 0; i < 100000; i++);
  17.         LATC =0X00;
  18.         
  19.         LATC = 0x02;
  20.         for (i = 0; i < 100000; i++);
  21.         LATC =0X00;
  22.          
  23.         LATC = 0x04;
  24.         for (i = 0; i < 100000; i++);  
  25.         LATC =0X00;
  26.         
  27.         TRISA = 0X00;
  28.         LATA = 0x01; //1=high
  29.         for (i = 0; i < 100000; i++);
  30.         LATA =0X00;
  31.         
  32.         LATA = 0x02;
  33.         for (i = 0; i < 100000; i++);
  34.         LATA =0X00;
  35.         
  36.         LATA = 0x04;
  37.         for (i = 0; i < 100000; i++);  
  38.         LATA =0X00;
  39.         
  40. }        
  41.     return;
  42. }
入门学习必备。就是类似流水灯一样的控制。
玛尼玛尼哄 发表于 2025-5-29 16:01 | 显示全部楼层
IO寄存器控制的学习入门资料。
小明的同学 发表于 2025-5-29 18:49 | 显示全部楼层
就是来回切不同的IO点亮啊。
wanduzi 发表于 2025-5-29 21:56 | 显示全部楼层
学会IO操作,可以解决大部分问题。
彩虹捕手 发表于 2025-6-3 15:04 | 显示全部楼层
这个代码看起来是用于微控制器的,通过控制不同的端口输出来模拟交通信号灯的变化。
时光贩卖机 发表于 2025-6-3 19:23 | 显示全部楼层
这个代码看起来是用于控制交通信号灯的,通过改变端口的高低电平来模拟红黄绿灯的变化。
世纪女孩 发表于 2025-11-18 15:08 | 显示全部楼层
以 51 单片机为例:定义红、黄、绿 LED 引脚,初始化为准双向口。主循环中,先置红亮、黄绿灯灭,延时 5 秒;再红灭、黄亮,延时 1 秒;最后黄灭、绿亮,延时 3 秒,循环往复。用延时函数控制切换时间,通过高低电平控制 LED 亮灭,代码简洁直观。
我趴在云边 发表于 2025-11-25 16:17 | 显示全部楼层
以下是基于 51 单片机的交通信号灯演示代码(核心逻辑):
#include<reg51.h>sbit Red=P1^0; sbit Yellow=P1^1; sbit Green=P1^2;void delay (unsigned int t){while (t--);}void main (){while (1){Green=0; Red=1; delay (50000); // 绿灯亮Green=1; Yellow=0; delay (10000); // 黄灯亮Yellow=1; Red=0; delay (50000); // 红灯亮
kongrong 发表于 2025-11-26 08:51 | 显示全部楼层
一个操作系统,可以支持 8 位机,可以看看我的开源项目 https://gitee.com/kongrong77/Chaos-nano,对于简化逻辑有一定的帮助。
与人间浪漫 发表于 2025-11-30 15:15 | 显示全部楼层
以 51 单片机为例(P1 口控制三色灯):定义 P1.0 = 红、P1.1 = 黄、P1.2 = 绿,编写延时函数(如 1 秒)。主函数循环:红灯亮 5 秒→黄灯闪 3 次(每次 0.5 秒)→绿灯亮 5 秒→黄灯闪 3 次,循环往复。代码核心是 IO 口电平翻转与延时控制,通过简单时序模拟交通灯切换逻辑,无需复杂外设,直接烧录即可演示。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

2130

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部
0