include <REGX52.H> sbit GH=P1^4; sbit AH=P1^3; sbit BH=P1^2; sbit CH=P1^1; sbit DH=P1^0; void Hang(unsigned char H) { switch(H) { case 1: DH=0;GH=0;CH=0;BH=0;AH=0; break; case 2: DH=0;GH=0;CH=0;BH=0;AH=1; break; case 3: DH=0;GH=0;CH=0;BH=1;AH=0; break; case 4: DH=0;GH=0;CH=0;BH=1;AH=1; break; case 5: DH=0;GH=0;CH=1;BH=0;AH=0; break; case 6: DH=0;GH=0;CH=1;BH=0;AH=1; break; case 7: DH=0;GH=0;CH=1;BH=1;AH=0; break; case 8: DH=0;GH=0;CH=1;BH=1;AH=1; break; case 9: DH=1;GH=0;CH=0;BH=0;AH=0; break; case 10: DH=1;GH=0;CH=0;BH=0;AH=1; break; case 11: DH=1;GH=0;CH=0;BH=1;AH=0; break; case 12: DH=1;GH=0;CH=0;BH=1;AH=1; break; case 13: DH=1;GH=0;CH=1;BH=0;AH=0; break; case 14: DH=1;GH=0;CH=1;BH=0;AH=1; break; case 15: DH=1;GH=0;CH=1;BH=1;AH=0; break; case 16: DH=1;GH=0;CH=1;BH=1;AH=1; break; } }
时间: 2023-08-05 15:02:04 浏览: 88
单片机reg52.h
4星 · 用户满意度95%
这段代码是用来控制LED点阵中的行选信号的。具体来说,它定义了5个IO口对应的行选信号,包括GH、AH、BH、CH、DH,通过控制这些信号来选择要显示的行数。
在程序中,定义了一个名为Hang的函数,用来根据传入的参数选择要显示的行数。函数中使用了switch语句,根据不同的行数选择不同的行选信号。比如,当传入的参数为1时,就会将GH、AH、BH、CH、DH这5个IO口的电平值分别设置为0、0、0、0、0,从而选中第一行进行显示。
需要注意的是,这段代码中用到了特殊功能寄存器sbit,用来定义单个IO口的操作,可以方便地读写单个IO口的电平值。同时,这段代码中使用了P1口来控制行选信号,如果P1口被其他设备占用,就需要根据具体的硬件环境进行调整。
阅读全文