新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)按鍵搶答器程序

        51單片機(jī)按鍵搶答器程序

        作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏

        /**********************************************
        函數(shù)名稱(chēng):write_data(uchar date)
        函數(shù)功能:寫(xiě)數(shù)據(jù)
        函數(shù)調(diào)用:delay_ms(uint num)
        輸入?yún)?shù):數(shù)據(jù)
        輸出參數(shù):
        版權(quán)信息:
        時(shí)間版本: V1.0
        ***********************************************/
        void LCD_w_data(uchar dat)
        {
        LCD_RS=1;
        LCD_RW=0;
        LCD_DATA=dat;
        delay_ms(5);
        LCD_EN=1;
        delay_ms(5);
        LCD_EN=0;
        }
        /**********************************************
        函數(shù)名稱(chēng):
        函數(shù)功能:LCD_init()
        函數(shù)調(diào)用:LCD_w_com()
        輸入?yún)?shù):
        輸出參數(shù):
        版權(quán)信息:
        時(shí)間版本: V1.0
        ***********************************************/
        void LCD_init()
        {
        LCD_EN=0;
        LCD_w_com(0x38);//8線2行5X7字符模式
        LCD_w_com(0x0c);//顯示開(kāi),光標(biāo)不顯示,光標(biāo)不閃爍
        LCD_w_com(0x06);//光標(biāo)右移,文字不移動(dòng)
        LCD_w_com(0x01);//清除顯示,光標(biāo)復(fù)位
        }
        /**********************************************
        函數(shù)名稱(chēng): LCD_disp_cher(uchar x,uchar y,uchar *p)
        函數(shù)功能: 指定位置顯示字符串
        函數(shù)調(diào)用: LCD_w_com(),LCD_w_data()
        輸入?yún)?shù): x,y坐標(biāo),字符串指針數(shù)組
        輸出參數(shù):
        版權(quán)信息:
        時(shí)間版本: V1.0
        備注: x為列,x<16,y為行,y<2. 字符串長(zhǎng)+x不大于16.
        ***********************************************/
        void LCD_disp_cher(uchar x,uchar y,uchar *p)
        {
        if(y==1)
        {
        LCD_w_com(0x80+x);
        while(*p)
        {
        LCD_w_data(*p);
        p++;
        }
        }
        if(y==2)
        {
        LCD_w_com(0x80+0x40+x);
        while(*p)
        {
        LCD_w_data(*p);
        p++;
        }
        }
        }
        #endif//end LCD1602.H

        本文引用地址:http://www.104case.com/article/201612/324577.htm


        #ifndef _interrupt_H_
        #define _interrupt_H_
        #define uint unsigned int
        #define uchar unsigned char
        uint sec=10;
        sbit sb=P1^0;
        sbit si=P1^1;
        void interrupts_init()
        {
        EA=1; //開(kāi)總中斷
        ET0=1; // T0(定時(shí)中斷0) 的溢出中斷允許位
        TR0=1; //0的運(yùn)行控制位
        TMOD=0x1; //16位定時(shí)器
        TH0=(65536-50000)/255;
        TL0=(65536-50000)%255;
        }
        void ghjfgf() interrupt 1
        {
        uint subtle;
        TH0=(65536-50000)/255;
        TL0=(65536-50000)%255;
        subtle++;
        if(subtle==20)
        {
        subtle=0;
        sec--;
        }
        }
        #endif

        #ifndef _chiclet_keyboard_H_
        #define _chiclet_keyboard_H_
        sbit S1=P3^4; //獨(dú)立按鍵S1~S4
        sbit S2=P3^5;
        sbit S3=P3^6;
        sbit S4=P3^7; //用復(fù)位鍵退出這樣節(jié)省按鍵
        void delay(uint ms) //延時(shí)
        {
        uchar mus;
        for(ms; ms>0; ms--)
        for(mus=110; mus>0; mus--);
        }
        uint chiclet_keyboard_() //按鍵檢測(cè)子程序有返回值用于退出該子程序
        {
        uchar dsa[10]; //用于儲(chǔ)存顯示的數(shù)組
        while(1) //檢測(cè)死循環(huán),直至檢測(cè)道按鍵或時(shí)間到sec=0;
        {
        if(S1==0)
        {
        delay(5);
        if(S1==0)
        {
        LCD_disp_cher(0,1," S1 "); //顯示先按的按鍵
        return 0;
        }
        }
        if(S2==0)
        {
        delay(5);
        if(S2==0)
        {
        LCD_disp_cher(0,1," S2 "); //顯示先按的按鍵
        return 0;
        }
        }
        if(S3==0)
        {
        delay(5);
        if(S3==0)
        {
        LCD_disp_cher(0,1," S3 "); //顯示先按的按鍵
        return 0;
        }
        }
        if(S4==0)
        {
        delay(5);
        if(S4==0)
        {
        LCD_disp_cher(0,1," S4 "); //顯示先按的按鍵
        return 0;
        }
        }
        if(sec==0)
        {
        LCD_disp_cher(0,1," over time ");
        return 0;
        }
        sprintf(dsa," time %d ",sec); //顯示時(shí)間
        LCD_disp_cher(0,1,dsa);
        }
        }
        #endif


        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: 51單片機(jī)按鍵搶答

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 桐梓县| 信丰县| 宽甸| 开阳县| 曲松县| 库尔勒市| 来宾市| 安泽县| 资溪县| 凭祥市| 德钦县| 浦江县| 天长市| 武穴市| 汤阴县| 江永县| 荣成市| 金乡县| 上高县| 林口县| 齐齐哈尔市| 扎囊县| 莱阳市| 卓资县| 阿勒泰市| 江油市| 横峰县| 侯马市| 原平市| 隆昌县| 镇赉县| 通州区| 徐闻县| 杭锦旗| 南昌市| 梅州市| 临泽县| 巴彦淖尔市| 安顺市| 察雅县| 朝阳区|