作业四:独立按键+数码管实操
文章目录1.测试代码照片2.流水灯视频3.独特按键视频点亮4个灯4.独立按键视频思考点亮8个灯5.数码管显示“00000”或者“111111”照片或者视频6.数码管显示“123456”照片或者视频7.数码管显示“11.12.13”照片或者视频8.数码管显示“HH8800”照片或者视频1.测试代码照片2.流水灯视频流水灯#includereg51.h#defineucharunsignedcharuchar a;voiddelay(unsignedinttime){unsignedinti,j;for(i0;itime;i)for(j0;j120;j);}voidmain(){P10xfe;while(1){aP1;aa1;aa|0x01;delay(200);if(a0xff){a0xfe;}P1a;}}3.独特按键视频点亮4个灯VID_20260510_142313#includeREGX51.Hsbit KEY1P3^4;// 按键连接sbit KEY2P3^5;// 按键连接sbit KEY3P3^6;// 按键连接sbit KEY4P3^7;// 按键连接sbit LED1P1^0;// LED连接sbit LED2P1^2;// LED连接sbit LED3P1^4;// LED连接sbit LED4P1^6;// LED连接// 延时函数voiddelay_ms(unsignedintms){unsignedinti,j;for(i0;ims;i)for(j0;j123;j);}voidmain(){P00xFF;// 初始所有LED熄灭因低电平点亮while(1){if(KEY10)// 按键按下[[{delay_ms(10);// 消抖if(KEY10)// 再次确认按下{while(!KEY1);// 等待按键松开防止连发LED1~LED1;// 控制小灯}}if(KEY20)// 按键按下{delay_ms(10);// 消抖if(KEY20)// 再次确认按下{while(!KEY2);// 等待按键松开防止连发LED2~LED2;// 控制小灯}}if(KEY30)// 按键按下{delay_ms(10);// 消抖if(KEY30)// 再次确认按下{while(!KEY3);// 等待按键松开防止连发LED3~LED3;// 控制小灯}}if(KEY40)// 按键按下{delay_ms(10);// 消抖if(KEY40)// 再次确认按下{while(!KEY4);// 等待按键松开防止连发LED4~LED4;// 控制小灯}}}}4.独立按键视频思考点亮8个灯mm5.数码管显示“00000”或者“111111”照片或者视频6.数码管显示“123456”照片或者视频7.数码管显示“11.12.13”照片或者视频8.数码管显示“HH8800”照片或者视频#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbit dulaP2^6;// 段选锁存器sbit welaP2^7;// 位选锁存器// 数码管段码表0~9 Huchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F,// 90x76// H 新增字母H的段码};// 位选第1~6位数码管uchar code TableWela[]{0xfe,// 第1位0xfd,// 第2位0xfb,// 第3位0xf7,// 第4位0xef,// 第5位0xdf// 第6位};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j0;j125;j);}}voidmain(){uchar i;// 6位数码管显示H H 8 8 0 0uchar displayData[6]{10,10,8,8,0,0};// 不需要小数点uchar pointFlag[6]{0,0,0,0,0,0};while(1){for(i0;i6;i){P00x00;dula0;wela0;// 选中第i位数码管P0TableWela[i];wela1;wela0;// 输出段码P0TableDula[displayData[i]];dula1;dula0;delay(2);}}}