⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timetable.c

📁 单片机串口演示程序
💻 C
字号:
#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define COM8155 XBYTE[0x4000]					//如何确定地址
#define PA8155 XBYTE[0x4001]
#define PB8155 XBYTE[0x4002]
#define PC8155 XBYTE[0x4003]
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P1_0=P1^0;
sbit P1_4=P1^4;
const uchar u=10,s=60,m=60,h=24;						//0.1秒,秒,分,时的基制
uchar unit,second,minute,hour;		//0.1秒,秒,时,分的单元
const uchar xdata segpt[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};		//显示段码可能修改
uchar code ctrl[2][5]={{6,10,0,0,1},{6,10,15,0,0}};
void show();
void control();
void int0(void) interrupt 0 using 0{
	EX0=0;
	if(P3_2==0){					
		minute++;
		if(minute==m){				//与基制比较
			minute=0;
		}
	}
	show();	
	EX0=1;
}
void time0(void) interrupt 1 using 1{
	TL0=0xb0;
	TH0=0x3b;
	if(unit==u){
		unit=0;
	}
	else{
		if(second==s){
			second=0;
		}
		else{
			if(minute==m){
				minute=0;
			}
		 	else{
				if(hour==h){
					hour=0;
				}
				hour++;
			}
			minute++;
		}
		unit++;
	}
	control();
}
void int1(void) interrupt 2 using 2{		
	EX1=0;
	if(P3_3==0){
		hour++;
		if(hour==h){
			hour=0;
		}
	}
	show();
	EX1=1;
}
void main(){
	COM8155=0x03;
	SP=0x5a;
	TMOD=0x01;					//工作在方式1,16位计数器,采用12MHz的频率
	TL0=0xB0;					//设置计数初始值,定时时间为100ms,2^16-0x3CB0=50000
	TH0=0x3B;
	IE=0x87;
	TR0=1;
	do{
		show();					//调用显示程序
	}while(1);
}
void show(){					//显示程序,如何利用循环?
	uint bufferh1=hour/10;
	uint bufferh2=hour%10;
	uint bufferm1=minute/10;
	uint bufferm2=minute%10;
	uint buffers1=second/10;
	uint buffers2=second%10;
	PA8155=0xFE;					//选用共阴极数码管
	PB8155=segpt[bufferh1];			//需要添加延时吗?如何添加
	PA8155=0xFD;					
	PB8155=segpt[bufferh2];
	PA8155=0xFC;					
	PB8155=segpt[bufferm1];
	PA8155=0xFB;					
	PB8155=segpt[bufferm2];
	PA8155=0xFA;					
	PB8155=segpt[buffers1];
	PA8155=0xF0;					
	PB8155=segpt[buffers2];
}
void control(){
	int i;
	for(i=0;i<2;i++){				//注意修改i<2
		if((hour==ctrl[i][0])&&(minute==ctrl[i][1])&&(second==ctrl[i][2])){
			if(ctrl[i][3]==0){
				P1_0=ctrl[i][4];
			}
			if(ctrl[i][3]==1){
				P1_4=ctrl[i][4];
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -