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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2566|回復: 4
收起左側

這個單片機16個按鍵顯示平方的程序實現不了啊,數碼管會閃爍

[復制鏈接]
ID:745469 發表于 2020-6-2 11:26 | 顯示全部樓層 |閱讀模式
按下矩陣鍵盤中的16個按鍵,依次在數碼管上顯示1~16的平方,如按下第一個按鍵顯示1,第二個按鍵顯示4,……,第十六個按鍵顯示256。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar b,bai,shi,ge;
uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
sbit dula=P2^6;
sbit wela=P2^7;
uchar keycan(void);
void delay(uint z);
void display(uchar bai,uchar shi,uchar ge);
void main()
{
uchar key;
P0=0x00;
while(1)
{
key=keycan();
switch(key)
{
case 0xee: b=1*1; break;
case 0xde: b=2*2; break;
case 0xbe: b=3*3; break;
case 0x7e: b=4*4; break;
case 0xed: b=5*5; break;
case 0xdd: b=6*6; break;
case 0xbd: b=7*7; break;
case 0x7d: b=8*8; break;
case 0xeb: b=9*9; break;
case 0xdb: b=10*10; break;
case 0xbb: b=11*11; break;
case 0x7b: b=12*12; break;
case 0xe7: b=13*13; break;
case 0xd7: b=14*14; break;
case 0xb7: b=15*15; break;
case 0x77: b=16*16; break;
}
bai=b/100;
shi=b%100/10;
ge=b%10;
display(bai,shi,ge);
}
}
uchar keycan()
{
uchar cord_h,cord_l;
P3=0x0f;
cord_h=P3&0x0f;
if(cord_h!=0x0f)
{
delay(100);
cord_h=P3&0x0f;
if(cord_h!=0x0f)
{
P3=cord_h|0xf0;
cord_l=P3&0xf0;
return(cord_h+cord_l);
}
}return (0xff);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar bai,uchar shi,uchar ge)
{
dula=1;
P0=table[bai];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay(1);
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay(1);
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay(1);
}

批注 2020-06-02 112458.png
回復

使用道具 舉報

ID:332444 發表于 2020-6-2 20:42 | 顯示全部樓層
段碼取反試看,可能是段碼不對數碼管的型號。
回復

使用道具 舉報

ID:332444 發表于 2020-6-3 10:18 | 顯示全部樓層
錄像20_轉.gif 無標題.png
回復

使用道具 舉報

ID:213173 發表于 2020-6-3 14:40 | 顯示全部樓層
樓主顯示程序和按鍵程序都有毛病,給你改了試試。 無標題.jpg
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar c,bai,shi,ge;
  5. uint b;
  6. uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
  7. sbit dula=P2^6;
  8. sbit wela=P2^7;
  9. uchar keycan(void);
  10. void delay(uint z);
  11. void display(uchar bai,uchar shi,uchar ge);
  12. void main()
  13. {
  14.         uchar key;
  15.         P0=0x00;
  16.         while(1)
  17.         {
  18.                 key=keycan();
  19.                 switch(key)
  20.                 {
  21.                         case 0xee: b=1*1; break;
  22.                         case 0xde: b=2*2; break;
  23.                         case 0xbe: b=3*3; break;
  24.                         case 0x7e: b=4*4; break;
  25.                         case 0xed: b=5*5; break;
  26.                         case 0xdd: b=6*6; break;
  27.                         case 0xbd: b=7*7; break;
  28.                         case 0x7d: b=8*8; break;
  29.                         case 0xeb: b=9*9; break;
  30.                         case 0xdb: b=10*10; break;
  31.                         case 0xbb: b=11*11; break;
  32.                         case 0x7b: b=12*12; break;
  33.                         case 0xe7: b=13*13; break;
  34.                         case 0xd7: b=14*14; break;
  35.                         case 0xb7: b=15*15; break;
  36.                         case 0x77: b=16*16; break;
  37.                 }
  38.                 bai=b/100%10;
  39.                 shi=b/10%10;
  40.                 ge =b%10;
  41.                 display(bai,shi,ge);
  42.         }
  43. }
  44. uchar keycan()
  45. {
  46.         uchar cord_h,cord_l;

  47.         P3=0x0f;
  48.         cord_h=P3&0x0f;
  49.         if(cord_h!=0x0f)
  50.         {
  51.                 c++;
  52.                 if(cord_h!=0x0f && c==3)
  53.                 {
  54.                         c=2;
  55.                         cord_h=P3&0x0f;
  56.                         if(cord_h!=0x0f)
  57.                         {
  58.                                 P3=cord_h|0xf0;
  59.                                 cord_l=P3&0xf0;
  60.                                 return(cord_h+cord_l);
  61.                         }
  62.                 }return (0xff);
  63.         }
  64.         else c=0;
  65. }
  66. void delay(uint z)
  67. {
  68.         uint x,y;
  69.         for(x=z;x>0;x--)
  70.                 for(y=110;y>0;y--);
  71. }
  72. void display(uchar bai,uchar shi,uchar ge)
  73. {
  74.         P0=0x00;//段消隱
  75.         dula=1;
  76.         dula=0;
  77.         P0=0xf7;
  78.         wela=1;
  79.         wela=0;
  80.         P0=table[bai];
  81.         dula=1;
  82.         dula=0;
  83.         delay(1);

  84.         P0=0x00;
  85.         dula=1;
  86.         dula=0;
  87.         P0=0xef;
  88.         wela=1;
  89.         wela=0;
  90.         P0=table[shi];
  91.         dula=1;
  92.         dula=0;
  93.         delay(1);

  94.         P0=0x00;
  95.         dula=1;
  96.         dula=0;
  97.         P0=0xdf;
  98.         wela=1;
  99.         wela=0;
  100.         P0=table[ge];
  101.         dula=1;
  102.         dula=0;
  103.         delay(1);
  104. }
復制代碼





回復

使用道具 舉報

ID:332444 發表于 2020-6-5 11:01 | 顯示全部樓層
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97超碰免费 | 免费黄网站在线观看 | 日韩视频中文字幕 | 91免费在线视频 | 国产精品日韩欧美一区二区三区 | 五月精品视频 | 欧美黄视频 | 日本精品久久久久久久 | 91资源在线 | 日日夜夜视频 | 国产精品久久国产精品 | 日本一区不卡 | 国产高清免费视频 | 精品视频 免费 | 91精品国产91久久久 | 99热精品在线观看 | 欧美亚洲激情 | 日韩中文在线 | 欧美成人精品激情在线观看 | 欧美在线观看一区二区 | 国产精品我不卡 | 午夜激情影院 | 日韩aⅴ在线观看 | 日韩字幕一区 | 亚洲品质自拍视频网站 | 黄色一级电影在线观看 | 色眯眯视频在线观看 | 亚洲福利精品 | 韩国主播午夜大尺度福利 | 最新超碰 | 亚洲欧美一区二区三区国产精品 | 国产日韩欧美综合 | 色综合久久伊人 | 国产精品视频一区二区三区 | www.亚洲区 | 一区二区三区四区视频 | 婷婷综合色 | 天天在线操 | 91在线色视频 | 国产精品一区二区三区在线 | 天天爽天天干 |