📄 可编程外围定时计数器8253应用.c
字号:
//-----------------------------------------------------------------
// 名称: 可编程外围定时计数器8253应用
//-----------------------------------------------------------------
// 说明: 本例运行时,按下8255 PC端口按键K1可启动8253定时器0,定时器0
// 工作于方式5,程序给8253提供随机的定时初值,定时到达后GATE0
// 触发INT0中断,中断程序输出提示音,并重置定时器.
//
//-----------------------------------------------------------------
#define F_CPU 2000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#define INT8U unsigned char
#define INT16U unsigned int
//8255 PA,PB,PC端口及命令端口地址定义
//(定义前面加*可使得后面使用时不用再加*)
//8253 定时/计数器0及命令端口地址定义
//8253 定时/计数器0/1的门控制位操作定义
//蜂鸣器定义
#define BEEP() PORTB ^= _BV(PB0)
//0-9的共阳数码管段码表,最后一位为黑屏
const INT8U SEG_CODE[] =
{ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF };
//待显示信息缓冲
INT8U Disp_Buffer[8] = {0,0,0,0,0,0,0,0};
//上次按键状态
INT8U Pre_Key_State = 0x00;
//对TCO设置的定时计数初值
volatile INT16U TC0_Count = 510;
//-----------------------------------------------------------------
// 输出提示音
//-----------------------------------------------------------------
void Sounder()
{
}
//-----------------------------------------------------------------
// 设置8253 TC0定时初值
//-----------------------------------------------------------------
void Set_8253_TC0()
{
}
//-----------------------------------------------------------------
// 8255 PC端口按键处理
//-----------------------------------------------------------------
void Key_Process()
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
}
//-----------------------------------------------------------------
// INT0中断子程序
//-----------------------------------------------------------------
ISR (INT0_vect)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -