找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3471|回复: 16
打印 上一主题 下一主题
收起左侧

复位后单片机电子秒表从0-9计时,增加一个按键 求思路

[复制链接]
跳转到指定楼层
楼主
ID:759796 发表于 2020-5-24 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求:
       复位后电子秒表从0-9计时,增加一个按键,当按下按键后,电子秒表数字清0,然后继续开始正常计时。为什么我设计不行?求大神帮忙弄一个程序或者帮忙修改一下

666.png (99.61 KB, 下载次数: 104)

这是本人程序,麻烦帮忙改一下

这是本人程序,麻烦帮忙改一下

777.png (166.25 KB, 下载次数: 98)

777.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:759796 发表于 2020-5-24 13:33 | 只看该作者
难度实在太大,初学者求大神帮忙
回复

使用道具 举报

板凳
ID:326783 发表于 2020-5-24 21:40 | 只看该作者
加一个按键检测,程序思路是清除某个全局变量,放开后进行累加.
回复

使用道具 举报

地板
ID:70069 发表于 2020-5-24 22:44 | 只看该作者
你这是用定时器了还是没有用定时器
回复

使用道具 举报

5#
ID:759796 发表于 2020-5-24 22:56 | 只看该作者
打错了不用增加按键,就是我程序貌似有问题实现不了要求,很奇怪,不知道哪里错了
回复

使用道具 举报

6#
ID:213173 发表于 2020-5-25 12:59 | 只看该作者
分期卖猪肉 发表于 2020-5-24 22:56
打错了不用增加按键,就是我程序貌似有问题实现不了要求,很奇怪,不知道哪里错了

楼主的程序没有什么问题,可以正常工作。会不会是数码管选错了。


  1. #include<reg51.h>
  2. #define SEG P0
  3. void delay1s();
  4. void main(void)
  5. {
  6.         unsigned char code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  7.         unsigned char second;
  8.           TMOD=0x10;  
  9.         while(1)
  10.         {
  11.                 for(second=0;second<10;second++)       
  12.                 {
  13.                         SEG=disp[second];
  14.                         delay1s();
  15.                 }
  16.         }  
  17. }
  18. void delay1s()
  19. {
  20.         unsigned char i;
  21.         for(i=0;i<20;i++)
  22.         {
  23.                 TH1=0x3c;
  24.                 TL1=0xb0;
  25.                 TR1=1;
  26.                 while(!TF1);
  27.                 TF1=0;
  28.         }
  29. }
复制代码



回复

使用道具 举报

7#
ID:682488 发表于 2020-5-25 16:13 | 只看该作者
解决了吗?哪里的问题?
回复

使用道具 举报

8#
ID:759796 发表于 2020-5-25 19:35 | 只看该作者
大长虫 发表于 2020-5-25 16:13
解决了吗?哪里的问题?

不知道为什么显示不了,好奇怪
回复

使用道具 举报

9#
ID:759796 发表于 2020-5-25 19:39 | 只看该作者
wulin 发表于 2020-5-25 12:59
楼主的程序没有什么问题,可以正常工作。会不会是数码管选错了。

你好请问一下图中的RP1和RN1在单片机中叫什么?作用是什么来的?
回复

使用道具 举报

10#
ID:98195 发表于 2020-5-25 19:44 来自手机 | 只看该作者
大哥你的定时器中断函数呢?你在delay1s()中赋值也没用呀
回复

使用道具 举报

11#
ID:759796 发表于 2020-5-25 20:08 | 只看该作者
wulin 发表于 2020-5-25 12:59
楼主的程序没有什么问题,可以正常工作。会不会是数码管选错了。

你好请问你这图完整是怎么样的 我想看看我的电阻阻值和元器件有没有错误
回复

使用道具 举报

12#
ID:759796 发表于 2020-5-25 20:12 | 只看该作者
这线路图有错误吗

回复

使用道具 举报

13#
ID:213173 发表于 2020-5-25 20:36 | 只看该作者
分期卖猪肉 发表于 2020-5-25 20:08
你好请问你这图完整是怎么样的 我想看看我的电阻阻值和元器件有没有错误

仿真.zip (59.19 KB, 下载次数: 10)
回复

使用道具 举报

14#
ID:761067 发表于 2020-5-25 20:43 | 只看该作者
在 for 循环中增加 if(按键按下) second=0; 即可,例如 P2_1  if(P2_1==0)  second=0; 注意 这里需要检测低电平信号。 楼主用的复位按键实现软件复位,相当于软件从头开始屏跑,觉得,这个复位按键不需要软件支持。至于为什么不行,可能protues软件没实现你的硬复位
回复

使用道具 举报

15#
ID:759796 发表于 2020-5-25 22:14 | 只看该作者
我是想在电路图的原基础上增加一个电子元件,然后实现按下复位,开始计时,我程序不是很懂貌似实现不了,不知道为什么,电子线路图也不知道为什么实现不了,实在不好意思半桶水
回复

使用道具 举报

16#
ID:744327 发表于 2020-5-26 08:17 | 只看该作者
定时器程序这样改:
void delay1s() interrupt 3
{
        unsigned char i;
        for(i=0;i<20;i++)
        {
                TH1=0x3c;
                TL1=0xb0;
                TR1=1;
                while(!TF1);
                TF1=0;
        }
回复

使用道具 举报

17#
ID:759796 发表于 2020-5-26 10:31 | 只看该作者
烈火 发表于 2020-5-26 08:17
定时器程序这样改:
void delay1s() interrupt 3
{

在我的程序基础上完整的程序有吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表