#include
typedef signed char int8; //8位有符号字符型
typedef signed int int16; //16位有符号整型
typedef signed long int32; //32位有符号长整型
typedef unsigned char uint8; //8位无符号字符型
typedef unsigned int uint16; //16位无符号整型
typedef unsigned long uint32; //32位无符号长整型
sbit duanxuan = P2^5; //数码管驱动芯片74HC573 段选
sbit weixuan = P2^6; //数码管驱动芯片74HC573 位选
void delay1(uint16 x_ms);
uint8 code tab1[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //共阳数码管编码表
uint8 code tab2[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //定义八位数码管位选数据数组
void delay(); //延时函数声明
unsigned char second; // 秒计数变量
unsigned char minute; //分钟计数变量
unsigned char hour; // 小时计数变量
void main()
{
uint8 time;
time=0;
second=01;
minute=59;
hour=23;
time++;
while(1)
{
time++;
if(time>=60)
{
time=0; //中断计数变量清0
second++; //秒计数变量加1
}
if(second>=60)
{
second=0;
minute++;
}
if(minute>=60)
{
minute=0;
hour++;
}
if(hour>=24)
{
hour=0;
}
duanxuan=0;
weixuan=0;
P0=tab1[second/10];
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X40; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
//消影
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X00; //数码管位选清零
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
duanxuan=0;
weixuan=0;
P0=tab1[second%10];
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X80; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
//消影
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X00; //数码管位选清零
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
/
duanxuan=0;
weixuan=0;
P0=tab1[minute/10];
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X08; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
duanxuan=0;
weixuan=0;
P0=tab1[minute%10];
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X10; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
duanxuan=0;
weixuan=0;
P0=tab1[hour%10];
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X02; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
duanxuan=0;
weixuan=0;
P0=tab1[hour/10];
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X01; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
//消影
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X00; //数码管位选清零
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
duanxuan=0;
weixuan=0;
P0=0xbf;
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X04; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(90);
//消影
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X00; //数码管位选清零
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
duanxuan=0;
weixuan=0;
P0=0xbf;
duanxuan=1;
duanxuan=0;
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X20; //数码管 位选 左至右第 1 个
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
delay1(60);
//消影
duanxuan = 0; //数码管驱动芯片74HC573 段选
weixuan = 0; //数码管驱动芯片74HC573 位选
P0 =0X00; //数码管位选清零
weixuan = 1; //数码管驱动芯片74HC573 位选
weixuan = 0; //数码管驱动芯片74HC573 位选
}
}
void delay1(uint16 x_ms) //延迟 x_ms*1 毫秒
{
uint16 i,j;
for(i=x_ms;i>2;i--)
for(j=1;j>2;j--);
}
java 时分转分钟 java 时分秒
转载文章标签 java 时分转分钟 java 位运算取8位 位深度8位什么水平 数码管 整型 文章分类 Java 后端开发