我要发布
仪器网/ 仪器社区/ 计时器/ 单片机设计制作9S器~

单片机设计制作9S器~

favw5425    2010-06-15    计时器    浏览 309 次

要求:用数码管做计时显示,系统上电器显示为“0”,按“开始”键启动器,9S开始,到1S时,发出“滴”报警声后停止报警,同时数码管显示“0”,之后再次按开始键可重新

精彩问答
dai8411 发布日期:2010-06-24
1.显示。2.启动/停止。3.重置30秒
中的diyi个和第三个功能有的,至于第2个,程序里是一直,结束了
就再重置30,继续。
如果你需要键盘按键的话,只需要按键将中断关了或者开了,就可以。

#include

code unsigned char tab[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共阳数码管 0-9

unsigned char Dis_Shiwei;//定义十位
unsigned char Dis_Gewei; //定义个位
void delay(unsigned int cnt)
{
while(--cnt);
}

main()
{

TMOD |=0x01;//定时器设置 10ms in 12M crystal
TH0=0xd8; // 初值55536,计数10000次,每次1us,总计10ms
TL0=0xf0;
IE= 0x82; //打开中断
TR0=1; //启动计数器TR0

while(1)
{
P0=Dis_Shiwei;//显示十位
P2=0xFD; // P2=1111 1101
delay(300);//短暂延时
P0=Dis_Gewei; //显示个位
P2=0xFE; // P2=1111 1110
delay(300);
}

}
/********************************/
/* 定时中断 */
/********************************/
void tim(void) interrupt 1 using 1 //前1为定时中断TR0
{
static unsigned char second=30,count; //初值30
TH0=0xd8;//重新赋值
TL0=0xf0;
count++;
if (count==100)
{
count=0;
second--;//秒减1
if(second==0)
{ //这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序
second=30; //减到0是重新赋值99
}
Dis_Shiwei=tab[second/10];//十位显示值处理
Dis_Gewei=tab[second%10]; //个位显示处理

}
}
全部评论
译水成文 发布日期:2010-06-17
我这有,我怎么发送给你啊???
a2310672 发布日期:2010-06-16
作业?
http://zhidao.baidu.com/question/159995865.html?push=core
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控