问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我想用单片机实现电子表功能,参考于宋彩利编的《单片机原理与C51编程》的程序,目前运行有问题,请多指教

发布网友 发布时间:2022-05-12 06:29

我来回答

3个回答

热心网友 时间:2024-02-18 19:38

以下就是该题的全部程序,请高手指点~~~~~~
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char //定义0~9共阴显示
code uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit CLK1=P1^0;
sbit SDA1=P1^1;
sbit CLK2=P1^3;
sbit SDA2=P1^4;
sbit KEY=P1^2;
sbit SOUND=P1^7;
int h1,m1,s1;
int h2,m2,s2;
int count1,count2;
uchar dis[6];
void delay() //延时程序
{
unsigned int j;
for(j=0;j<100;j++)
{}
}
void send1(unsigned char a) //74HC164
{
unsigned char i;
for(i=0;i<8;i++)
{ if(_crol_(a,i)&0x80)
SDA1=1;
else
SDA1=0;
CLK1=0;
CLK1=1;
}
}
void send2(unsigned char a)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(_crol_(a,i)&0x80)
SDA2=1;
else
SDA2=0;
CLK2=0;
CLK2=1;
}
}
void display(int h,int m,int s)
{
int i,x,com=0xfe;
dis[0]=h/10;dis[1]=h%10; //时
dis[2]=m/10;dis[3]=m%10; //分
dis[4]=s/10;dis[5]=s%10; //秒
for(i=0;i<6;i++) //显示位数
{ x=send2(0xff);
Table[dis[i]]; //黑屏
send1(x); //发送段码
send2(com); //发送位码
delay(); //延时
com=_crol_(com,1); //改变位码
}
}
void time_add(int h,int m,int s) //加时程序
{
s++;
if(s==60)
{ m++;
s=0;
if(m==60)
{ h++;
m=0;
if(h==24)
{ h=0;
}
}
}
}
void time_dec(int h,int m,int s) //减时程序
{
s--;
if(s<0)
{ m--;
s=59;
if(m<0)
{ h--;
m=59;
if(h<0)
{ h=23;
}
}
}
}
void time0_int(void) interrupt 1 //定时/计数器0
{ TH0=-0x3c;
TL0=0xb0;
count1++;
if(count1==20)
{ time_add(h1,m1,s1);
count1=0;
}
}
void time2(void) interrupt 3 //定时/计数器1
{
TH1=0xFD;
TH1=0x80;
SOUND=~SOUND; //扬荡发声
if(count2==1000)
{
TR1=0;
count2=0;
}
}
void main(void) //主程序
{
int flag;
unsigned char jkey ,i;
TMOD=0x11;
IE=0x8A;
TR0=1;TR1=0; //启动T0,停止T1
while(1)
{
jkey=0xfe;
flag=0;
for(i=0;i<6;i++)
{
send1(jkey);
if(!KEY)
{ flag=1;break;}
else
jkey=_crol_(jkey,1);
}
if(flag==1)
{
switch(i)
{
case 0:{TR0=1;display(h1,m1,s1);break;}
case 1:{TR0=0;display(h1,m1,s1);break;}
case 2:{time_add(h1,m1,s1);display(h1,m1,s1);break;}
case 3:{time_dec(h1,m1,s1);display(h1,m1,s1);break;}
case 4:{time_add(h2,m2,s2);display(h1,m1,s1);break;}
case 5:{time_dec(h2,m2,s2);display(h1,m1,s1);break;}
}
}
else //如果无按键按下,显示当前
display(h1,m1,s1); //闹铃
if(h1==h2&&m1==m2&&s1==s2)
{TR1=1;}
}
}

热心网友 时间:2024-02-18 19:38

首先,不知你的硬件是如何设计的,是用的单片机内部定时器做的还是用的时钟芯片等?然后,针对硬件来进行编程。追问你帮我看看下面回答者的程序吧~~~,那就是全部程序了。。。不胜感激啊~~~~~

追答软件是针对相关的硬件来写的。您是硬件我不清楚。

热心网友 时间:2024-02-18 19:39

time_add(h2,m2,s2);这个函数中断调用了就不能再中断外调用,剩下你出现啥问题了说明白在研究追问oo??貌似没有在中断外调用。这个程序问题在于显示,黑屏处一直存在问题,无法解决呢?我用的均为74HC164控制数码管的段码和位码。嗯,大致是这样~很谢谢你哈!

追答case 2:{time_add(h1,m1,s1);display(h1,m1,s1);break;}
case 3:{time_dec(h1,m1,s1);display(h1,m1,s1);break;}
case 4:{time_add(h2,m2,s2);display(h1,m1,s1);break;}
case 5:{time_dec(h2,m2,s2);display(h1,m1,s1);break;}
这不调用2次吗,黑屏处啥意思,显示是什么现象

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
急求高人解答 ···管理类的问题 ···!!!急急急···我会在线等... ...如果基层管理幅度为8,高层管理人员管理幅度为3,则该公司中层管理人员... ...发生化学变化的实质是( )A.分子间隔发生变化B.物质状态发生改变C... 下列变化不能说明发生了化学变化的是( )A.变化时有电子的得失或共用电... 下列描述正确的是( )A.固态物质的分子间无间隔B.液态物质的分子不断运动... 原来微信打开这个功能,能够看到马路上的街景,涨知识了! ...百度帐号被人在异地登录了,问题是没有任何人知道我的密码啊?而且也... 医疗事故纠纷和医疗损害纠纷的区别是什么 医疗纠纷与医疗事故的定义是什么? 医疗事故纠纷是指什么的 平时在店铺里买的十几块钱电子表里面的芯片是什么? 我想摆地摊卖保暖内衣,但是不知道哪里能拿到便宜的货? 想做个智能手表,但是不知道怎么选单片机芯片 目的: 仿电子手表功能的单片机时钟 电子手表、游戏机、计算器单片机是什么种类的? 合肥,想摆地摊卖棉拖鞋 帽子 围巾之类的,合肥的批发市场去哪里进货好? 单片机电子表程序 电子手表冷光灯亮几秒后自动熄灭利用的是什么原理 哪个厂家拖鞋好啊??我想批发点拖鞋回去卖!! 用单片机做电子表 误差会不会很大??? 为什么电子手表没有单片机却可以显示数码管 哈尔滨六旬环卫工八小时滴水未进,冻僵在街头,你会咋办? 净水器十大品牌排名有哪些? 最新世界净水器十大品牌 中国十大净水器品牌排行? 净水器十大品牌排名? 安之星净水器排名怎么样 净水器十大品牌排名榜 最新的? 兵团公务员面试怎么样在短期得高分? 2010 兵团公务员 面试时间 51单片机智能手表在设计过程中会出现什么问题 对讲机怎样选择?什么样的对讲机好?急求~~~谢谢 单片机中断定时器-电子表 单片机实现电子表分秒程序 报错 error A39: REGISTER OPERAND EXPECTED 对讲机的选择 msp430超低功耗单片机 设计一个单片机简易电子表 我想把滑动变阻器链接到单片机,然后通过相应的程序把滑动变阻器的改变量显示在类似于电子手表的屏幕上。 多功能蒸汽机那个牌子的比较好? 电子跑表设计(用c语言编写,单片机是STC89C52) 英国搞工业革命的钱是不是抢来的? 丽妍堂蒸汽机的介绍 蒸汽机 蒸笼 电蒸笼??? 蒸汽机推动了第一次工业革命,这对于发明蒸汽机的瓦特的命运有何影响... 315KW的变压器最大功率是多少? 315KW变压器容量是多少安,怎么算出来的,三相火线每一根能茨带动多少安 十一届全运会社会捐赠感谢信 过年话语,句句暖人心 迎春送对联 慰问暖人心 315kw变压器配多少倍互感器? S11-M-315/10 315KWA变压器中铜重量有多少