力洪
获得 2 次赞
帮助过252人
实验 : 8个独立按键,在数码上显示8个数字。帮我看一下,有什么问题,按键后数字显示不了 /@@***************************************************************************** 独立按键,数码管循环显示,0--8 P0口控制数码管,P1口按键 *****************************************************************************/ #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar led_code[]={0xc00xf90xa40xb00x990x920x820xf80x800x90}; //共阳数码管段码 void delay(uint ms) { uint i; while(ms--) { for(i=0;i<120;i++); } } void main(viod) { uchar key; P0=0xff; P1=0xff; while(1) { if(P1!=0xff) //等待按键被按下 { delay(200); if(P1!=0xff) { key=P1; switch(key) { case 0xfe: P0=led_code[1]; break; case 0xfd: P0=led_code[2]; break; case 0xfb: P0=led_code[3]; break; case 0xf7: P0=led_code[4]; break; case 0xef: P0=led_code[5]; break; case 0xdf: P0=led_code[6]; break; case 0xbf: P0=led_code[7]; break; case 0x7f: P0=led_code[8]; break; } } } } }
#include<reg51.h> #include<intrins.h> void Delay(unsigned char a) { unsigned char i; while(--a) { for(i=0;i<125;i++); } } void main(void) { unsigned char bi; while(1) { b=0xfe; for(i=0;i<8;i++) { P1=b; Delay(250); b=_crol_(b1); } } } #include <reg51.h> void delay1ms() { TH1=(65536-1000)/256; TL1=(65536-1000)%256; TR1=1; while(!TF1); TF1=0; } void main() { unsigned char code led[]={0xff0x990x000x000x000x810xc30xe7}; unsigned char i; unsigned int lie; TMOD=0x10; while(1) { i=0x01; for(lie=0;lie<8;lie++) { P0=i; P3=led[lie]; delay1ms(); i<<=1; } } }