资源简介
基于ATmega16单片机,利用单片机的定时器实现秒表功能。通过按键实现开始计时和复位功能。有PROTEUS7.5的原理图。

代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar const SEG7[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
uchar const ACT[8]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};
uchar num1=0num2=0flag;
//=========================
void delay_ms(uint k)//延时函数
{ uint ij;
for(i=0;i {
for(j=0;j<1140;j++);
}
}
//======================
void show(uint juint k)//数码管显示函数
{
PORTB=0xff;
PORTA=SEG7[j];
PORTB=ACT[k];
delay_ms(1);
}
//=======================
void show_mark(uint juint k)//数码管显示小数点函数
{
PORTB=0xff;
PORTA=SEG7[j]|0x80;
PORTB=ACT[k];
delay_ms(1);
}
//=========================
void port_init()//端口初始化函数
{
PORTA = 0x00;//段选
DDRA = 0xFF;
PORTB = 0xFF;//位选
DDRB = 0xFF;
DDRD=0x00;//开始和停止按键
PORTD=0xff;
}
//========================
void main()
{
uint ijk;
port_init();
TCCR1B=0X03;//64分频
TCNT1H=0Xcf;//100ms定时初值
TCNT1L=0X2c;
TIMSK|=BIT(2);
MCUCR=0x0a;
GICR=0xc0;
SREG|=BIT(7);
while(1)
{
show(num1/101);
show(num1%100);
show_mark(num2%102);
show(num2/103);
}
}
#pragma interrupt_handler miao:9//定时器1中断,计数
void miao()
{
uint i=0;
TCNT1H=0Xcf;//重装100ms定时初值
TCNT1L=0X2c;
if(flag==1)
{
do{
}while((++i)<10);
num1++;
if(num1>59){num1=0;num2++;}
if(num2>59){num2=0;}
}
}
#pragma interrupt_handler int1_isr:3//INT1中断,开始计数
void int1_isr(void)
{
flag=1;
}
#pragma interrupt_handler int0_isr:2//INT0中断,停止,回到0
void int0_isr(void)
{
flag=0;
num1=0;num2=0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 129806 2010-08-24 20:31 基于ATmega16单片机的定时器中断秒表\定时器显示时钟实验.DSN
文件 1730 2010-08-24 20:30 基于ATmega16单片机的定时器中断秒表\定时器显示秒表实验.c
目录 0 2010-09-02 17:51 基于ATmega16单片机的定时器中断秒表
----------- --------- ---------- ----- ----
131536 3
- 上一篇:FLASH30秒学生作品
- 下一篇:微信小程序仿淘宝图片轮播+视频播放
相关资源
- MCGS与单片机通信
- atmega16硬件产生方波的程序
- 一个mfc前端显示秒表
- ATmega16A DataSheet
- 自制AVR ATmega16 JTAG2008
- 两轮平衡车源程序,方能仪器,自平
- 数字式秒表设计vhdl
- basys3_VHDL_数字秒表
- ATmega16(L) 中文数据手册.pdf
- 基于FPGA的数字秒表设计
- 利用QUARTUS II软件 电子秒表设计
- stm32秒表程序
- 林夕依然ATmega16学习笔记 学习AVR
- 用VerilogHDL语言编写的基于FBGA的四位数
- 基于Verilog语言的电子秒表设计
- 微机课设电子数字秒表
- 基于arduino利用两个74hc595制作的16灯旋
- 数字秒表--EDA课程设计完整版(设计报
- 绝对好用秒表程序-protues+汇编源序程
- STM32F103C8T6定时器秒表TM1650显示.rar
- 按键计时器
- 基于Multisim的数字秒表设计
- CAD课设报告——秒表的设计
- 8255矩阵键盘
- 基于VHDL的简易数字秒表的设计
- 基于51单片机的数字秒表课程设计、毕
- 用51实现秒表功能
- 数字秒表--EDA课程设计完整版(设计报
- 基于Quartus的数字秒表设计
- ATMEGA16 PROTUES 热水器
评论
共有 条评论