资源描述:
《c8051f020单片机数字时钟》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*本程序只是为了应付课程设计而用据我所知其中至少含有3处bug使用环境c8051f020使用通过*/#include#include//*****软件仿真I2C总线与HD7279A连接的两根并行口线*****//sbitHD7279_DAT=P1^7;sbitHD7279_CLK=P1^6;//*****宏定义,HD7279A片选信号、数据信号和时钟信号定义*****//#defineNOSELECT7279P5
2、=0x80//P5^7接片选信号,选
3、种#defineSELECT7279P5&=~(0x80)//未选种#defineSet7279DATHD7279_DAT=1//数据线置1#defineClr7279DATHD7279_DAT=0//数据线置0#defineSet7279CLKHD7279_CLK=1//时钟高电平#defineClr7279CLKHD7279_CLK=0//时钟底电平unsignedcharCount1ms;unsignedcharxdataNowTime[3];//当前时间,用于当前时间的设置unsignedc
4、harxdataHourH,HourL,MinuteH,MinuteL,SecondH,SecondL;unsignedcharxdatamHourH,mHourL,mMinuteH,mMinuteL,mSecondH,mSecondL;unsignedcharxdatasetHourH,setHourL,setMinuteH,setMinuteL,setSecondH,setSecondL;//*****对所调用其它文件中函数的声明*****//voidDelay1ms(unsignedcharT
5、);//延时T毫秒voidDelay1s(unsignedcharT);//延时T秒voidDelay1us(unsignedcharT);//延时T微秒//*****仿真I2C总线时序发送一字节*****//voidSYSCLK_Init(void){inti;OSCXCN=0x67;//外部晶振22.1184MHzfor(i=0;i<256;i++);while(!(OSCXCN&0x80));//等待外部晶振稳定OSCICN=0x88;//选择外部晶振作系统时钟源,允许时钟丢失检测}//***
6、**端口初始化*****//voidPORT_Init(void){XBR0=0x07;//允许SMBus、SPI0和UART0XBR1=0x00;XBR2=0x44;//使能交叉开关和弱上拉}//*****定时器T0初始化*****//voidTimer0_Init(void){CKCON
7、=0x8;//T0按系统时钟频率计数TMOD
8、=0x1;//T0方式1Count1ms=10;TR0=0;//停止T0TH0=(-SYSCLK/1000)>>8;//定时1ms的时间常数TL0=-SYSCLK/
9、1000;TR0=1;//启动T0IE
10、=0x2;//开T0中断}//*****定时器T0中断服务程序(每隔1ms中断1次)*****//voidTimer0_ISR(void)interrupt1{TH0=(-SYSCLK/1000)>>8;//重新装入初值TL0=-SYSCLK/1000;if(Count1ms)Count1ms--;//定时时间减1}//******延时Tμs(软件实现)******//voidDelay1us(unsignedcharT){while(T){_nop_();_
11、nop_();_nop_();_nop_();_nop_();--T;}}//******延时Tms(定时器T0实现)******//voidDelay1ms(unsignedcharT){Count1ms=T;while(Count1ms);//在T0中断服务程序中减1}//*****延时Ts(定时器T0实现)******//voidDelay1s(unsignedcharT){while(T){Delay1ms(200);Delay1ms(200);Delay1ms(200);Delay1ms(
12、200);Delay1ms(200);T--;}}voidSend7279Byte(unsignedcharch){chari;SELECT7279;//置CS低电平Delay1us(50);//延时50μfor(i=0;i<8;i++){if(ch&0x80)//输出1位到HD7279A的DATA端Set7279DAT;elseClr7279DAT;Set7279CLK;ch=ch<<1;//待发数据左移Delay1us(8);Clr7279CLK;Delay1us