Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void key_scan(void)
- {
- if((PINB&0x3F)!=0x3F)
- {
- if((PINB&0x3F)!=0x3F)
- {
- delay_ms(20);
- switch(PINB)
- {
- case 0X3E:
- timer0_open();
- break;//S1
- case 0X3B:
- timer0_close();
- switch(btn2_count)
- {
- case 1:btn2_1();break;
- case 2:btn2_2();break;
- case 3:
- delay_ms(1000);
- timer2_open();
- btn2_count= 1;
- break;
- }
- break;//S2
- case 0X37:
- timer2_open();
- break;//S6
- default:break;
- }
- delay_ms(1);
- }
- }
- }
- #pragma interrupt_handler timer0_ovf_isr:10
- void timer0_ovf_isr(void)
- {
- TCNT0 = 0X05;
- data++;
- if(data == 50) // 50*(255-5)*(8M/64)=0.1s
- {
- if(count == 9)
- {
- count = 1;
- count_num += 1;
- }
- if(count_num == 5)
- {
- count_num = 1;
- }
- data = 0;
- S_OFF;
- btn1();
- count = count + 1;
- }
- }
- #pragma interrupt_handler timer2_ovf_isf:5
- void timer2_ovf_isf(void)
- {
- TCNT2 = 0X83;//初值
- data++;
- if(data = 50) // 50*(255-5)*(8M/64)=0.1s
- {
- data = 0;
- btn2_3_count += 1;
- btn2_3();
- S_OFF;
- }
- }
- void timer2_open(void)
- {
- CLI();
- TCCR2 = 0X03;
- TCNT2 = 0X83;
- SEI();
- }
- //CPU總體初始化
- void init_devices(void)
- {
- CLI();
- port_init();
- MCUCR = 0x00;
- GICR = 0x00;
- TIMSK = 0x43;
- TCCR0 =(0<<CS01) | (0<<CS00);
- TCNT0 = 0X05;
- TCCR2 = 0X00;//0000 0011
- TCNT2 = 0X83;//初值
- SEI();
- }
- void main(void)
- {
- SREG = 0X80;
- init_devices();
- while(1)
- {
- key_scan();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement