找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2800|回复: 3
收起左侧

单片机流水灯编译错误error C161: 'Z': formal parameter ignoredTarget not created

[复制链接]
ID:503720 发表于 2019-12-21 02:23 | 显示全部楼层 |阅读模式
B.C(50): error C161: 'Z': formal parameter ignoredTarget not created  编译错误!
  1. /************************************************************/
  2. /*            程序名:可控流水灯                           */
  3. /* 功能:实现流水灯的方向、速度、亮度控制                 */
  4. /*         硬件:P2 接开关,P1接LED ,数码管显示。                           */
  5. /************************************************************/
  6. #include<reg52.h>
  7. #include <intrins.h>
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10.   
  11. sbit K1=P2^0; //方向
  12. sbit K2=P2^1; //加速
  13. sbit K3=P2^2; //减速
  14. sbit K4=P2^3; //加亮
  15. sbit K5=P2^4; //变暗
  16. unsigned char Speed,LED;
  17. unsigned int tCount=0;  
  18. unsigned char Idx; //速度取值索引
  19. unsigned char  DelayMS;
  20. bit Dirtect=1; //滚动方向

  21. char duty=10; //占空比
  22. unsigned int code sTable[]={0,1,3,7,9,15,30,50,100,200,230,280,300,350}; //调速表
  23. unsigned char code seg_table[ ]={0xc0,0xf9,0xa4,0xb0,
  24. 0x99,0x92,0x82,0xf8,
  25. 0x80,0x90,0x88,0x83,
  26. 0xc6,0xa1,0x86,0x8e
  27. }; //数组缺少 [ ] ,要加code
  28. void delay_key(int i)
  29. {
  30.    for (i=0;i<0;i++);
  31. P1=0x00;
  32. while(1)
  33.    {


  34.    unsigned char delay_key(Z);  
  35.    void delay_key(unsigned int Z )
  36.     while(Z--) for(i=0;i<9;i++);

  37. }

  38.    P1=seg_table[i];
  39.   i=(i+1)%10;/*显示0-9*/
  40.      delay_key(200);

  41. }
  42. void InitTimer0_Timer1(void);
  43. void delay(unsigned int x)
  44. {  
  45.     unsigned char i;  
  46.     while(x--) for(i=0;i<20;i++);
  47. }
  48.     unsigned char GetKey(void)
  49. {  
  50.     unsigned char K;  
  51.     if(P2==0xFF) return 0;
  52.     delay(10);  
  53.     switch(P2)
  54. {  
  55.      case 0xFE:K=1;break;
  56.      case 0xFD:K=2;break;
  57.      case 0xFB:K=3;break;
  58.      case 0xF7:K=4;break;
  59.      case 0xEF:K=5;break;
  60.      default: K=0;break;
  61. }  
  62.       while(P2!=0xFF); //等待释放按键
  63.       return K;
  64. }
  65. void KeyProcess(unsigned char Key)
  66. {  
  67.     switch(Key)
  68.    {  
  69.      case 1:Dirtect=~Dirtect;break; //方向
  70.      case 2:if(Idx>1) Speed=sTable[--Idx];break;//加速
  71.      case 3:if(Idx<15) Speed=sTable[++Idx];break;//减速
  72.      case 4:duty++;if(duty>=20) duty=20;break; //加亮
  73.      case 5:duty--;if(duty<=0) duty=1; break;//变暗
  74.     }
  75. }
  76.   void main()
  77. {  
  78.        unsigned char Key;
  79.        P0=P2=P1=0xFF;
  80.        Idx=4;  
  81.        Speed=sTable[Idx];
  82.        IP=0x02;  //中断优先级
  83.        InitTimer0_Timer1();
  84.        LED = 0xfe;
  85.        P0 = LED;
  86.        while(1)
  87.     {  
  88.        Key=GetKey();  
  89.        if(Key!=0) KeyProcess(Key);
  90.       }
  91. }

  92. /******************************************************************/
  93. /*       定时器0和定时器1初始化                                 */  

  94. /******************************************************************/
  95. void InitTimer0_Timer1(void)
  96. {  
  97.    TMOD = 0x20;
  98.    TH1 = 0x06;
  99.    TL1 = 0x06;
  100.    EA = 1;
  101.    ET0 = 1;
  102.    TR0 = 1;
  103.    ET1 = 1;
  104.    TR1 = 1;
  105. }
  106. /******************************************************************/
  107. /*                     定时器中断函数                             */
  108. /******************************************************************/
  109. void timer0(void) interrupt 1
  110. {  
  111.      if(++tCount<Speed) return;
  112.      tCount=0;  
  113.      if(Dirtect==1) LED = _cror_(LED,1); //循环右移1位,点亮下一个LED
  114.      else LED=_crol_(LED,1);
  115.      P0=LED;
  116. }
  117.       void Timer1(void) interrupt 3 //调节占空比
  118. {  
  119.        static char t=0;
  120.        t++;
  121.        if(t==20)
  122.    {
  123.        t=0;
  124.        P0=(0x00|LED);
  125.     }
  126.        if(duty==t) P0=0xFF;
  127. }
复制代码


回复

使用道具 举报

ID:669787 发表于 2019-12-21 18:35 | 显示全部楼层
#include <reg52.h>
#include <intrins.h>
sbit beep=P1^5;
typedef unsigned int uint;
void delay1(uint n)
{
uint i;
while (n--)
{
for(i=0;i<125;i++);
}
void main()
{ l
uint i;
P2=0x80;
while (1)
for(i=0;i<7;i++)
{
P2=_cror_(P2,1);
delay1(500);
}
for(i=0;i<7;i++)
f
P2= crol _(P2,1);
delay1(500);
}
{
beep=!beep;
delay1(1000);
}
}
}
}
回复

使用道具 举报

ID:275826 发表于 2019-12-22 18:08 | 显示全部楼层
去掉void delay_key(int i)
{
   for (i=0;i<0;i++);
P1=0x00;
while(1)
   {


   unsigned char delay_key(Z);  
   void delay_key(unsigned int Z )
    while(Z--) for(i=0;i<9;i++);

}

   P1=seg_table[i];
  i=(i+1)%10;/*显示0-9*/
     delay_key(200);

}
回复

使用道具 举报

ID:669481 发表于 2019-12-22 18:55 来自手机 | 显示全部楼层
这个程序可以吧
2019-12-22_18.55.05.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表