赞
踩
#include<reg52.h> #define uint unsigned int unsigned int mouth=1; unsigned char code SMG[18]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x88,0x80, 0xc6,0xc0,0x86,0x8e,0xbf,0x7f }; void delay_SMG(uint time) { uint i,j; for(i=time;i>0;i--) for(j=114;j>0;j--); } void SelectHC573(unsigned char n) { switch(n) { case 4: P2=(P2 & 0x1f) | 0x80; break; case 5: P2=(P2 & 0x1f) | 0xa0; break; case 6: P2=(P2 & 0x1f) | 0xc0; break; case 7: P2=(P2 & 0x1f) | 0xe0; break; } } void Init() { SelectHC573(5); P0=0x00; SelectHC573(4); P0=0xff; } void Show_SMG_Bit(unsigned char dat,unsigned char pos) { SelectHC573(6); P0=0x01<<pos; SelectHC573(7); P0=dat; } void Show_SMG() { Show_SMG_Bit(SMG[2],0); delay_SMG(10); Show_SMG_Bit(0xff,0);//消影 Show_SMG_Bit(SMG[0],1); delay_SMG(10); Show_SMG_Bit(0xff,1); Show_SMG_Bit(SMG[2],2); delay_SMG(10); Show_SMG_Bit(0xff,2); Show_SMG_Bit(SMG[1],3); delay_SMG(10); Show_SMG_Bit(0xff,3); Show_SMG_Bit(0xbf,4); delay_SMG(10); Show_SMG_Bit(0xff,4); Show_SMG_Bit(0xbf,5); delay_SMG(10); Show_SMG_Bit(0xff,5); Show_SMG_Bit(SMG[mouth/10],6); delay_SMG(10); Show_SMG_Bit(0xff,6); Show_SMG_Bit(SMG[mouth%10],7); delay_SMG(10); Show_SMG_Bit(0xff,7); } void delay(uint time) { while(time--) { Show_SMG(); } } void main() { Init(); while(1) { Show_SMG(); delay(100); mouth++; if(mouth>12) { mouth=1; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。