📄 timer1与timer2控制十字路口秒计时显示屏.c
字号:
//-----------------------------------------------------------------
// 名称: TIMER1与TIMER2控制十字路口秒计时显示屏
//-----------------------------------------------------------------
// 说明: 本例运行时,东西向蓝色数码管与南北向红色数码管同步倒计时,
// 若干秒后交换,如此往复.
// 本例使用的两个定时器中,T1定时器负责递减秒数及切换方向,
// T2定时器负责刷新显示数码管.
//
//-----------------------------------------------------------------
#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 BEEP() (PORTB ^= 0x01)
//设置最大秒数为12秒,每12秒将切换通行方向
//这里为了能尽快观察到运行效果而将该值设得较小
#define MAX_SECOND 12
//通行方向类型(东西/南北)
//0-9的数码管段码
const INT8U SEG_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//当前剩余秒数(两位)及秒显示缓冲
int Remain_Second;
INT8U Second_Display_Buffer[] = {0,0};
//-----------------------------------------------------------------
// 根据剩余秒数Remain_Second刷新秒显示缓冲
//-----------------------------------------------------------------
void Refresh_Second_Display_Buffer()
{
}
//-----------------------------------------------------------------
// 警报声输出函数
//-----------------------------------------------------------------
void Alarm()
{
}
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
int main()
{
}
//-----------------------------------------------------------------
// T1定时器溢出中断程序,控制倒计时
//-----------------------------------------------------------------
ISR (....)
{
}
//-----------------------------------------------------------------
// T2定时器溢出中断程序,控制数码管扫描显示
//-----------------------------------------------------------------
ISR (....)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -