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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3750|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

簡單任務(wù)之四位數(shù)碼管求助,新手求助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
在實(shí)驗(yàn)板上欲實(shí)現(xiàn)一個(gè)簡單的功能,按K1鍵 數(shù)碼管LED1 顯1  按K2鍵 數(shù)碼管LED2 顯2  按K3鍵 數(shù)碼管LED3 顯3 按K4鍵 數(shù)碼管LED1 顯4問題?現(xiàn)在按K1四個(gè)管子同時(shí)顯示1,其它按鍵也是四個(gè)數(shù)碼管同時(shí)顯示,不知問題出在那里,請高手指正,萬分感謝!
實(shí)驗(yàn)板圖紙




下面是C代碼
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define LED P2
#define SMG P0                          //數(shù)碼管段選
#define GPIO_PLACE P1        //位選
sbit K1=P1^4;                          //位操作
sbit K2=P1^5;
sbit K3=P1^6;
sbit K4=P1^7;

sbit ws1=P1^0;                         //數(shù)碼管位選
sbit ws2=P1^1;
sbit ws3=P1^2;
sbit ws4=P1^3;

unsigned char code DIG_CODE[17] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼


void delay5(uint);

main()
{
        SMG=0xff;
        while(1)
        {
                if((P1&0xf0)!=0xff){
                        delay5(1);
                        SMG=0xff;
                        switch(P1&0xf0)
                        {
                                case 0xe0:SMG=DIG_CODE[1];ws1=0;delay5(1);ws1=1;break;
                            case 0xd0:SMG=DIG_CODE[2];ws2=0;delay5(1);ws2=1;break;
                                case 0xb0:SMG=DIG_CODE[3];ws3=0;delay5(1);ws3=1;break;
                            case 0x70:SMG=DIG_CODE[4];ws4=0;delay5(1);ws4=1;break;  
                        }
                }
        }
}

void delay5(uint c)                 //延時(shí)5ms
{
         uchar a,b;
         for(;c>0;c--)
                 for(b=19;b>0;b--)
                        for(a=130;a>0;a--);

}



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

使用道具 舉報(bào)

沙發(fā)
ID:118098 發(fā)表于 2016-8-25 10:21 | 只看該作者
簡單任務(wù)
回復(fù)

使用道具 舉報(bào)

板凳
ID:136609 發(fā)表于 2016-8-25 10:31 | 只看該作者
case語句少了大括號吧,應(yīng)該是case 0xe0:{SMG=DIG_CODE[1];ws1=0;delay5(1);ws1=1;}break;
回復(fù)

使用道具 舉報(bào)

地板
ID:118098 發(fā)表于 2016-8-25 10:38 | 只看該作者
thest 發(fā)表于 2016-8-25 10:31
case語句少了大括號吧,應(yīng)該是case 0xe0:{SMG=DIG_CODE[1];ws1=0;delay5(1);ws1=1;}break;

按你說的試了,不可以的
回復(fù)

使用道具 舉報(bào)

5#
ID:137549 發(fā)表于 2016-8-25 10:38 | 只看該作者
按key1的時(shí)候把LED1為1其他的全部寫為0;
switch(P1&0xf0)
{
    case 0xe0:
          ws1=1;ws2=0;ws3=0;ws4=0;
          SMG=DIG_CODE[1];
          break;
   case 0xd0:;;break; 同上打開相應(yīng)的led位
   case 0xb0:;;;break;
   case 0x70:;;break;  
}
回復(fù)

使用道具 舉報(bào)

6#
ID:39386 發(fā)表于 2016-8-25 15:18 | 只看該作者
switch(P1&0xf0)
{
    case 0xe0:
          ws1=1;ws2=0;ws3=0;ws4=0;
          SMG=DIG_CODE[1];
          break;
   case 0xd0:;;break; 同上打開相應(yīng)的led位
   case 0xb0:;;;break;
   case 0x70:;;break;  
}
回復(fù)

使用道具 舉報(bào)

7#
ID:118098 發(fā)表于 2016-8-25 16:53 | 只看該作者
找到問題出在那了,還是要謝謝你們
回復(fù)

使用道具 舉報(bào)

8#
ID:118098 發(fā)表于 2016-8-25 16:54 | 只看該作者
huangfuxi2002 發(fā)表于 2016-8-25 15:18
switch(P1&0xf0)
{
    case 0xe0:

找到問題出在那了,還要是謝謝你
回復(fù)

使用道具 舉報(bào)

9#
ID:118098 發(fā)表于 2016-8-25 16:54 | 只看該作者
huangfuxi2002 發(fā)表于 2016-8-25 15:18
switch(P1&0xf0)
{
    case 0xe0:

找到問題了,還是要謝謝你們
回復(fù)

使用道具 舉報(bào)

10#
ID:118098 發(fā)表于 2016-8-25 16:56 | 只看該作者
找到問題了,還是要謝謝你們
回復(fù)

使用道具 舉報(bào)

11#
ID:137239 發(fā)表于 2016-8-26 01:04 | 只看該作者
讀輸入的時(shí)候要把P1^4~P1^7拉高,也就是置一,其他的寫零,也就是P1=0xf0;除此之外,還要考慮到按鍵抖動,這點(diǎn)樓主是考慮到了,不過感覺有些不妥,有些啰嗦,不知道樓主把數(shù)碼管段選都置一是什么意思?建議樓主可以這樣寫:
void main()
{
    P1=0xf0;
while(1)
    {
         if((P1|0x00)!=0xf0)
         {
      delay5(1);//延時(shí)消抖
   if((P1&0x00)!=0xf0)
   {
     switch(P1&0xf0)
              {
                    case 0xe0:SMG=DIG_CODE[1];ws1=1;delay5(400);ws1=0;break; //延時(shí)加長,這樣看到的時(shí)間長點(diǎn)
                    case 0xd0:SMG=DIG_CODE[2];ws2=1;delay5(400);ws2=0;break;//NPN型三極管,發(fā)射極接地,高電平導(dǎo)通,做開關(guān)用
                    case 0xb0:SMG=DIG_CODE[3];ws3=1;delay5(400);ws3=0;break;
                    case 0x70:SMG=DIG_CODE[4];ws4=1;delay5(400);ws4=0;break;  
              }
   }                       
         }
    }
}

回復(fù)

使用道具 舉報(bào)

12#
ID:137239 發(fā)表于 2016-8-26 02:19 來自手機(jī) | 只看該作者
likemanweb 發(fā)表于 2016-8-25 16:56
找到問題了,還是要謝謝你們

是哪里出了問題?可否告知一下?
回復(fù)

使用道具 舉報(bào)

13#
ID:5564 發(fā)表于 2016-8-26 09:29 | 只看該作者
是不是沒有采用動態(tài)掃描
回復(fù)

使用道具 舉報(bào)

14#
ID:137239 發(fā)表于 2016-8-26 13:04 | 只看該作者
likemanweb 發(fā)表于 2016-8-25 16:53
找到問題出在那了,還是要謝謝你們

樓主方便說說是哪里出了問題嗎?
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄色国产大片 | 免费成人高清在线视频 | 久久久成人精品 | 日韩欧美三区 | 中文字幕成人免费视频 | 国产成人免费观看 | 欧美11一13sex性hd| 久久免费观看一级毛片 | 亚洲高清在线 | 国产精品久久久久久久久久久久 | 一级片成人 | 国产免费一区二区三区 | 午夜影院| 日韩在线一区二区三区 | 四色永久| aacc678成免费人电影网站 | 成人在线中文字幕 | 日韩电影中文字幕 | 精品成人一区二区 | 亚洲国产第一页 | 一区二区三区四区在线视频 | av在线一区二区三区 | 亚洲国产一区二区三区 | 久久精品手机视频 | 亚洲综合二区 | 精品国模一区二区三区欧美 | 亚洲在线视频 | av国产精品毛片一区二区小说 | 91精品国产综合久久小仙女图片 | 国产成人在线一区二区 | 国产精品亚洲一区 | 久久久女| 日韩第一区| 精品欧美一区二区精品久久久 | 97国产精品视频人人做人人爱 | 九九热在线视频免费观看 | 成人在线视频一区 | 成人免费看电影 | 欧美日一区 | 四虎首页 | 成人一区二区三区 |