1、 P0 = tmp;花样流水灯显示(130种花样显示)/数组定义 uint i =0; while(i130) P0= led_lighti; delay_ms(200); i+; 第二次实验 数码管的应用8个数码管同时以1秒的速度变化显示0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。/7位数码管一同显示 共阴极接uchar code led_dm =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76 uint i; P0 = 0x00; for(i = 0;
2、i59) sec=0; minute+; if(minute minute=0; hours+; if(hours23) hours = 0; showtime();void showtime()/显示时钟 wirte_position(HOUR,(hours)/10+0x30); wirte_position(HOUR+0x01,(hours)%10+0x30); wirte_position(MINUTE,(minute/10+0x30); wirte_position(MINUTE+0x01,(minute%10+0x30); wirte_position(SEC,(sec/10+0x3
3、0); wirte_position(SEC+0x01,(sec%10+0x30);void clickDown()/功能键按下/ static uint click = 0; if(menu=0) delay_ms(5); if(menu=0) click+; if(click=1) TR0 = 0;/定时器停止 write_common(0x0f); write_common(SEC+0x01); else if(click=2) write_common(MINUTE+0x01); else if(click=3) write_common(HOUR+0x01); if(next=0)
4、delay_ms(5); if(next=0) delay_ms(5); hours+; showtime(); if(pre=0) delay_ms(5); if(pre=0) hours-; else click = 0; TR0 = 1; write_common(0x0c); if(menu=0) while(menu=0);void addmin(uint c)/增加或者减少键按下 switch(c) if(next=0)/按下加一 delay_ms(10); if(next=0) delay_ms(10); sec+; if(sec59) sec=0; showtime(); while(next=0) ; if(pre=0) /按下减一 if(pre=0) sec-; if(sec=-1) sec=59; while(pre=0) ; break; case 2: minute+; if(minute minute=0; write_common(MINUTE+0x01); minute-; if(minute=-1) minute=59; case 3: hours+; if(hours23) hours=0; write_common(HOUR+0x01); hours-; if(hours=-1) hours=23;