下面是我改的一个例子,可是下到片子中不行,希望大家帮忙!下载之后,最高位灯都不亮的,新手大家帮帮啊 #include
//如果使用键盘中断请定义 #define USE_KEY 1 #define uchar unsigned char
//须主程序定义的参数 sbit ch451_dclk=P1^7; //串行数据时钟上升延激活 sbit ch451_din=P1^6 ; // 串行数据输出,接CH451的数据输入 sbit ch451_load=P1^5 ; //串行命令加载,上升延激活 sbit ch451_dout=P3^3 ; uchar ch451_key; //INT1,键盘中断和键值数据输入,接CH451的数据输出 // 存放键盘中断中读取的键值
#include
//************************************************* //延时程序 void delay(){ //在12P下延时十毫秒 uchar i,j,k; for(i=0;i<10;i++) for(j=0;j<40;j++) for(k=0;k<120;k++); }
//************************************************ void main(){ uchar a,b,c,d; d=0; ch451_init(); //调用初始化 ch451_write(0x403); ch451_write(0x580); EA=1; if ( !T1 ); { //测试送入命令 ch451_write(CH451_DIG7|0X08); //最低显示8 EA=1; ch451_key=0x0ff; while(1){ while(ch451_key==0xff); //等待中断 a=ch451_key; d=a ; ch451_key=0x0ff; ch451_write(0x0302); //右移两位 ch451_write(0x0302); a&=0x3f; //显示十进制数据 b=a; a-=1; ch451_write(CH451_DIG7|a); b+=1; ch451_write(CH451_DIG6|b); delay(); c=ch451_read(); while(c==d) //测试按键是否释放 { ch451_write(CH451_DIG7|b|0xf0); delay(); c=ch451_read(); } ch451_write(CH451_DIG0|b); } } }