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

利用实验箱,制作一电子秒表(分别用汇编语言和单片机c 语言编写) 单片机实验

发布网友 发布时间:2022-05-07 11:39

我来回答

2个回答

热心网友 时间:2023-10-29 20:07

这个实验,随便一本单片机书都有的程序。再说了,你没有说是用液晶屏显示还是数码管,数码管又是哪种的,共阳还是共阴?你可以参见以下连接。

参考资料:http://wenku.baidu.com/view/def806aedd3383c4bb4cd29e.html

热心网友 时间:2023-10-29 20:07

这个程序是6位数码管
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;//按键1 加数
sbit key2=P3^5;//按键2 减数
sbit key3=P3^6;//按键3 归零
sbit key4=P3^7;//按键4 暂停/开始
sbit dx=P2^6; //段选
sbit wx=P2^7;//位选
uchar num,num0,miao,fen;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//数码管段码
void delay(uchar xms)//延时子程序XMS
{
uchar i,j;
for(i=0;i<110;i++)
for(j=0;j<xms;j++);
}
void display(uchar x,uchar y,uchar z) 显示函数
{
uchar shi,ge,a,b,c,d;
shi=x/10;
ge=x%10;

a=y/10;
b=y%10;

c=z/10;
d=z%10;

dx=1;
P0=table[a];
dx=0;
P0=0xff;

wx=1;
P0=0xfe;
wx=0;
delay(1);

dx=1;
P0=table[b];
dx=0;
P0=0xff;

wx=1;
P0=0xfd;
wx=0;
delay(1);

dx=1;
P0=table[c];
dx=0;
P0=0xff;

wx=1;
P0=0xfb;
wx=0;
delay(1);

dx=1;
P0=table[d];
dx=0;
P0=0xff;

wx=1;
P0=0xf7;
wx=0;
delay(1);

dx=1;
P0=table[shi];
dx=0;
P0=0xff;

wx=1;
P0=0xef;
wx=0;
delay(1);

dx=1;
P0=table[ge];
dx=0;
P0=0xff;

wx=1;
P0=0xdf;
wx=0;
delay(1);

}
void init() 初始化子程序
{
P3=0xff;
num=0;
num0=0;
miao=0;
fen=0;
TMOD=0x01;
TH0=(65536-9177)/256;
TL0=(65536-9177)%256;
EA=1;
ET0=1;
}
void key()//按键程序
{
if(key1==0)
{
delay(5);
if(key1==0)
{
fen++;
if(fen==60)
fen=0;
while(!key1);
delay(5);
while(!key1);
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
miao++;
if(miao==60)
miao=0;
while(!key2);
delay(5);
while(!key2);
}
}
if(key3==0)
{
delay(5);
if(key3==0)
{
init();
while(!key3);
delay(5);
while(!key3);
}
}
if(key4==0)
{
delay(5);
if(key4==0)
{
TR0=~TR0;
while(!key4);
delay(5);
while(!key4);
}
}
}
void main()//主函数
{
init();
while(1)
{
key();
display(num,fen,miao);
}
}

void T0_time() interrupt 1 //中断
{
TH0=(65536-9177)/256;
TL0=(65536-9177)%256;//定时器装10毫秒 初值
num0++;
if(num0==1)
{
num0=0;
num++;
if(num==100) 100个10毫秒=1000毫秒为1秒 00~99
{
num=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
fen=0;
}
}
}
}
供你参考..汇编的还没学 不会..抱歉...!希望对你有帮助!

热心网友 时间:2023-10-29 20:07

这个实验,随便一本单片机书都有的程序。再说了,你没有说是用液晶屏显示还是数码管,数码管又是哪种的,共阳还是共阴?你可以参见以下连接。

参考资料:http://wenku.baidu.com/view/def806aedd3383c4bb4cd29e.html

热心网友 时间:2023-10-29 20:07

这个程序是6位数码管
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;//按键1 加数
sbit key2=P3^5;//按键2 减数
sbit key3=P3^6;//按键3 归零
sbit key4=P3^7;//按键4 暂停/开始
sbit dx=P2^6; //段选
sbit wx=P2^7;//位选
uchar num,num0,miao,fen;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//数码管段码
void delay(uchar xms)//延时子程序XMS
{
uchar i,j;
for(i=0;i<110;i++)
for(j=0;j<xms;j++);
}
void display(uchar x,uchar y,uchar z) 显示函数
{
uchar shi,ge,a,b,c,d;
shi=x/10;
ge=x%10;

a=y/10;
b=y%10;

c=z/10;
d=z%10;

dx=1;
P0=table[a];
dx=0;
P0=0xff;

wx=1;
P0=0xfe;
wx=0;
delay(1);

dx=1;
P0=table[b];
dx=0;
P0=0xff;

wx=1;
P0=0xfd;
wx=0;
delay(1);

dx=1;
P0=table[c];
dx=0;
P0=0xff;

wx=1;
P0=0xfb;
wx=0;
delay(1);

dx=1;
P0=table[d];
dx=0;
P0=0xff;

wx=1;
P0=0xf7;
wx=0;
delay(1);

dx=1;
P0=table[shi];
dx=0;
P0=0xff;

wx=1;
P0=0xef;
wx=0;
delay(1);

dx=1;
P0=table[ge];
dx=0;
P0=0xff;

wx=1;
P0=0xdf;
wx=0;
delay(1);

}
void init() 初始化子程序
{
P3=0xff;
num=0;
num0=0;
miao=0;
fen=0;
TMOD=0x01;
TH0=(65536-9177)/256;
TL0=(65536-9177)%256;
EA=1;
ET0=1;
}
void key()//按键程序
{
if(key1==0)
{
delay(5);
if(key1==0)
{
fen++;
if(fen==60)
fen=0;
while(!key1);
delay(5);
while(!key1);
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
miao++;
if(miao==60)
miao=0;
while(!key2);
delay(5);
while(!key2);
}
}
if(key3==0)
{
delay(5);
if(key3==0)
{
init();
while(!key3);
delay(5);
while(!key3);
}
}
if(key4==0)
{
delay(5);
if(key4==0)
{
TR0=~TR0;
while(!key4);
delay(5);
while(!key4);
}
}
}
void main()//主函数
{
init();
while(1)
{
key();
display(num,fen,miao);
}
}

void T0_time() interrupt 1 //中断
{
TH0=(65536-9177)/256;
TL0=(65536-9177)%256;//定时器装10毫秒 初值
num0++;
if(num0==1)
{
num0=0;
num++;
if(num==100) 100个10毫秒=1000毫秒为1秒 00~99
{
num=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
fen=0;
}
}
}
}
供你参考..汇编的还没学 不会..抱歉...!希望对你有帮助!

热心网友 时间:2023-10-29 20:07

这个实验,随便一本单片机书都有的程序。再说了,你没有说是用液晶屏显示还是数码管,数码管又是哪种的,共阳还是共阴?你可以参见以下连接。

参考资料:http://wenku.baidu.com/view/def806aedd3383c4bb4cd29e.html

热心网友 时间:2023-10-29 20:07

这个程序是6位数码管
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;//按键1 加数
sbit key2=P3^5;//按键2 减数
sbit key3=P3^6;//按键3 归零
sbit key4=P3^7;//按键4 暂停/开始
sbit dx=P2^6; //段选
sbit wx=P2^7;//位选
uchar num,num0,miao,fen;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//数码管段码
void delay(uchar xms)//延时子程序XMS
{
uchar i,j;
for(i=0;i<110;i++)
for(j=0;j<xms;j++);
}
void display(uchar x,uchar y,uchar z) 显示函数
{
uchar shi,ge,a,b,c,d;
shi=x/10;
ge=x%10;

a=y/10;
b=y%10;

c=z/10;
d=z%10;

dx=1;
P0=table[a];
dx=0;
P0=0xff;

wx=1;
P0=0xfe;
wx=0;
delay(1);

dx=1;
P0=table[b];
dx=0;
P0=0xff;

wx=1;
P0=0xfd;
wx=0;
delay(1);

dx=1;
P0=table[c];
dx=0;
P0=0xff;

wx=1;
P0=0xfb;
wx=0;
delay(1);

dx=1;
P0=table[d];
dx=0;
P0=0xff;

wx=1;
P0=0xf7;
wx=0;
delay(1);

dx=1;
P0=table[shi];
dx=0;
P0=0xff;

wx=1;
P0=0xef;
wx=0;
delay(1);

dx=1;
P0=table[ge];
dx=0;
P0=0xff;

wx=1;
P0=0xdf;
wx=0;
delay(1);

}
void init() 初始化子程序
{
P3=0xff;
num=0;
num0=0;
miao=0;
fen=0;
TMOD=0x01;
TH0=(65536-9177)/256;
TL0=(65536-9177)%256;
EA=1;
ET0=1;
}
void key()//按键程序
{
if(key1==0)
{
delay(5);
if(key1==0)
{
fen++;
if(fen==60)
fen=0;
while(!key1);
delay(5);
while(!key1);
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
miao++;
if(miao==60)
miao=0;
while(!key2);
delay(5);
while(!key2);
}
}
if(key3==0)
{
delay(5);
if(key3==0)
{
init();
while(!key3);
delay(5);
while(!key3);
}
}
if(key4==0)
{
delay(5);
if(key4==0)
{
TR0=~TR0;
while(!key4);
delay(5);
while(!key4);
}
}
}
void main()//主函数
{
init();
while(1)
{
key();
display(num,fen,miao);
}
}

void T0_time() interrupt 1 //中断
{
TH0=(65536-9177)/256;
TL0=(65536-9177)%256;//定时器装10毫秒 初值
num0++;
if(num0==1)
{
num0=0;
num++;
if(num==100) 100个10毫秒=1000毫秒为1秒 00~99
{
num=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
fen=0;
}
}
}
}
供你参考..汇编的还没学 不会..抱歉...!希望对你有帮助!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 六年级下册的第三单元的作文怎么写 为什么早餐店里菜单上写着一根油条0.7角,却收钱的时候一根油条7角?我个人判断0.7元=7角 0 普中科技单片机开发实验仪支不支持AT89C51单片机,怎样才行 开一家永和早餐店怎么样? 单片机串口通讯实验时,用11.0592M的实验箱,波特率过低,发送数据为什么接收会乱码? 人教版六年级下册第三单元作文。我的理想。 51单片机实验 电子音响 早上的肯德基早餐菜单丰盛吗? 六年级下册语文第三单元习作 本科生用的单片机实验室,需要哪些器材呢? 想在菜市场那边开个早餐店 早餐店需不需要加盟? 单片机实验箱的不同会造成编程上的不同么?哪里不同?导致无法实现。 嵌入式单片机的实验箱的“串行通讯口”可以直接与笔记本的VGA接口相连吗?如果是,那还需要装什么软件吗 早餐店送豆浆都没什么人来吃 单片机实验箱的系统组成 人教版六年级下册第三单元作文是什么 斐讯K2的“0元购”,最后返回的是返回到哪里啊? 单片机的试验箱上的LED点阵区域的SER;SCLR;SRCLK;RCK分别是什么? 我想开个特色的早餐店求(在学校旁边开.做学生生意)特色的早餐菜谱。还有他的做法? 想开一个早点铺,有什么菜单可以推荐??比如说汤类的,跪谢有经验的前辈 求单片机开发实验箱,驱动及随机软件 想做一个早餐店初期成本计划表,网上模板都下不来,哪位同行大神发给我一份。有劳啦! 在北京达盛科技单片机实验箱EL型(80C51)教学实验环境编程 六年级下册第三单元作文提纲怎么写 厦门的早上都吃什么凭什么可以成为“最豪华”早餐? 小餐饮怎样办税? 餐饮业的会计报税流程是怎样的啊 ?谢谢! 个体工商户(小型餐饮)每月怎么报税?是不是银行自动扣款?需要去税务局或者从网上填表报吗? 这个白尾鸟是什么鸟 白尾鸟怎么养 描写一只你熟悉的鸟,字数不要太多,要写出它的特点 车辆全损保险公司是否全部赔偿? 一只鸟的坚持 虾中之王是什么虾,我说的虾是除了大龙虾和小龙虾以外的好吃的虾 描写鸟的文章,谢谢哦!! 邮票中国鸟白尾地鸦现在市场价格是多少 介绍鸟 作文 不少于200字 作文~!!! 鸟的好段 长一点 写作文急需 用象征的手法写作文(写大自然的事物)(给点思路)