欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1640|回復: 6
收起左側

求一個關于實現按鍵顯示字符的單片機代碼

[復制鏈接]
ID:1098647 發表于 2023-11-6 01:58 | 顯示全部樓層 |閱讀模式
實現按鍵檢測功能,0-F按鍵中有一個按鍵按下,數碼管顯示對應的字符,并且LED0-7顯示對應的二進制字節。自己寫的代碼有問題 在2樓
1699206945539.jpg
回復

使用道具 舉報

ID:1098647 發表于 2023-11-6 02:03 | 顯示全部樓層
我自己寫了個代碼,但是為什么運行出來不對,有兩個警報
#include<reg51.h>,
#define uchar unsigned char
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
uchar dis[16]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,oxa1,0x86.0x8e};
unsigned int time;
delay(time)
{
unsigned int j;
for(j=0;j<time;j++)
{}
}
main()
{
uchar temp;
uchar k,i;
while(1)
{
  P1=0xef;
  for(i=0;i<=3;i=i++)
  {
   if (L1==0) P0= dis[i*4+0];
   if (L2==0) P0= dis[i*4+1];
   if (L3==0) P0= dis[i*4+2];
   if (L4==0) P0= dis[i*4+3];
   delay(500)
   temp=P1;
   temp=temp|0x0f;
   temp=temp<<1;
   temp=temp|0x0f;
   P1=temp;
   }
  }
}
回復

使用道具 舉報

ID:120219 發表于 2023-11-6 04:20 | 顯示全部樓層
P0沒上拉電阻
回復

使用道具 舉報

ID:584814 發表于 2023-11-6 08:13 | 顯示全部樓層
#include<reg51.h>
#define uchar unsigned char
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
uchar dis[16]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned int time;
void delay(time)
{
unsigned int j;
for(j=0;j<time;j++)
{}
}
void main()
{
uchar temp;
uchar k,i;
while(1)
{
  P1=0xef;
  for(i=0;i<=3;i=i++)
  {
   if (L1==0) P0= dis[i*4+0];
   if (L2==0) P0= dis[i*4+1];
   if (L3==0) P0= dis[i*4+2];
   if (L4==0) P0= dis[i*4+3];
   delay(500);
   temp=P1;
   temp=temp|0x0f;
   temp=temp<<1;
   temp=temp|0x0f;
   P1=temp;
   }
  }
}
已進行修改,可通過編譯,不保證運行。
主要問題:符號錯亂,包括但不限于丟失、全角、錯用等。
個人感覺:搞科研的如果不細心不如不做,不喜歡自己檢查的不如不玩。
回復

使用道具 舉報

ID:161164 發表于 2023-11-6 08:54 | 顯示全部樓層

  1. unsigned int time;
  2. delay(time)
  3. {
  4. unsigned int j;
  5. for(j=0;j<time;j++)
  6. {}
  7. }
復制代碼

改為
  1. void delay(unsigned int time)
  2. {
  3. unsigned int j;
  4. for(j=0;j<time;j++)
  5. {}
  6. }
復制代碼



回復

使用道具 舉報

ID:180919 發表于 2023-11-6 09:12 | 顯示全部樓層
標點錯的地方太多了。
#include<reg51.h>
#define uchar unsigned char
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
uchar dis[16]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned int time;
void delay(time)
{
unsigned int j;
for(j=0;j<time;j++);

}
main()
{
uchar temp;
uchar i;
while(1)
{
  P1=0xef;
  for(i=0;i<=3;i=i++)
  {
   if (L1==0) P0= dis[i*4+0];
   if (L2==0) P0= dis[i*4+1];
   if (L3==0) P0= dis[i*4+2];
   if (L4==0) P0= dis[i*4+3];
   delay(500);
   temp=P1;
   temp=temp|0x0f;
   temp=temp<<1;
   temp=temp|0x0f;
   P1=temp;
   }
  }
}
回復

使用道具 舉報

ID:1098647 發表于 2023-11-6 12:03 | 顯示全部樓層
man1234567 發表于 2023-11-6 08:13
#include
#define uchar unsigned char
sbit L1=P1^0;

感謝大佬指正
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表