c语言单片机51系列 采用定时器0实现50ms定时,采用中断方式,中断20次为1s,3个按键以查询方式实现键盘输入

状态,按键为暂停启动清零。简易密码表2位数码管00~59,开关接在3.0、3.1、3.2,0.0,0.1数码管位选控制端,P2口接两个数码管8个段选控制端。请问下面程序哪... 状态,按键为暂停启动清零。简易密码表2位数码管00~59,开关接在3.0、3.1、3.2,0.0,0.1数码管位选控制端,P2口接两个数码管8个段选控制端。请问下面程序哪里错了。#include<reg51.h>
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=0;k<115;k++);
}
void T0_INT(void) interrupt 1
{
TH0=0x30;
TL0=0xb0;
msec++;
if(msec==20)
{
msec=0;
sec++;
if(sec==60)
{
sec=0;
}
}
}
void main()
{
unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char temp;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
P3=0xff;
while(1)
{
P0=0x01;
P2=led[sec%10];
delay(10);
P0=0x02;
P2=led[sec/10];
delay(10);
temp=~P3;
temp=temp&0x07;
if(temp==0x06)
TR0=0;
if(temp==0x05)
TR0=1;
if(temp==0x03)
{TR0=0;sec=0;msec=0;}
}
}
展开
 我来答
lanchengkai
推荐于2017-08-19 · 超过23用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:51.5万
展开全部
ES没开?!

中断的话 入口应该不是 1 吧 应该是0 ...赶脚起来这个按键方法有点费解。。。具体没怎么看 只是看采用的方法是中断 但是你开的事 定时入口不是 中断入口
管雷101
2012-05-09
知道答主
回答量:55
采纳率:0%
帮助的人:34.7万
展开全部
没有看出来。。。。。。。。。。。
追问
不能实现、、、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友388cdb3
2012-05-19 · 超过31用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:95.3万
展开全部
建议加个按键去抖动延时程序试下 不行找我在想办法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Smart_wolf
2012-05-09 · TA获得超过1697个赞
知道小有建树答主
回答量:1468
采纳率:50%
帮助的人:649万
展开全部
看不出有什么问题啊
追问
但是就是不能实现哈、、
追答
调调按键判断部分,貌似有问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式