TR0=1; temp=temp & 0x0f; while(temp!=0x0f) { temp=P3; temp=temp & 0x0f; } TR0=0;#include unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;sbit P1_0=P1^0;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 10:33:31
TR0=1; temp=temp & 0x0f; while(temp!=0x0f) { temp=P3; temp=temp & 0x0f; } TR0=0;#include unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;sbit P1_0=P1^0;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_
TR0=1; temp=temp & 0x0f; while(temp!=0x0f) { temp=P3; temp=temp & 0x0f; } TR0=0;
#include
unsigned char temp;
unsigned char key;
unsigned char i,j;
unsigned char STH0;
unsigned char STL0;
sbit P1_0=P1^0;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
unsigned int code tab[]={64021,64103,64260,64400,
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
void main(void)
{
TMOD=0x01;
ET0=1;
EA=1;
while(1)
{
P3=0xff;
P3_7=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=0;
break;
case 0x0d:
key=1;
break;
case 0x0b:
key=2;
break;
case 0x07:
key=3;
break;
}
temp=P3;
P1_0=~P1_0;
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
}
}
简易电子琴部分程序
TR0=1; temp=temp & 0x0f; while(temp!=0x0f) { temp=P3; temp=temp & 0x0f; } TR0=0;#include unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;sbit P1_0=P1^0;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_
TR0 = 1;
temp = temp & 0x0f;//0x0f是掩码,作用是取temp的低四位,比如temp=0xfff1;和0x0f取掩码之后就变成了0x01
while (temp != 0x0f) //循环里面貌似没什么值得解释的吧
{
temp = P3;
temp = temp & 0x0f;
}
TR0 = 0;