?? display.c
字號:
//ICC-AVR application builder : 2005-2-24 23:07:53
// Target : M8
// Crystal: 8.0000Mhz
#include <iom8v.h>
#include <macros.h>
unsigned char n;
//TIMER1 initialisation - prescale:256
// actual value: 1.000Hz (0.0%)
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0x85; //setup
TCNT1L = 0xEE;
OCR1AH = 0x7A;
OCR1AL = 0x12;
OCR1BH = 0x7A;
OCR1BL = 0x12;
ICR1H = 0x7A;
ICR1L = 0x12;
TCCR1A = 0x00;
TCCR1B = 0x04; //start Timer
}
// timer1 中斷 ,1秒
#pragma interrupt_handler timer1_ovf_isr:9
void timer1_ovf_isr(void)
{
unsigned char ch,i;
TCNT1H = 0x85; //reload counter high value
TCNT1L = 0xEE; //reload counter low value
if(++n == 10) n = 0;
ch = n | 0x70;
PORTB &= ~0x01; // 消隱
PORTD &= ~0x40; // CLK
for(i=0; i<8; i++){
if(ch & 0x80)
PORTD |= 0x80;
else
PORTD &= ~0x80;
ch <<= 1;
PORTD |= 0x40;
asm("nop");
PORTD &= ~0x40;
}
PORTB |= 0x01; // 顯示
}
// 初始化
void init_devices(void)
{
CLI(); // 禁止中斷
DDRB = 0x01; // 初始化操作74LS164的管腳
DDRD = 0xC0; // 初始化操作74LS164的管腳
timer1_init();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x04; // 設置timer1中斷
SEI(); // 中斷使能
}
//
void main(void)
{
unsigned char x;
init_devices();
//insert your functional code here...
for(;;){
x++;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -