久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1342|回復: 4
打印 上一主題 下一主題
收起左側

這個單片機程序怎樣才按鍵按一下發送aa,按一下發送bb。弄了幾天了!

[復制鏈接]
回帖獎勵 1 黑幣 回復本帖可獲得 1 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:582452 發表于 2019-8-2 22:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
*******************************/
#include <reg52.h>
#define Buzzer_time 350       //蜂鳴器鳴叫持續時間
#define uchar unsigned char
unsigned int Buzzer_count=0;        //蜂鳴器鳴叫持續時間計數器
sbit led=P2^0;
sbit led1=P2^1;
sbit KEY=P3^ 0;
sbit Buzzer=P1^5;                                           //定義獨立按鍵
bit KEYSTA = 1;                                             //按鍵的初始狀態

void Timer0Init();                                          //定時器初始化函數
void KeyProcess();                                          //按鍵處理函數

/*********************************************************************
* 函 數 名       : SendData
* 函數功能                 : 通過串口發送1字節數據給外部設備
* 參數列表       : c - 待發送的1字節數據
* 函數輸出             : 無
*********************************************************************/

void SendByte(unsigned char dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
/***************************************************
函數:串口初始化程序
如果只需要串口發送不需要串口接收就不必開串口接收中斷
**************************************************/
void InitUART(void)
{
SCON=0X50;
TMOD|=0X20;
PCON=0x80;                 //波特率4800//
TH1=0XF3;
TL1=0XF3;
TR1=1;
EA=1;
//ES=1; //打開串口中斷
}
void main()
{
    Timer0Init();
        InitUART();
    KeyProcess();
}

void Timer0Init()
{
    TMOD |= 0x01;
    TH0 = (65536-200)/256;           //定時2MS
    TL0 = (65536-200)%256;
    EA =1;                                                         
    ET0 = 1;
    TR0 = 1;
}
void KeyProcess()
{
    bit lasttime = 1;                        //定義前一次按鍵值,初始化為1;
    bit a=0;
    KEY = 0x01;                              //按鍵初始化;

    while(1)
    {
        if (KEYSTA != lasttime)              //如果“當前按鍵狀態”與“前一次按鍵狀態”不同,說明按鍵有動作;
        {
            if (lasttime == 1)                //如果按鍵有動作了,那么前一次按鍵狀態為“彈起”(lasttime == 1),說明按鍵按下時,會響應動作;
            {
                           led=~led;        
                                            Buzzer_count=Buzzer_time;
                                         SendByte(0xaa);}
                                           lasttime = KEYSTA;           //如果按鍵有動作,就更新前一次按鍵的值;
                                                            }
                                 if ( KEYSTA!=lasttime )              //如果“當前按鍵狀態”與“前一次按鍵狀態”不同,說明按鍵有動作;
        {
            if (lasttime ==1 )                //如果按鍵有動作了,那么前一次按鍵狀態為“彈起”(lasttime == 1),說明按鍵按下時,會響應動作;
            {
                           led=~led;        
                                            Buzzer_count=Buzzer_time;
                                         SendByte(0xbb);}
                                         
                                                                  
                                            lasttime = KEYSTA;            //如果按鍵有動作,就更新前一次按鍵的值;
                                                                                          
                                           }                 
                                                               
                           
                        }            
         }

        

void Timer0() interrupt 1                   //2MS中斷一次
{
    static keybuf = 0xFF;                   //定義一個靜態按鍵緩存變量,且值為FF;主要是暫存按鍵狀態;
   TH0 = (65536-200)/256;                   //定時2MS
    TL0 = (65536-200)%256;
        if(Buzzer_count!=0)
{
  Buzzer_count--;                                //每次進入中斷自減,減到0為止,才停止鳴叫//
  Buzzer=~Buzzer;                                //蜂鳴器響//
}

    keybuf = (keybuf << 1) | KEY;           //左移一位,使當前的按鍵狀態移到按鍵緩存中;
    if (keybuf == 0)                        //如果移8次,按鍵狀態都為0,說明按鍵真正按下;
    {
        KEYSTA = 0;                         //確定按鍵狀態為按鍵;
    }
    else if (keybuf == 0xFF)                //如果移8次,按鍵狀態都為1,說明按鍵未按下
    {
        KEYSTA = 1;
    }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2019-8-3 08:54 | 只看該作者
此帖僅作者可見

使用道具 舉報

板凳
ID:235200 發表于 2019-8-3 09:59 | 只看該作者
此帖僅作者可見

使用道具 舉報

地板
ID:582452 發表于 2019-8-3 18:17 | 只看該作者
此帖僅作者可見

使用道具 舉報

5#
ID:582452 發表于 2019-8-3 18:19 | 只看該作者
此帖僅作者可見

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 暖暖日本在线视频 | 色综合视频 | 日韩在线视频免费观看 | 欧美小视频在线观看 | 日日操视频 | 精品欧美一区二区三区精品久久 | 一区二区三区免费网站 | 国产精品a久久久久 | 天堂av免费观看 | 久久9视频| 成人3d动漫一区二区三区91 | 日本精品久久久久久久 | 伦理一区二区 | 日韩高清黄色 | 在线国产一区 | 国产美女视频一区 | 成人欧美一区二区三区白人 | 在线观看国产视频 | 成人免费激情视频 | 欧美精品久久久久久久久老牛影院 | 亚洲日本欧美日韩高观看 | 宅女噜噜66国产精品观看免费 | av电影一区二区 | 国产福利在线视频 | 日韩毛片 | 午夜免费在线观看 | 成年人的视频免费观看 | 国内精品久久久久久 | 亚洲欧美一区在线 | 国产精品一区久久久 | 欧美高清视频 | 精品国产一区二区三区免费 | 黄色毛片大全 | 成人不卡视频 | 一级欧美 | 亚洲一区在线日韩在线深爱 | 亚洲欧美日韩一区 | 在线播放第一页 | 91国在线视频 | 91婷婷韩国欧美一区二区 | 久久久久久免费毛片精品 |