初级会员

- 积分
- 75
- 金钱
- 75
- 注册时间
- 2014-12-13
- 在线时间
- 0 小时
|
5金钱
#include<iom128v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar table1[]={0,0,0,0,0};
uchar temp=0x00;
uchar i=5;
//---------------
void display()//显示程序
{
table1[0]=temp/1000;
table1[1]=temp%1000/100;
table1[2]=temp%1000%100/10;
table1[3]=temp%1000%100%10;
table1[4]=i%10;
PORTA=table[table1[0]];
PORTB=0xfe;
delay(10);
PORTA=table[table1[1]];
PORTB=0xfd;
delay(10);
PORTA=table[table1[2]];
PORTB=0xfb;
delay(10);
PORTA=table[table1[3]];
PORTB=0xf7;
delay(10);
PORTA=table[table1[4]];
PORTB=0x7f;
delay(10);
}
//--------------------
void delay(uint ms)
{
uint m,n;
for(m=ms;m>0;m--)
for(n=1141;n>0;n--);
}
void port_init()
{
PORTA=0xff;
DDRA=0xff;
PORTB=0xff;
DDRB=0xff;
PORTE=0x00;
DDRE=0x20;
PORTD=0x00;
DDRD=0x00;
}
void USART0_init()
{
UCSR0B=0x00;
UCSR0A=0x00;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x05;
UCSR0B=0x48;
}
void USART1_init()
{
UCSR0B=0x00;
UCSR0A=0x00;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x05;
UCSR0B=0x90;
}
void putchar(uchar data)
{
while(!(UCSR0A&(1<<UDRE0)));
UDR0=data;
}
#pragma interrupt_handler USART0_T:21
void USART0_T()
{
putchar(++i);
delay(500);
}
#pragma interrupt_handler USART1_R:31
void USART1_R()
{
temp=UDR1;
}
void devices()
{
CLI();
port_init();
USART0_init();
USART1_init();
SEI();
}
void main()
{
devices();
while(1)
{
display();
}
}
|
|