📄 测试.c
字号:
#include <ht46r54.h>
#define uchar unsigned char
#define uint unsigned int
//延时程序;
void delay_us(int t)
{
do
t--;
while(t>1);
}
void delay_ms(unsigned long int t)
{
while(t!=0)
{
delay_us(1000);
t--;
}
}
void F7400() //2输入四与非门
{
_pac=0xdb;
_pbc=0xb7;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa5=!(_pa6&&_pa7);
_pa2=!(_pa3&&_pa4);
_pb3=!(_pb1&&_pb2);
_pb6=!(_pb4&&_pb5);
}
}
void F7402() //2输入四或非门
{
_pac=0x6f;
_pbc=0xed;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa7=!(_pa5||_pa6);
_pa4=!(_pa2||_pa3);
_pb1=!(_pb2||_pb3);
_pb4=!(_pb5||_pb6);
}
}
void F7404() //六反相器
{
_pac=0xab;
_pbc=0xab;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa6=!_pa7;
_pa4=!_pa5;
_pa2=!_pa3;
_pb2=!_pb1;
_pb4=!_pb3;
_pb6=!_pb5;
}
}
void F7408() //2输入四与门
{
_pac=0xdb;
_pbc=0xb7;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa5=_pa6&&_pa7;
_pa2=_pa3&&_pa4;
_pb3=_pb1&&_pb2;
_pb6=_pb4&&_pb5;
}
}
void F7410() //3输入端3与非门
{
_pac=0xfb;
_pbc=0xbb;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa2=!(_pa3&&_pa4&&_pa5);
_pb2=!(_pb1&&_pa6&&_pa7);
_pb6=!(_pb3&&_pb4&&_pb5);
}
}
void F7411() //3输入端3与门
{
_pac=0xfb;
_pbc=0xbb;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa2=_pa3&&_pa4&&_pa5;
_pb2=_pb1&&_pa6&&_pa7;
_pb6=_pb3&&_pb4&&_pb5;
}
}
void F7420() //4输入双与非门
{
_pac=0xfb;
_pbc=0xbf;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa2=!(_pa3&&_pa4&&_pa6&&_pa7);
_pb6=!(_pb1&&_pb2&&_pb4&&_pb5);
}
}
void F7421() //4输入双与门
{
_pac=0xfb;
_pbc=0xbf;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa2=_pa3&&_pa4&&_pa6&&_pa7;
_pb6=_pb1&&_pb2&&_pb4&&_pb5;
}
}
void F7427() //3输入3或非门
{
_pac=0xfb;
_pbc=0xbb;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pb2=!(_pb1||_pa6||_pa7);
_pa2=!(_pa3||_pa4||_pa5);
_pb6=!(_pb3||_pb4||_pb5);
}
}
void F7430() //与输入与非门
{
_pac=0xff;
_pbc=0xbf;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pb6=!(_pa2&&_pa3&&_pa4&&_pa5&&_pa6&&_pa7&&_pb2&&_pb3);
}
}
void F7432() //2输入4或门
{
_pac=0xdb;
_pbc=0xb7;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa5=_pa6||_pa7;
_pa2=_pa3||_pa4;
_pb3=_pb1||_pb2;
_pb6=_pb4||_pb5;
}
}
void F74138()
{
_pac=0x00;
_pbc=0xff;
_pa=0xff;
_pb=0xff;
while(_pb0==0)
{
_pa=~(1<<(_pb>>5));
}
}
void main()
{// I/O口初始化;
uint key,x;
char i,j,y;
i=0;
j=0;
_pac=0xff; //pa为输入口;
_pbc=0xff;
_pcc=0x00;
_pa=0xff; //pa口置1;
_pb=0xff; //pb口复初值0;
_pc=0xff;
while(1)
{
while(_pb0!=0)
{
_pc|=0x10;
while(x==key){key=_pb<<8|_pa;if(_pb0==0){break;}}
x=key;
delay_ms(200);
switch(key)
{
case 0xff7f:i--;if(i<0){i=3;}
_pc=0x10|(j*4+i);
break;//上
case 0xffbf:i++;if(i>3){i=0;}
_pc=0x10|(j*4+i);
break;//下
case 0xffdf:j--;if(j<0){j=2;}
_pc=0x10|(j*4+i);
break;//左
case 0xffef:j++;if(j>2){j=0;}
_pc=0x10|(j*4+i);
break;//右
//case 0xfff7:_pc=0x0f&(j*4+i);break;//确定
//case 0xfffb:break;//返回
break;
}
}
_pc&=0x0f;
y=j*4+i;
switch(y)
{
case 0:F7400();break;
case 1:F7402();break;
case 2:F7404();break;
case 3:F7408();break;
case 4:F7410();break;
case 5:F7411();break;
case 6:F7420();break;
case 7:F7421();break;
case 8:F7427();break;
case 9:F7430();break;
case 10:F7432();break;
case 11:F74138();break;
break;
}
_pac=0xff; //pa为输入口;
_pbc=0xff;
_pa=0xff; //pa口置1;
_pb=0xff; //pb口复初值0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -