📄 timer1控制交通指示灯.c
字号:
//-----------------------------------------------------------------
// 名称: 定时器T1控制交通指示灯
//-----------------------------------------------------------------
// 说明: 东西向绿灯亮5秒后,黄灯闪烁,闪烁5次后亮红灯,
// 红灯亮后,南北向由红灯变为绿灯,5秒后南北向黄灯闪烁,
// 闪烁5次后亮红灯,东西向绿灯亮,如此往复.
// 本例将时间设得较短是为了调试的时候能较快的观察到运行效果.
//
//-----------------------------------------------------------------
#define F_CPU 4000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define RED_EW_ON() PORTC |= (1<<0); //东西向指示灯开
#define YELLOW_EW_ON() PORTC |= (1<<1);
#define GREEN_EW_ON() PORTC |= (1<<2);
#define RED_EW_OFF() PORTC &= ~(1<<0); //东西向指示灯关
#define YELLOW_EW_OFF() PORTC &= ~(1<<1);
#define GREEN_EW_OFF() PORTC &= ~(1<<2);
#define RED_SN_ON() PORTC |= (1<<3); //南北向指示灯开
#define YELLOW_SN_ON() PORTC |= (1<<4);
#define GREEN_SN_ON() PORTC |= (1<<5);
#define RED_SN_OFF() PORTC &= ~(1<<3); //南北向指示灯关
#define YELLOW_SN_OFF() PORTC &= ~(1<<4);
#define GREEN_SN_OFF() PORTC &= ~(1<<5);
#define YELLOW_EW_BLINK() PORTC ^= 0x02; //东西向黄灯闪烁
#define YELLOW_SN_BLINK() PORTC ^= 0x10; //南北向黄灯闪烁
#define BEEP() (PORTB ^= 0x01) //蜂鸣器
//延时倍数,闪烁次数,操作类型变量
INT8U Time_Count = 0, Flash_Count = 0, Operation_Type = 1;
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
int main()
{
}
//------------------------------------------------------------------
// 黄灯警报声音输出
//------------------------------------------------------------------
void Yellow_Light_Alarm()
{
}
//-----------------------------------------------------------------
// T1定时器溢出中断服务程序(控制交通指示灯切换显示)
//-----------------------------------------------------------------
ISR (....)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -