简易时钟电路课程设计论文
num=0; if(second==0) { if(minute==0) //比赛时间到,则停止计时 { TR0=0; finish_flag=1; } else { second=60; minute--; } } second--; } }
/***************************************************************************** 程 序 名:8位共阳七段数码管动态显示程序 编辑时间:2012-06-14 编 辑 者:x_z_y Q Q:812550826 修改时间: 硬件平台:MCU:At89c51 晶振:12MHz 8位共阳七段数码管 硬件连接:第1~4位数码管段选————P0 位选————P3^0,P3^1,P3^2,P3^3 第5~8位数码管段选————P2 位选————P3^0,P3^1,P3^2,P3^3 注 意:
*****************************************************************************/
//头文件
#include
//变量定义
unsigned char code disptable[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71
12
简易时钟电路课程设计论文
}; //定义0~F所对应的十六进制数组disptable
/**************************************************************************** 函 数 名:一位数码管显示函数 入口参数:unsigned char num 对应的第几个数码管 unsigned char dat1,dat2 对应要显示的数 出口参数:无
****************************************************************************/ void seg_display(unsigned char num,unsigned char dat1,unsigned char dat2) { P3&=0xf0; //消影 P0=~disptable[dat1]; //第1~4位数码管段选 P2=~disptable[dat2]; //第5~8位数码管段选 P3=_cror_(0x08,num); //位选 }
/**************************************************************************** 函 数 名:八位数码管显示函数 入口参数:unsigned char *disp_buff1,*disp_buff2 对应要显示的数缓冲数组指针 出口参数:无
****************************************************************************/ void diaplay(unsigned char *disp_buff1,unsigned char *disp_buff2) { unsigned char i; for(i=0;i<4;i++) //循环扫描数码管 { seg_display(i,disp_buff1[i],disp_buff2[i]); delay_ms(3); } }
/**************************************************************
程 序 名:STC89C52RD+ 四个独立按键的程序 编辑时间: 2012-06-14 编译环境:keil c
硬件平台:STC89C52RD+单片机,11.0592MHZ晶振 四个独立按键 功能描述: sbit K1=P1^0; //K1——甲对加分键 sbit K2=P1^1; //K2——乙队加分键 sbit K3=P1^2; //K3——开始/停止比赛 sbit K4=P1^5; //K4——调整比赛时间 sbit K5=P1^6; //K5——甲乙队交换记分牌
注 意:
13
简易时钟电路课程设计论文
***************************************************************/
//头文件
#include
//硬件定义 sbit K1=P1^0; //K1——甲对加分键 sbit K2=P1^1; //K2——乙队加分键 sbit K3=P1^2; //K3——开始/停止比赛 sbit K4=P1^5; //K4——调整比赛时间 sbit K5=P1^6; //K5——甲乙队交换记分牌
/*************************************************************************************** 函 数 名:三个独立键盘扫描函数 函数入口:无 函数出口:无
***************************************************************************************/
unsigned char key_scan(void) {
unsigned char key=0; if(K1==0) //甲对加分键 { delay_ms(2); if(K1==0) { while(K1==0); key=1; } } else if(K2==0) //乙队加分键 { delay_ms(2); if(K2==0) { while(K2==0); key=2;
14
简易时钟电路课程设计论文
} } else if(K3==0) //开始/停止比赛 { delay_ms(2); if(K3==0) { while(K3==0); key=3; } } else if(K4==0) //调整比赛时间 { delay_ms(2); if(K4==0) { while(K4==0); key=4; } } else if(K5==0) //甲乙队交换记分牌 { delay_ms(2); if(K5==0) { while(K5==0); key=5; } } return key; }
//********************延时函数*******************************
//头文件
#include
//延时xus的函数
void delay_us(unsigned int xus) { while(xus--)
15
相关推荐: