亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vfd_51.c

?? 一個用C51驅(qū)動PT6324+VFD的源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
function : P1.0 output frequency time 100ms ~ 1000ms 
author : 
start date : 
*/

//#define DEBUG
//#pragma ot(6,speed)

#pragma small

#include <reg51.h>
#include <intrins.h>

#ifdef 	DEBUG
#include <stdio.h>
#endif

#define MODEKEY     0x00
#define VFD_A       0x00
#define VFD_B       0x01

#define COMMAND1    0x00
#define DIG4        0x00
#define DIG5        0x01
#define DIG6        0x02
#define DIG7        0x03
#define DIG8        0x04
#define DIG9        0x05
#define DIG10       0x06
#define DIG11       0x07
#define DIG12       0x08

#define COMMAND2    0x40
#define TESTMODE    0x08
#define FIX_ADDR    0x04
#define INC_ADDR    0x00
#define W_DISP      0x00
#define W_LED       0x01
#define R_KEY       0x02

#define COMMAND3    0xc0
#define COMMAND4    0x80
#define DISPLAY_ON  0x08


#define NO_PAD      0x00
#define DUTY14_16   0x01
#define DUTY13_16   0x02
#define DUTY12_16   0x04
#define DUTY11_16   0x08
#define DUTY10_16   0x10

sbit vfd_a_dout = P2 ^ 0;
sbit vfd_a_stb  = P2 ^ 1;
sbit vfd_a_din  = P2 ^ 2;
sbit vfd_a_clk  = P2 ^ 3;
sbit test_p     = P2 ^ 4;   //test
sbit vfd_b_stb  = P2 ^ 5;
sbit vfd_b_din  = P2 ^ 6;
sbit vfd_b_clk  = P2 ^ 7;


static unsigned char bdata flag0;
sbit f_key_push	 = flag0 ^ 0;		//
sbit f_new_key	 = flag0 ^ 1;		//=1/0 執(zhí)行鍵功能/不執(zhí)行鍵功能
sbit f_old_key	 = flag0 ^ 2;		//=0/1
sbit f_run_mode	 = flag0 ^ 5;
sbit f_timer0_int= flag0 ^ 6;
sbit f_timer1_int= flag0 ^ 7;

static unsigned char bdata flag1;
sbit f_dispshow     = flag1 ^ 0;
sbit f_dispupdata   = flag1 ^ 1;
sbit f_mode3p1      = flag1 ^ 2;
sbit f_t500ms       = flag1 ^ 3;
sbit f_t1s          = flag1 ^ 4;
sbit f_dispminute   = flag1 ^ 5;
sbit f_disphour     = flag1 ^ 6;
sbit f_padupdata    = flag1 ^ 7;

unsigned char data hourbuf,minutedbuf,secbuf;
//unsigned char data dispbuf[48];

unsigned char data key_code;
unsigned char data temp_key_code;
unsigned char data step_kind;
unsigned char data mode;
unsigned char data mode3coun;
unsigned char data t500ms_cont;
unsigned char data duty_buf;
//unsigned char data bcd[3];
/*
unsigned char code digit[] = 
{0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10};
*/
void Timer0(void);
void Timer_int_Ini(void);
void delay_short(unsigned char delays_cnt);
void delay_long(unsigned int delayl_cnt);
void serial_out(unsigned char vfd_select, unsigned char s_data);
void display_init(void);
void display(void);
//void hex2bcd(unsigned char hexdata);
void key_scan(void);
void read_switch(void);
void key_process(void);

void main(void)
{
    Timer_int_Ini();
    EA	= 1;

//	P2 = 0;
    vfd_a_stb = 1;
    vfd_a_clk = 0;
    vfd_a_din = 0;
    vfd_a_dout = 0;
    vfd_b_stb = 1;
    vfd_b_clk = 0;
    vfd_b_din = 0;
//    vfd_b_dout = 0;
  
    delay_long(50000);
    delay_long(50000);
    
    mode = 0;
    duty_buf = 0x07;
    f_dispupdata = 1;
    f_dispshow = 1;
    display_init();

//    while (1)
//    {}
    
    while (1)
    {
        if (f_timer1_int == 1)
        {
            f_timer1_int = 0;
            if (t500ms_cont < 16)
            {
                t500ms_cont++;
            }
            else
            {
                t500ms_cont = 0;
                f_t500ms = 1;
            }
            read_switch();
            key_scan();
            key_process();
        }
    	
        if(f_t500ms == 1)
        {
            f_t500ms = 0;
            switch (mode)
            {
                case 0:
                case 1:
                    break;
                
                case 3:
                    if (mode3coun <20)
                    {
                        mode3coun++;
                    }
                    else
                    {
                        mode3coun = 0;
                        f_mode3p1 = ~f_mode3p1;
                        f_dispupdata = 1;
                    }
                    break;

                case 2:
                    f_dispupdata = 1;
                    break;
                    
                default:
                    break;
            }
            
            if (f_t1s == 1)
            {
                f_t1s = 0;
                f_dispshow = 0;
                test_p =0;
            }
            else
            {
                f_t1s = 1;
                f_dispshow = 1;
                test_p = 1;
                
                if (secbuf < 59)
                {
                    secbuf++;
                }
                else
                {
                    secbuf = 0;
                    f_dispminute = 1;
                    if (minutedbuf < 59)
                    {
                        minutedbuf++;
                    }
                    else
                    {
                        minutedbuf = 0;
                        f_disphour = 1;
                        if(hourbuf < 23)
                        {
                            hourbuf++;
                        }
                        else
                        {
                            hourbuf = 0;
                        }
                    }
                }
            }
            display();
        }
    }
}

//
void Timer0(void) interrupt 1 using 0
{
	TH0 = 0x00;//0xdc;
	TL0 = 0x00;//0x5c;
	
	f_timer0_int = 1;
}

//13.565M, 31.25ms
void Timer1(void) interrupt 3 using 0
{
	TH1 = 0x76;//0xdc;
	TL1 = 0x02;//0x5c;
	
	f_timer1_int = 1;
}

void Timer_int_Ini(void)
{
	TH0 = 0x00;//0xdc;		//11.0592Mhz
	TL0 = 0x00;//0x5c;
	TH1 = 0X76;
	TL1 = 0X02;
	TMOD = 0x10;
//	ET0	 = 1;
	ET1  = 1;
//	TR0	 = 1;
	TR1  = 1;
}

void key_scan(void)
{
	unsigned char temp;
	temp = (P0 & 0x01);//有鍵按下時 !=0x0f

	if (temp != 0x01)//是否有鍵按下
	{
		if ((temp == temp_key_code) && (f_old_key == 0))
		{
			key_code = temp;
			f_new_key = 1;
		}
		else
		{
			temp_key_code = temp;
		}
	}
	else
	{
		temp_key_code = 0;
		f_new_key = 0;
		f_old_key = 0;
	}
}

void key_process(void)
{
	if (f_new_key)
	{
		switch (key_code)
		{
        case MODEKEY:
            if(mode < 3)
            {
                mode++;
            }
            else
            {
                mode = 0;
            }
            f_dispshow= 1;
            f_dispupdata = 1;
            
            f_new_key = 0;
            f_old_key = 1;
            break;
				
        default:
            break;
		}
	}
}

void read_switch(void)
{
    step_kind = 0x1f - (P1 & 0x1f);
    switch (step_kind)
    {
        case NO_PAD:
            
            break;

        case DUTY14_16:
            if(duty_buf != 0x07)
            {
                duty_buf = 0x07;
                f_padupdata =1;
                f_dispupdata = 1;
            }
            break;
        	
        case DUTY13_16:
            if(duty_buf != 0x06)
            {
                duty_buf = 0x06;
                f_padupdata =1;
                f_dispupdata = 1;
            }
            break;
        	
        case DUTY12_16:
            if(duty_buf != 0x05)
            {
                duty_buf = 0x05;
                f_padupdata =1;
                f_dispupdata = 1;
            }
            break;
        	
        case DUTY11_16:
            if(duty_buf != 0x04)
            {
                duty_buf = 0x04;
                f_padupdata =1;
                f_dispupdata = 1;
            }
            break;
        	
        case DUTY10_16:
            if(duty_buf != 0x03)
            {
                duty_buf = 0x03;
                f_padupdata =1;
                f_dispupdata = 1;
            }
            break;
    
        default:
            break;
    }

    if(f_padupdata)
    {
        f_padupdata = 0;
        vfd_a_stb = 0;
        serial_out(VFD_A, COMMAND1 | DIG5);   //command 1, 8dig, 24seg
        vfd_a_stb = 1;
        
        delay_short(2);
        
        vfd_a_stb = 0;
        serial_out(VFD_A, COMMAND4 | DISPLAY_ON | duty_buf);   //command 4, duty
        vfd_a_stb = 1;
//
        vfd_b_stb = 0;
        serial_out(VFD_B, COMMAND1 | DIG5);   //command 1, 8dig, 24seg
        vfd_b_stb = 1;
        
        delay_short(2);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人伦理片在线| 东方aⅴ免费观看久久av| 久久久久国产精品麻豆| 色哟哟精品一区| 免费视频最近日韩| 免费成人在线视频观看| 日韩成人精品在线观看| 天天色天天操综合| 日韩国产一二三区| 久久99最新地址| 狠狠色狠狠色综合日日91app| 蜜乳av一区二区| 久久―日本道色综合久久| 精品一区二区三区在线观看国产| 国产校园另类小说区| 久久久无码精品亚洲日韩按摩| 爽好久久久欧美精品| 精品一区二区三区在线观看国产| 欧美日韩亚洲综合一区二区三区| 91极品视觉盛宴| 日韩欧美国产午夜精品| 51午夜精品国产| 91精品久久久久久蜜臀| 欧美日韩情趣电影| 国产色爱av资源综合区| 色域天天综合网| 亚洲国产cao| 精品制服美女丁香| 国产精品99久久久久久久vr| 美女www一区二区| 欧美伊人久久久久久久久影院 | 欧美国产一区在线| 国产精品久久久久aaaa| 91免费观看在线| 亚洲欧美日韩综合aⅴ视频| 久草这里只有精品视频| 555www色欧美视频| 亚洲理论在线观看| 99亚偷拍自图区亚洲| 中文字幕+乱码+中文字幕一区| 日本中文字幕一区二区视频| 91精品在线观看入口| 成人精品视频一区二区三区| 亚洲精品视频免费观看| 日韩欧美你懂的| 成人av网站在线| 久久综合久色欧美综合狠狠| 国产99久久久国产精品| 午夜久久久久久久久| 欧美高清在线视频| 亚洲成人1区2区| 国产成人a级片| 欧美一区二区三区免费观看视频 | 中文字幕免费在线观看视频一区| 亚洲制服丝袜av| 国产成人精品三级| 欧美一二三四区在线| 亚洲免费成人av| 国产成人激情av| 精品免费日韩av| 性做久久久久久免费观看欧美| 国产91精品一区二区麻豆网站| 在线成人免费观看| 亚洲永久免费视频| 91色.com| 亚洲欧洲精品一区二区三区不卡| 99精品久久只有精品| 亚洲乱码日产精品bd| 国产精品538一区二区在线| 亚洲高清在线精品| 欧美va亚洲va| 欧美精品一区男女天堂| 精品一区二区成人精品| 欧美精品一区二区三区蜜桃视频| 日本丶国产丶欧美色综合| 粉嫩嫩av羞羞动漫久久久 | 亚洲一区二区在线免费观看视频| 国产伦精一区二区三区| 精品国产污网站| 韩国欧美一区二区| 精品国内二区三区| 精品一区二区三区不卡| 日韩一区二区在线观看视频播放| 午夜欧美2019年伦理| 欧美日产在线观看| 日韩一区二区免费在线电影| 亚洲精品成人a在线观看| 成人综合婷婷国产精品久久| 成人av网址在线| 中文字幕一区二区三区不卡 | 国产伦精品一区二区三区在线观看| 日韩一区二区电影| 国产一区二区三区在线观看免费视频 | 欧美不卡在线视频| 国产精品中文欧美| 日韩久久一区二区| 欧美日韩一区视频| 蜜桃视频一区二区三区| 久久精品免费在线观看| 成人av先锋影音| 亚洲国产婷婷综合在线精品| 3d成人h动漫网站入口| 看国产成人h片视频| 久久久噜噜噜久久人人看 | 欧美成人性战久久| 国产aⅴ精品一区二区三区色成熟| 久久综合久久综合亚洲| 色哟哟亚洲精品| 麻豆91免费看| 国产精品免费视频观看| 欧美亚洲日本一区| 韩国在线一区二区| 亚洲精品五月天| 日韩欧美国产wwwww| hitomi一区二区三区精品| 一本久道久久综合中文字幕| xfplay精品久久| 亚洲电影第三页| 欧美日韩美女一区二区| 国产一区美女在线| 一区二区三区四区在线免费观看| 欧美顶级少妇做爰| 国产91丝袜在线播放九色| 亚洲不卡在线观看| 国产精品毛片无遮挡高清| 4438x亚洲最大成人网| av亚洲精华国产精华精华| 免费在线一区观看| 亚洲精品v日韩精品| 国产日韩欧美制服另类| 欧美一区二区日韩一区二区| 色系网站成人免费| 成人精品免费网站| 国内精品视频一区二区三区八戒| 亚洲一区二区三区四区中文字幕| 久久精品视频在线免费观看 | 亚洲国产精品久久久久秋霞影院| 久久久亚洲精华液精华液精华液| 欧美乱妇一区二区三区不卡视频| 99re这里只有精品视频首页| 国产麻豆午夜三级精品| 日本不卡视频一二三区| 亚洲国产aⅴ成人精品无吗| 亚洲人成伊人成综合网小说| 国产农村妇女毛片精品久久麻豆 | 久久激情五月婷婷| 日韩电影在线观看一区| 亚洲午夜精品在线| 一区二区三区在线影院| 亚洲欧美一区二区三区国产精品 | 狠狠久久亚洲欧美| 免费高清成人在线| 免费观看成人av| 免费久久精品视频| 另类中文字幕网| 看电影不卡的网站| 韩国三级中文字幕hd久久精品| 精品一区二区免费在线观看| 男女男精品网站| 国产一区二区三区蝌蚪| 国产精品乡下勾搭老头1| 国产精品一品二品| 国产99久久精品| 91免费在线看| 欧美影片第一页| 91精品国产品国语在线不卡| 69堂精品视频| 欧美精品一区二区高清在线观看| 亚洲精品在线电影| 中文字幕乱码久久午夜不卡| 国产精品久久一卡二卡| 亚洲欧洲日韩av| 亚洲午夜精品一区二区三区他趣| 午夜精彩视频在线观看不卡| 日本成人在线看| 国产成人精品免费| 99精品在线观看视频| 欧美综合色免费| 91精品国产手机| 国产精品视频观看| 亚洲在线成人精品| 激情综合色综合久久综合| 成人免费不卡视频| 欧美剧情电影在线观看完整版免费励志电影 | 国产91富婆露脸刺激对白| a美女胸又www黄视频久久| 欧美视频在线观看一区二区| 日韩午夜激情电影| 国产精品久久久爽爽爽麻豆色哟哟| 一区二区三区欧美视频| 精品一区在线看| 99久久免费精品高清特色大片| 欧美色中文字幕| 中文字幕精品一区二区三区精品| 一区二区三区四区国产精品| 久久精品国内一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 国产欧美一区二区在线| 亚洲综合色丁香婷婷六月图片| 日韩av网站免费在线|