sbit Feng=Px^x; //定义蜂鸣器端口 蜂鸣器是灌电流 1是关 0是开
uchar num=0; //变量 秒数 用于定时器中断服务程序中累加秒中断数
bit flag_End=0; //标记 停止 用于秒值到99后不再继续
void main()
{
Init_Time(); //初始化计数器 每1s产生一个中断
Init_1602(); //初始化1602显示 我想你可能会用这东西吧
while(1) //循环
{
Show(); //调用 主程序
}
}
void Show() //主程序
{
uchar a,b;
if(flag_End==0) //如果 结束标记为0 可以计数
{
a=num/10; //算出当前秒数的十位
b=num%10; //算出当前秒数的个位
//定位指令 1602显示位置
//写入指令 1602写入数据
}
if(num==99) //如果 秒数到达99秒
{
flag_End=1; //结束标记置1 停止显示
Feng=0; //打开蜂鸣器
Delay(200); //延时200ms
Feng=1; //关闭蜂鸣器
}
}
void Server_Time0() interrupt 1 //定时器服务程序
{
static uchar numt01,numt02; //5ms到50ms和1s
TH0 = xx; //重装初值 1s
TL0 = xx;
num++; //计数器自加
}
这些是主思路 其它显示初始化 计数器初始化 延时 写位置 写数据这些函数都是基础函数 你应该自己会 不会的话去百度抄 |