⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 电点火实验台c程序.c

📁 at90s8535 timer1 的编程
💻 C
字号:
#include <io8535v.h>
#pragma interrupt_handler timer1_ov:9

int i,j,d;
int timer1num;
int time1_flag;

unsignde int display;

unsignde int smallbit;
unsignde int tenbit;
unsignde int handbit;

unsignde char hand;
unsignde char ten;
unsignde char bit;

const unsigned char led_bit[]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff,0x6f};

void timer1_ov(void)
    {
    SREG=0x00;
    time1_flag=1;
	TCNT1=timer1num;
	SREG=0x80;
    }

void init(void)
    {
    TCCR1B=0x03;
    DDRA=0xff;
    DDRB=0xff;
    DDRC=0xff;
    TCNT1=0;
    SREG=0x80;
    TIMSK=0x04;
    }

void delay(void)
    {
    while(!time1_flag)
    {
    PORTA=hand;
    PORTB=0x04;
    for(d=0;d<=5;d++)
    {;}
    
    PORTA=ten;
    PORTB=0x02;
    for(d=0;d<=5;d++)
    {;}
    
    PORTA=bit;
    PORTB=0x01;
    for(d=0;d<=5;d++)
    {;}
    }
    time1_flag=0;
    }

void main(void)
    {
    init();
    for(i=0;i<=188;i++)
        {
        timer1num=65536-(93750/((200-i)*2));
        TCNT1=timer1num;
        display=200-i;
        handbit=display/100;
        tenbit=(display%100)/10;
        smallbit=(display%100)%10;
        hand=led_bit[handbit];
        ten=led_bit[tenbit];
        bit=led_bit[smallbit];
        
        for(j=0;j<=1;j++)//j是测试值
            {
            delay();
            PORTC=PORTC^0x01;
            }
        }
    }

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -