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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4919|回復(fù): 17
收起左側(cè)

單片機(jī)2個(gè)IO口6按鍵輸入 源程序與仿真

  [復(fù)制鏈接]
ID:66287 發(fā)表于 2022-3-4 10:55 | 顯示全部樓層 |閱讀模式
網(wǎng)上見(jiàn)到別人寫的2IO 6Key程序,但一直運(yùn)行不成功,認(rèn)真琢磨了一陣,終于成功。現(xiàn)分享出來(lái),以供同好參考。
注意:Proteus仿真不行,但在開(kāi)發(fā)板上正常運(yùn)行。

//CPU:STC89C52單片機(jī)
#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  //判斷是否為抖動(dòng)和取鍵值
uchar key=0;
bit KEY_1_ON=0;          //按鍵分為2組,1,2,3為第一組,4,5,6為第二組
                                   //KEY_1_ON 為第一組按下標(biāo)志
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;
   }
  }
}
f73ada89ef5dc0774e8d02a38672ee4.jpg 無(wú)標(biāo)題.png
呵呵,重要的東東不能忘,這是按鍵部分的接線圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
無(wú)標(biāo)題.png

51hei.png

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

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2022-3-4 15:35 | 顯示全部樓層

e230521d40e131bc3f7c0dbfa7ddcf0.jpg
這個(gè)運(yùn)行圖片清晰些,特別穩(wěn)定!
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2022-3-7 10:14 | 顯示全部樓層
“網(wǎng)上見(jiàn)到別人寫的2IO 6Key程序,但一直運(yùn)行不成功,認(rèn)真琢磨了一陣,終于成功。”
這句話是筆誤,我想說(shuō)的是“”網(wǎng)上見(jiàn)到別人寫的2IO 6Key程序,但一直運(yùn)行不成功,自己琢磨了一陣,認(rèn)真重寫了代碼,終于成功。“真正是自己創(chuàng)作的,非抄襲。
重申一遍:Proteus仿真不行,開(kāi)發(fā)板上運(yùn)行正常。
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2022-3-23 16:07 | 顯示全部樓層

經(jīng)努力,現(xiàn)完全仿真成功。
貼上運(yùn)行圖:
無(wú)標(biāo)題.png
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 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  //判斷是否為抖動(dòng)和取鍵值

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

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

void Timer0_Init();     //定時(shí)器初始化
void keyboard();
void main()
{
  P1M1=0x03;    //P0^0及P0^1配置成開(kāi)漏模式  
  P1M0=0x03;    //這樣在要讀外部狀態(tài)時(shí),對(duì)該位寫"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;
   }
  }
}
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2022-3-23 16:14 | 顯示全部樓層
void Timer0_Init()  //定時(shí)器初始化
  {    //10毫秒@12.000MHz
    AUXR &= 0x7F;                //定時(shí)器時(shí)鐘12T模式
    TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
    TMOD |= 0x01;                //設(shè)置定時(shí)器模式
    TL0 = 0xF0;                  //設(shè)置定時(shí)初始值
    TH0 = 0xD8;                  //設(shè)置定時(shí)初始值
    TR0 = 1;                    //定時(shí)器0開(kāi)始計(jì)時(shí)
    ET0 =1;
   EA = 1;
}

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

keyboard() 函數(shù)在附件中,無(wú)變化。
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2022-3-23 21:03 來(lái)自手機(jī) | 顯示全部樓層
樓主真牛人!!!
回復(fù)

使用道具 舉報(bào)

ID:977804 發(fā)表于 2022-3-23 22:21 來(lái)自手機(jī) | 顯示全部樓層
少引腳的芯片非常需要
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2022-3-24 08:28 | 顯示全部樓層
這是更新后的Keil代碼與Proteus仿真文件。

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

使用道具 舉報(bào)

ID:170318 發(fā)表于 2022-3-24 09:47 | 顯示全部樓層
樓主確實(shí)是大拿。不過(guò)用帶有ADC口的,可以一個(gè)口實(shí)現(xiàn)好多個(gè)按鍵功能
回復(fù)

使用道具 舉報(bào)

ID:977804 發(fā)表于 2022-3-24 12:51 | 顯示全部樓層
可惜仿真是8.0以上版本的,下載下來(lái)想仿真試試,
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2022-3-25 08:29 | 顯示全部樓層
Proteus低版本無(wú)STC芯片仿真模塊,需要Proteus 8.9 sp2的,
我這是綠色免安裝版。
回復(fù)

使用道具 舉報(bào)

ID:136119 發(fā)表于 2022-3-25 08:51 | 顯示全部樓層
我最多能實(shí)現(xiàn)3個(gè)按鍵,6個(gè)厲害了,程序保留后期研究。
回復(fù)

使用道具 舉報(bào)

ID:430492 發(fā)表于 2022-3-26 14:13 | 顯示全部樓層
回頭找找一個(gè)IO,通用ADC整的4個(gè)按鍵的代碼,幾年前的看還能不能找著。
回復(fù)

使用道具 舉報(bào)

ID:513507 發(fā)表于 2022-12-28 17:10 | 顯示全部樓層
厲害!2線6按鍵
回復(fù)

使用道具 舉報(bào)

ID:398219 發(fā)表于 2023-1-27 21:39 | 顯示全部樓層
歷害,但是研究了程序,有點(diǎn)點(diǎn)頭緒,但是摸不準(zhǔn)原理~!漢~
回復(fù)

使用道具 舉報(bào)

ID:47652 發(fā)表于 2023-1-28 07:01 | 顯示全部樓層
2線6鍵的實(shí)現(xiàn)省下很多io口啊,謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:433219 發(fā)表于 2023-1-31 14:57 | 顯示全部樓層
3個(gè)io識(shí)別22個(gè)按鍵,,,缺點(diǎn),費(fèi)腦瓜子
3io-22key-1.gif
3io-22key-2.jpg
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲日本成人 | 狠狠操狠狠| av中文字幕在线观看 | 在线小视频 | 国产成人精品一区二区三区四区 | 久久一 | 羞羞视频免费观看 | 欧美啊v在线观看 | 午夜电影在线播放 | 色成人免费网站 | 国产精品免费一区二区 | 日韩一区二区三区视频在线观看 | 亚洲精品国产一区 | 91精品国产综合久久精品 | 国产69久久精品成人看动漫 | 亚洲成人黄色 | 欧美成人自拍视频 | 国产精品亚洲成在人线 | 国产精品久久久久久久久久久久久久 | 成人亚洲视频 | 亚洲精品无人区 | 9久9久9久女女女九九九一九 | 精品欧美一区二区精品久久久 | 国产精品自拍av | 在线视频一区二区三区 | 久久91精品久久久久久9鸭 | 久久九七 | 久久精品免费观看 | 精品久| 国产成人福利在线观看 | 99精品久久 | 九九精品网 | 一区二区三区视频在线免费观看 | 天天操天天射天天舔 | 欧美久久免费观看 | 一起操网站 | 野狼在线社区2017入口 | 国产免费一区二区三区 | 亚洲国产aⅴ精品一区二区 免费观看av | 欧美黑人一区二区三区 | 中文字幕在线观看一区 |