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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 新建_文本文檔_(2).txt

?? 24c64 for avr c source code, you can change it for other 24xx other document is for 率值配料下位機程序
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
/*一個完整的項目程序(原創,謝絕轉載)

這是偶剛出道的時候為一個小公司做的程序.使用的是M16.當時簽定了10年的保密協議,
不過現在那個公司已經倒閉了.現在看到這段程序的人,可以自由的修改,發布,包括
但不限于用于商業或非商業的項目中!呵呵~~~~*/




//******************************************************************************
//芯片:M16
//晶振:16.0000Mhz
//模塊:率值配料下位機程序
//******************************************************************************
#include <eeprom.h>
#include <iom16v.h>
#include <macros.h>
//*******全局宏定義*************************************************************
#define uchar unsigned char
#define HANDEL 0xAA
//*******CH451數碼管顯示********************************************************
#define CH451_RESET     0x201                   //復位
#define CH451_LEFTMOV   0x300                            //設置移動方式-作移
#define CH451_LEFTCYC   0x301                            //設置移動方式-左循
#define CH451_RIGHTMOV  0x302                            //設置移動方式-右移
#define CH451_RIGHTCYC  0x303                            //設置移動方式-右循        
#define CH451_SYSOFF    0x400                   //關顯示、鍵盤、看門狗
#define CH451_SYSON1    0x401                   //開顯示
#define CH451_SYSON2    0x403                   //開顯示、鍵盤
#define CH451_SYSON3    0x407                   //開顯示、鍵盤、看門狗功能
#define CH451_DSP       0x500                   //設置默認顯示方式
#define CH451_BCD       0x580                   //設置BCD譯碼方式
#define CH451_TWINKLE   0x600                            //設置閃爍控制
#define CH451_DIG0      0x800                   //數碼管位0顯示
#define CH451_DIG1      0x900                            //數碼管位1顯示 
#define CH451_DIG2      0xa00                            //數碼管位2顯示
#define CH451_DIG3      0xb00                            //數碼管位3顯示
#define CH451_DIG4      0xc00                            //數碼管位4顯示
#define CH451_DIG5      0xd00                        //數碼管位5顯示        
#define CH451_DIG6      0xe00                        //數碼管位6顯示        
#define CH451_DIG7      0xf00                            //數碼管位7顯示
//******************************************************************************
//全局變量
//******************************************************************************
static uchar DataBuff[600];//配比數據緩沖

static uchar RecvBuff[50];//正常命令接收緩沖

static uchar SendBuff[50];//命令發送緩沖

static int   AD[8];//用來存放AD轉換電流數據[0-7]8個電流量
static int   ADUp[8];//上限
static int   ADDown[8];//下限
static float ADValue[8];//電流數據的參照值

static uchar STAT=1;//狀態-1.配比 2.電流

static uchar E_Index=0;//狀態-配比
static uchar P_Index=0;//狀態-電流

static uchar Warning=0;//報警標志
static uchar W_Index=1;//報警序號顯示用
static uchar F_SendMode=1;//報警序號顯示用
static uchar key_Delay=0xBF;

static char PressKey=0;//按鍵碼


uchar  timer=0;//數據的刷新周期

uchar  UseWarning=1;//是否使用報警 

int    UseCount=0;//使用總次數
static uchar PasswordStat=1;//解密狀態:1(需要一級密碼),2(需要二級密碼),3(需要三級密碼),100(已全部解密)

static uchar Password1[6];//一級密碼6個字節
static uchar Password2[6];//二級密碼6個字節
static uchar Password3[6];//三級密碼6個字節
static uchar MachineNumber[3];//機器編碼

static uchar NeedSaveFlag=0;

//******************************************************************************
//初始化函數
//******************************************************************************
//初始化看門狗
void watchdog_init(void)
{
    // WDR(); //喂狗
    // WDTCR = 0x1F; //WATCHDOG ENABLED - dont forget to issue WDRs (0xF=2s)
}
//初始各端口
void port_init(void)
{
    DDRA  = 0x00;//
    PORTA = 0x00;//
    
    DDRB  = 0xBF;//DSP(7,6,5,4) LED(0,1,2,3)
    PORTB = 0x00;
    
    DDRC  = 0x00;//
    PORTC = 0x00;//
    
    DDRD  = 0xF0;//PS2(4,5),Sound(7)
    PORTD = 0x00;
    PORTD&=~BIT(PD6);//0
}

//UART0 initialisation
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
    UCSRB = 0x00; //disable while setting baud rate
    UCSRA = 0x00;
    UCSRC = 0x86;
    //UBRRL = 0x67; //set baud rate   //16 M
    UBRRL = 0x33; //set baud rate   //8 M
    UBRRH = 0x00; //set baud rate hi
    UCSRB = 0xF8;
}
//call this routine to initialise all peripherals
void init_devices(void)
{
    
    
    int i=0;
    //stop errant interrupts until set up
    CLI(); //disable all interrupts
    watchdog_init();
    port_init();
    WDR(); //喂狗
    
    uart0_init();
    WDR(); //喂狗
    
    ch451_init();
    WDR(); //喂狗
    
    EPInit();
    WDR(); //喂狗
    
    keyboardInit();
    WDR(); //喂狗
    
    
    MCUCR = 0x00;
    GICR  = 0x00;
    TIMSK = 0x00; //timer interrupt sources
    SEI(); //re-enable interrupts
    WDR(); //喂狗
    
    putled(1,0,0);
    putled(2,0,0);
    putled(3,0,0);
    putled(4,0,0);
    putled(5,0,0);
    putled(6,0,0);
    putled(7,0,0);
    putled(8,0,0);
    WDR(); //喂狗
    
    for(i=0;i<400;i++)
    DataBuff[i]=0; 
    WDR(); //喂狗
    
    for(i=0;i<30;i++)
    RecvBuff[i]=0;
    WDR(); //喂狗
    
    for(i=0;i<30;i++)
    SendBuff[i]=0;
    WDR(); //喂狗
    
    ReadUseCount();
    WDR(); //喂狗
    
    ReadSendMode();
    WDR(); //喂狗
    
    ReadKeyDelay();
    WDR(); //喂狗
    
    ReadUseWarning();//是否使用報警
    WDR(); //喂狗
    
    ReadElectricityUpDown();//讀取電流上下限
    WDR(); //喂狗
    
    ReadElectricityValue();//讀取電流參照值
    WDR(); //喂狗
    
    ReadPasswordStat();//讀取解密狀態
    WDR(); //喂狗
    
    STAT=1;//狀態-1.配比 2.電流
    WDR(); //喂狗
    
    E_Index=0;//狀態-配比-序號
    P_Index=0;//狀態-電流-序號
    W_Index=1;//狀態-報警-序號
    
    Warning=0;//是否報警
    PressKey=0;//按鍵碼
    NeedSaveFlag=0;//保存標志
    WDR(); //喂狗
    
    sound();
    WDR(); //喂狗
    
    delay_s(1);
    WDR(); //喂狗
    
    nosound();
    WDR(); //喂狗
    keyboardInit();
    delay_s(1);
    WDR(); //喂狗
    
    sound();
    WDR(); //喂狗
    keyboardInit();
    delay_s(1);
    WDR(); //喂狗
    
    nosound();
    WDR(); //喂狗
    keyboardInit();
    //all peripherals are now initialised
}
//******************************************************************************
//延時子程序
//****************************************************************************** 
//延時1微秒
void delay_us(int time)
{
    
    asm("_L2: subi R16,1");  
    asm(" brne _L2");
    asm(" ret");
    
    
}

//延時1毫秒 
void  delay_ms(int time)
{
    int t;
    for(t=0;t<time;t++)
    {
        delay_us(1000);
    }
}
//延時1秒
void delay_s(int time)
{
    int t;
    for(t=0;t<time;t++)
    {
        delay_ms(1000);
    }
}
//******************************************************************************
//輸入輸出函數
//******************************************************************************
//向串口寫一個字節
void putuchar(uchar data)
{
    delay_ms(10);                
    while ( !( UCSRA & (1<<UDRE)) );
    UDR = data; /* Put data into buffer, sends the data */
}
//從串口讀取一個字節
uchar getuchar()
{
    delay_ms(10);
    while (!(UCSRA & (1<<RXC)) );
    return UDR;    /* Get and return received data from buffer */
    
}
//發送一串緩沖數據到串口 
void sendComm()
{
    uchar k=0;
    delay_ms(300);
    for(k=0;k<SendBuff[0];k++)
    {
        putuchar(SendBuff[k+1]);
    }
    
}
//******************************************************************************
//AD轉換函數
//******************************************************************************
//讀取指定通道的AD值
int ReadADC( uchar channel)
{   
    int i;
    
    ADMUX = 0;                              // Select channel 0
    ADCSR = 0xc4; 
    ADMUX = channel;                        // Select channel
    delay_ms(10);
    ADCSR |= 0x40;                          // Start conversion
    
    while (!(ADCSR & 0x10));                // Check if converstion is  ready
    
    ADCSR |= 0x10;                          // Clear Conversion ready  flag by setting the bit
    
    i = ADCL;                               // Read 8 low bits first  (important)
    i += (int)ADCH << 8;                    // Read 2 high bits and  multiply with 256
    
    return i;
    
}


//******************************************************************************
//模擬按鍵函數
//******************************************************************************

//初始化鍵盤,數據線=0,時鐘線=1
void keyboardInit()
{
    PORTD|=BIT(PD4);
    return;
    /*
    上電復位時的協議:
          1,PC->KB  (0XFF);
    復位, 進行 Basic Assurance Test (BAT). 設備返回 BAT 完成代碼0xaa. 如果是鍵盤,切換到掃描碼集2.上電時也進行BAT,所以,設備插上后馬上送出 0xaa. 注意: 鍵盤回應 ACK ,所以必須把數據和時鐘pin設置成high狀    態, 并且至少500 秒! (設置方法參考i8042----端口). 之后, BAT 開始. 成功時返回 aah,失敗返回fch . 有資料說0xfe ff, f4,f5,f6不存在!? 
          2,KB->PC  (0XFA);
    0xfa - n/a - PS/2 keyboard 
    所有鍵上報press ,release ,repeat 事件. 掃描碼集 3 有效. 默認行為. 
          3,KB->PC ?。?XAA);
    0xaa 
    BAT successful completion code. See comand 0xff. 
          4,PC->KB  (0XF2);
    0xf2 - 2*R - PS/2 Keyboard / Mouse 
    得到ID. 讀到 0x83 and 0xab 代表鍵盤. 從mouse讀到0x00 ,可能意味著ID以外的其他東西. 
          5,KB->PC ?。?XFA);
    0xfa - n/a - PS/2 keyboard 
    所有鍵上報press ,release ,repeat 事件. 掃描碼集 3 有效. 默認行為. 
          6,KB->PC ?。?XAB);
          7,KB->PC  (0X83);
    9位d0-d6 為鍵盤掃描碼 D7=0 鍵按下是發出。D7=1 鍵釋放是發出。D8=1 表示一組數據結束 
    D7=0也包括超時發出的。
    你每發一個數據應d該延時10MS-20ms,最快速度每秒30個字符
    
    sendkey(0xFA,0);
    sendkey(0xAA,0);
    
    delay_us(10);
    
    sendkey(0xFA,0);
    sendkey(0xAB,0);
    sendkey(0x83,0);
    
    // PORTD|=BIT(PD5);//SCK=!SCK;//1
    // PORTD|=BIT(PD4);//SCK=!SCK;//1
    
    //PORTD&=~BIT(PD5);//SCK=!SCK;//0
    //PORTD&=~BIT(PD4);//SCK=!SCK;//0
    
    */
    
}

//向鍵盤口發送一個字節,PS2發送程序,每次發送一個字節。
void sendkey(unsigned char KeyData,uchar WithDog)
{
    //  低位在前,一個校驗位,一個停止位
    unsigned  char  i;
    unsigned  char  ParityBit;
    unsigned  char  DataBit;
    unsigned  char  delaytime=0;
    
    
    if(WithDog)
    {
        WDR(); //喂狗
        delay_ms(key_Delay);
        delay_ms(20);
        delaytime=13;
    }
    else
    {
        delay_ms(key_Delay*10);
        delay_ms(200);
        delaytime=130;
    }
    
    
    while(!(PORTD&BIT(PD4))>>4)
    {
        if(WithDog)
        delay_s(10);
        else
        delay_s(1);
    }  
    
    PORTD|=BIT(PD4);
    PORTD|=BIT(PD5);
    
    for(i=0;i<8;i++)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线免费观看| 日韩亚洲国产中文字幕欧美| 欧美日韩中文精品| 91麻豆精品国产自产在线| 精品99一区二区| 亚洲欧美偷拍另类a∨色屁股| 亚洲国产成人va在线观看天堂| 美女一区二区三区在线观看| 成人福利视频在线看| 欧美日韩一级黄| 精品日产卡一卡二卡麻豆| 中文字幕亚洲综合久久菠萝蜜| 亚洲综合一二三区| 久久精品久久99精品久久| av高清久久久| 日韩欧美国产三级| 亚洲视频一二三| 久久er99精品| 色天使色偷偷av一区二区| 欧美成人精品1314www| 亚洲视频在线观看三级| 欧美aaaaa成人免费观看视频| caoporn国产精品| 日韩一区二区不卡| 亚洲免费在线看| 精品夜夜嗨av一区二区三区| 色菇凉天天综合网| 国产日韩av一区| 视频精品一区二区| 97久久超碰精品国产| 欧美mv和日韩mv国产网站| 亚洲视频一二三| 国产精品一区二区三区网站| 69久久夜色精品国产69蝌蚪网| 亚洲天堂a在线| 国产精品一二三四区| 777欧美精品| 一卡二卡欧美日韩| 懂色av一区二区在线播放| 日韩欧美久久久| 亚洲成人一区二区在线观看| 91免费观看视频在线| 久久久久久一二三区| 午夜精彩视频在线观看不卡| 色婷婷久久综合| 中文字幕一区二区视频| 国产高清不卡一区二区| 精品少妇一区二区三区日产乱码| 亚洲电影一级片| 色综合天天天天做夜夜夜夜做| 久久久蜜桃精品| 蜜乳av一区二区| 欧美日高清视频| 亚洲一区免费在线观看| 成人av在线一区二区| 国产亚洲精品aa| 国产东北露脸精品视频| 久久日韩精品一区二区五区| 免费成人结看片| 中文字幕亚洲一区二区va在线| 国产盗摄精品一区二区三区在线| 欧美第一区第二区| 美女一区二区视频| 日韩精品专区在线影院重磅| 日产精品久久久久久久性色| 欧美日产在线观看| 午夜不卡av在线| 欧美日韩国产在线观看| 午夜视频久久久久久| 欧美久久久一区| 日韩福利视频网| 欧美二区在线观看| 奇米精品一区二区三区在线观看| 欧美伦理电影网| 日本伊人午夜精品| 日韩欧美一区二区视频| 久久机这里只有精品| 精品欧美一区二区久久| 狠狠色狠狠色综合| 久久久久国产精品麻豆ai换脸| 国产一区二区精品久久91| 久久免费的精品国产v∧| 国产精品夜夜嗨| 国产亚洲成aⅴ人片在线观看| 国产成人精品免费网站| 国产精品国产精品国产专区不片| k8久久久一区二区三区| 亚洲精品亚洲人成人网| 在线亚洲一区二区| 亚洲成av人影院| 日韩欧美成人一区| 国产成人精品影视| |精品福利一区二区三区| eeuss国产一区二区三区| 亚洲国产一二三| 日韩欧美黄色影院| 国产不卡免费视频| 一区二区三区在线观看网站| 欧美剧在线免费观看网站| 另类小说图片综合网| 久久久久久夜精品精品免费| 97国产一区二区| 婷婷六月综合网| 久久网站最新地址| 91麻豆国产自产在线观看| 亚洲.国产.中文慕字在线| 久久影音资源网| 色综合天天综合网国产成人综合天| 日韩在线卡一卡二| 国产午夜精品久久| 在线观看亚洲一区| 韩日av一区二区| 亚洲精品国产第一综合99久久| 欧美精品久久99久久在免费线| 国产精品一二二区| 亚洲国产综合色| 国产欧美一区二区精品婷婷| 91成人在线观看喷潮| 免费观看久久久4p| 中文字幕中文字幕中文字幕亚洲无线 | 26uuu色噜噜精品一区| 福利91精品一区二区三区| 亚洲福利电影网| 欧美国产97人人爽人人喊| 欧美日本视频在线| 风流少妇一区二区| 日韩av电影免费观看高清完整版| 国产精品国产精品国产专区不片| 日韩亚洲欧美一区二区三区| 99久久伊人网影院| 久久99精品一区二区三区| 亚洲乱码中文字幕综合| 欧美精品一区二区三区久久久| 99精品热视频| 久久av中文字幕片| 亚洲一区二区视频在线观看| 国产亚洲女人久久久久毛片| 88在线观看91蜜桃国自产| 99re这里只有精品视频首页| 久久99久久99| 天堂久久久久va久久久久| 亚洲欧洲精品天堂一级| 久久久久久黄色| 日韩一区二区三| 91久久免费观看| 蜜臂av日日欢夜夜爽一区| 一片黄亚洲嫩模| 成人欧美一区二区三区| 国产午夜亚洲精品不卡| 欧美一区二区三区小说| 在线观看免费成人| kk眼镜猥琐国模调教系列一区二区 | 91麻豆swag| 粉嫩av一区二区三区在线播放| 麻豆高清免费国产一区| 亚洲成a人在线观看| 一区二区三区中文字幕| 中文字幕一区在线| 国产精品视频免费看| 久久先锋影音av| 日韩欧美国产麻豆| 日韩欧美黄色影院| 日韩视频免费观看高清完整版在线观看 | 国产午夜亚洲精品午夜鲁丝片 | 国产精品99久久久久久有的能看| 日韩国产欧美一区二区三区| 亚洲一区二区三区在线播放| 亚洲天堂a在线| 亚洲乱码中文字幕综合| 亚洲少妇30p| 亚洲三级理论片| 亚洲欧洲性图库| 中文字幕一区在线观看视频| 国产精品精品国产色婷婷| 中文字幕欧美激情| 国产日韩精品一区二区三区 | 成人一区二区在线观看| 国产成人免费av在线| 懂色av中文一区二区三区| 丁香另类激情小说| 成人中文字幕合集| 不卡av电影在线播放| av在线不卡网| 99国产精品久久久久久久久久| 97se亚洲国产综合自在线 | 亚洲国产成人av网| 视频一区二区不卡| 欧美aaaaa成人免费观看视频| 免费在线一区观看| 久久精品99国产精品| 精品中文av资源站在线观看| 国产一区二区三区四区五区入口| 国产麻豆成人精品| 国产成人午夜电影网| 99在线精品免费| 日本电影欧美片| 欧美三级日本三级少妇99| 欧美精品一级二级三级| 毛片av一区二区三区| 麻豆极品一区二区三区|