0119

单片机抢答器设计

单片机 单个数码管实现抢答器

#include<reg52.h>



unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
/*
void delay()
{
unsigned int i = 0;
for(i = 0; i < 32500; i++);
}  */


void main (void)
{                
unsigned char i; 
i = 0; 
P1 = 0xff;
P2 = 0xff;


/* while (1)        
{
for(i=0;i<10;i++)  
{
P1=dofly_table[i]; 
delay();  
delay();   
}         
} */
while (1)    
{
switch(P2)                           //抢答器
{
    case 0xfe: if(i == 0)
{
P1=dofly_table[1];
i = 1;
}
break;
case 0xfd:if(i == 0)
{
P1=dofly_table[2];
i = 1;
}
break;
case 0xfb:if(i == 0)
{
P1=dofly_table[3];
i = 1;
}
break;
case 0xf7:if(i == 0)
{
P1=dofly_table[4];
i = 1;

break;
case 0xef:if(i == 0)
{
P1=dofly_table[5];
i = 1;
}  
break;
case 0xdf:if(i == 0)
{
P1=dofly_table[6];
i = 1;
}  
break;
case 0xbf:if(i == 0)
{
P1=dofly_table[7];
i = 1;
}
break;
case 0x7f:i = 0; P1 = 0xff;break;
default:break;   
  }
}
}
### 解决 C# 编译器错误 CS0119 的方法 C# 编译器错误 CS0119 表明表达式被误用为类型或将类型用于其他上下文中。通常情况下,这种错误发生在尝试将变量或方法作为类型来使用时。 #### 原因分析 当代码试图把一个不是类型的实体当作类型处理时会触发该错误。例如,在泛型参数位置上放置了一个实例而不是类名;或者是在需要指定类型的地方输入了函数名称而非返回的数据类型[^3]。 #### 示例说明 下面是一个会产生 CS0119 错误的例子: ```csharp // 这里会发生CS0119因为int.TryParse的结果不是一个有效的类型 List<int.TryParse> myList; ``` 为了修正这个问题,应该更正为如下形式之一: ```csharp // 正确的方式应该是这样定义列表并初始化它 var result = int.TryParse("42", out var number); if (result) { List<int> myList = new List<int>(); } ``` 另一个常见场景是混淆静态成员与其实例化对象之间的区别: ```csharp class MyClass { public static string MyMethod() => "Hello"; } MyClass.MyMethod myVar = null; // 尝试将以静态方式访问的方法视为类型 ``` 应改为: ```csharp string myVar = MyClass.MyMethod(); // 使用正确的类型声明字符串变量,并调用静态方法赋值给这个变量 ``` 通过以上调整可以有效消除此类编译期警告/错误信息。 #### 预防措施建议 - 确认所有的泛型参数都是实际存在的类型; - 当涉及到静态成员操作时,请确保不会将其误解成可实例化的类型; - 对于复杂的表达式求值逻辑,考虑拆分成多个简单语句以便更好地理解意图和调试潜在问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值