📄 ceju.txt
字号:
#include<iom128v.h>
#include<lcd.h>
#pragma interrupt_handler recive:2
#pragma interrupt_handler ovf:15
unsigned char k=0;
unsigned long int time;
unsigned char o;
unsigned char i;
void _delay(unsigned long int a) //延时程序
{
unsigned int x;
unsigned int y;
for(x=0;x<a;x++)
for(y=0;y<100;y++);
}
void Time1_init(void) //定时器T1初始化,普通计数模式
{
TIMSK=0X04;
EICRA|=0X03;
}
void send(unsigned long int b) //显示程序
{
unsigned int m;
unsigned int n;
for(m=0;m<20;m++)
{
for(n=0;n<22;n++);
PORTB=~PORTB;
}
TCCR1B|=0X01; //定时器T1开始计时
}
void ovf(void)
{
o++;
}
void print(unsigned char x,unsigned char y,unsigned int shuju)
//把五位数据转换成字符显示两位小数
{
unsigned char d[6]={48,48,48,48,48,0};
unsigned char j;
for(j=5;j>0;j--)
{
d[j-1]=shuju%10+48;
shuju/=10;
}
lcd_putse(x,y,d);
lcd_putss(x,y,d[0]);
lcd_putss(++x,y,d[1]);
lcd_putss(++x,y,d[2]);
//lcd_putss(++x,y,46);
lcd_putss(++x,y,d[3]);
lcd_putss(++x,y,d[4]);
}
void recive(void)
{
EIMSK=0X00;
TCCR1B|=0X00;
TCCR1B=0X00; //关闭定时器
time=TCNT1H*256+TCNT1L;
lcd_clear();
lcd_putsc(0,0,"计数值");
print(8,8,time);
lcd_putsc(0,1,"溢出");
print(8,24,o);
k++;
lcd_putsc(0,2,"中断");
print(8,40,k);
_delay(1000);
EIMSK=0X01;
}
void main(void)
{
SREG|=0X80;
EIMSK|=0X01;
DDRB=0XFF;
PORTB=0X00;
lcd_init();
lcd_clear();
Time1_init();
send(1);
lcd_putsc(0,0,"计数值");
lcd_putsc(0,1,"溢出");
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -