资源描述:
《六位共阴数码管显示时钟程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include//包含51单片机寄存器定义的头文件#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;sbitwela=P2^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharint_time;//中断次数计数变量ucharsecond;//秒计数变量ucha
2、rminute;//分钟计数变量ucharhour;//小时计数变量voiddelay(uintz)//延时函数,延时约1ms{ucharx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/******************************************************************函数功能:显示秒的子程序入口参数:s*************************************************************
3、*******/voidDisplaySecond(uchars){wela=1;P0=0xef;//DS5点亮wela=0;P0=0xff;//消隐dula=1;P0=table[s/10];//显示十位dula=0;delay(1);wela=1;P0=0xdf;//DS6点亮wela=0;P0=0xff;//消隐dula=1;P0=table[s%10];//显示个位dula=0;delay(1);}/*************************************************
4、*****************函数功能:显示分钟的子程序入口参数:m********************************************************************/voidDisplayMinute(ucharm){wela=1;P0=0xfb;//DS3点亮wela=0;P0=0xff;//消隐dula=1;P0=table[m/10];//显示十位dula=0;delay(1);wela=1;P0=0xf7;//DS4点亮wela=0;P0=0xff;//
5、消隐dula=1;P0=table[m%10];//显示个位dula=0;delay(1);wela=1;P0=0xf7;//DS4点亮wela=0;P0=0xff;//消隐dula=1;P0=0x80;//显示'.'dula=0;delay(1);}/******************************************************************函数功能:显示小时的子程序入口参数:h*******************************************
6、*************************/voidDisplayHour(ucharh){wela=1;P0=0xfe;//DS1点亮wela=0;P0=0xff;//消隐dula=1;P0=table[h/10];//显示十位dula=0;delay(1);wela=1;P0=0xfd;//DS2点亮wela=0;P0=0xff;//消隐dula=1;P0=table[h%10];//显示个位dula=0;delay(1);wela=1;P0=0xfd;//DS2点亮wela=0;P0=0xf
7、f;//消隐dula=1;P0=0x80;//显示'.'dula=0;delay(1);}/************初始化************/voidinit(){TMOD=0x01;//使用定时器T0EA=1;//开中断总允许ET0=1;//允许T0中断TH0=(65536-50000)/256;//定时器高八位赋初值TL0=(65536-50000)%256;//定时器低八位赋初值TR0=1;int_time=0;//中断计数变量初始化second=0;//秒计数变量初始化minute=0;//
8、分钟计数变量初始化hour=0;//小时计数变量初始化}/******************************************************************函数功能:主函数********************************************************************/voidmain(){init();while(1){DisplaySecond(se