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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機2個IO口6按鍵輸入 源程序與仿真

  [復制鏈接]
跳轉到指定樓層
樓主
ID:66287 發表于 2022-3-4 10:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
網上見到別人寫的2IO 6Key程序,但一直運行不成功,認真琢磨了一陣,終于成功。現分享出來,以供同好參考。
注意:Proteus仿真不行,但在開發板上正常運行。

//CPU:STC89C52單片機
#include <REG52.h>
#include <intrins.h>
sfr AUXR = 0x8E;
typedef  unsigned char  uchar;
typedef  unsigned int  uint;
#define key_state_0  0  //判斷是否按下
#define key_state_1  1  //判斷是否為抖動和取鍵值
uchar key=0;
bit KEY_1_ON=0;          //按鍵分為2組,1,2,3為第一組,4,5,6為第二組
                                   //KEY_1_ON 為第一組按下標志
sbit IO_1=P1^0;
sbit IO_2=P1^1;
void Timer0_Init();   
void keyboard();
void main()
{
  Timer0_Init();
  while(1)
   {
   switch(key)
    {  
    case 1:P2=0XFE;
           break;
    case 2:P2=0XFD;
           break;
    case 3:P2=0XFB;
           break;
    case 4:P2=0XF7;
           break;
    case 5:P2=0XEF;
           break;
    case 6:P2=0XDF;
           break;
   }
  }
}

呵呵,重要的東東不能忘,這是按鍵部分的接線圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




Keil代碼與Proteus仿真下載: 2io6key.rar (29.17 KB, 下載次數: 61)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:66287 發表于 2022-3-4 15:35 | 只看該作者


這個運行圖片清晰些,特別穩定!
回復

使用道具 舉報

板凳
ID:66287 發表于 2022-3-7 10:14 | 只看該作者
“網上見到別人寫的2IO 6Key程序,但一直運行不成功,認真琢磨了一陣,終于成功。”
這句話是筆誤,我想說的是“”網上見到別人寫的2IO 6Key程序,但一直運行不成功,自己琢磨了一陣,認真重寫了代碼,終于成功。“真正是自己創作的,非抄襲。
重申一遍:Proteus仿真不行,開發板上運行正常。
回復

使用道具 舉報

地板
ID:66287 發表于 2022-3-23 16:07 | 只看該作者

經努力,現完全仿真成功。
貼上運行圖:

回復

使用道具 舉報

5#
ID:66287 發表于 2022-3-23 16:12 | 只看該作者
//這是主程序
#include <REG52.h>
#include <intrins.h>
sfr AUXR = 0x8E;
typedef  unsigned char  uchar;
typedef  unsigned int  uint;
#define key_state_0  0  //判斷是否按下
#define key_state_1  1  //判斷是否為抖動和取鍵值

sfr  P1M1 = 0x91;
sfr  P1M0 = 0x92;

uchar key=0;
bit KEY_1_ON=0;   //按鍵分成兩組,1、2、3為第一組,4、5、6為第二組
                    //KEY_1_ON 為第一組按下標志
sbit IO_1=P1^0;
sbit IO_2=P1^1;

void Timer0_Init();     //定時器初始化
void keyboard();
void main()
{
  P1M1=0x03;    //P0^0及P0^1配置成開漏模式  
  P1M0=0x03;    //這樣在要讀外部狀態時,對該位寫"1"即可

  Timer0_Init();
  while(1)
   {
   switch(key)
    {  
    case 1:P2=0XFE;
           break;
    case 2:P2=0XFD;
           break;
    case 3:P2=0XFB;
           break;
    case 4:P2=0XF7;
           break;
    case 5:P2=0XEF;
           break;
    case 6:P2=0XDF;
           break;
   }
  }
}
回復

使用道具 舉報

6#
ID:66287 發表于 2022-3-23 16:14 | 只看該作者
void Timer0_Init()  //定時器初始化
  {    //10毫秒@12.000MHz
    AUXR &= 0x7F;                //定時器時鐘12T模式
    TMOD &= 0xF0;                //設置定時器模式
    TMOD |= 0x01;                //設置定時器模式
    TL0 = 0xF0;                  //設置定時初始值
    TH0 = 0xD8;                  //設置定時初始值
    TR0 = 1;                    //定時器0開始計時
    ET0 =1;
   EA = 1;
}

void Timer0() interrupt 1 //定時器中斷
{                     //16位自動重裝模式         
   keyboard();
}       

keyboard() 函數在附件中,無變化。
回復

使用道具 舉報

7#
ID:399179 發表于 2022-3-23 21:03 來自手機 | 只看該作者
樓主真牛人!!!
回復

使用道具 舉報

8#
ID:977804 發表于 2022-3-23 22:21 來自手機 | 只看該作者
少引腳的芯片非常需要
回復

使用道具 舉報

9#
ID:66287 發表于 2022-3-24 08:28 | 只看該作者
這是更新后的Keil代碼與Proteus仿真文件。

2io6key.rar (34.13 KB, 下載次數: 48)
回復

使用道具 舉報

10#
ID:170318 發表于 2022-3-24 09:47 | 只看該作者
樓主確實是大拿。不過用帶有ADC口的,可以一個口實現好多個按鍵功能
回復

使用道具 舉報

11#
ID:977804 發表于 2022-3-24 12:51 | 只看該作者
可惜仿真是8.0以上版本的,下載下來想仿真試試,
回復

使用道具 舉報

12#
ID:66287 發表于 2022-3-25 08:29 | 只看該作者
Proteus低版本無STC芯片仿真模塊,需要Proteus 8.9 sp2的,
我這是綠色免安裝版。
回復

使用道具 舉報

13#
ID:136119 發表于 2022-3-25 08:51 | 只看該作者
我最多能實現3個按鍵,6個厲害了,程序保留后期研究。
回復

使用道具 舉報

14#
ID:430492 發表于 2022-3-26 14:13 | 只看該作者
回頭找找一個IO,通用ADC整的4個按鍵的代碼,幾年前的看還能不能找著。
回復

使用道具 舉報

15#
ID:513507 發表于 2022-12-28 17:10 | 只看該作者
厲害!2線6按鍵
回復

使用道具 舉報

16#
ID:398219 發表于 2023-1-27 21:39 | 只看該作者
歷害,但是研究了程序,有點點頭緒,但是摸不準原理~!漢~
回復

使用道具 舉報

17#
ID:47652 發表于 2023-1-28 07:01 | 只看該作者
2線6鍵的實現省下很多io口啊,謝謝分享!
回復

使用道具 舉報

18#
ID:433219 發表于 2023-1-31 14:57 | 只看該作者
3個io識別22個按鍵,,,缺點,費腦瓜子


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日夜夜精品 | 久久久久久久久久久久久久久久久久久久 | 色花av| 欧美久操网 | 在线91| 国产成人精品一区二区三区网站观看 | 欧美在线色 | av毛片在线免费观看 | 国产精品视频在线观看 | 一区二区三区四区在线视频 | 久久亚洲欧美日韩精品专区 | 中文字幕欧美日韩一区 | 黄色一级毛片 | 日韩欧美中文在线 | 情侣酒店偷拍一区二区在线播放 | 一级黄色夫妻生活 | 欧美精品一区二区在线观看 | 中文字幕亚洲欧美日韩在线不卡 | 久久手机在线视频 | 欧美一区二区三区在线观看 | 久久久久久久久久久国产 | www.啪啪.com| 国产 日韩 欧美 制服 另类 | 性高湖久久久久久久久aaaaa | 日韩免费视频一区二区 | 久久99国产精品久久99果冻传媒 | 国产一区二区在线视频 | 免费在线观看一区二区 | 成人福利影院 | 日韩av最新网址 | 欧美精品一区三区 | 在线成人 | 亚洲国产欧美精品 | 综合久久一区 | 午夜影院在线 | 欧美人成在线视频 | 欧美aⅴ | 老牛嫩草一区二区三区av | 国产精品久久一区二区三区 | 国产精品theporn | 天天操夜夜操 |