电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 4822|回复: 12

向单片机高手求救.

[复制链接]
发表于 2013-12-30 17:57:56 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
要求:按键1功能是开始   停止 ;按键2功能是暂停,为的是能让计数员计数,暂停时间为5秒,5秒之后计时又开始,但时间得加上前面暂停的5秒,
按键3功能清零!我只写出了下面这一段。哪位高手帮改下!!!

#include <reg51.h>

unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
                            0x82,0xf8,0x80,0x90,0x7f};   //共阳接法数码管0~9对应代码
unsigned char second;
unsigned char tcount ,t;
sbit d1=P0^7;
void delay(unsigned int c);
void main()
{
          TMOD=0x01;        //定时器0工作在工作方式1下
        TH0=0Xd8;        //设置50ms定时时计数器的初值,TH0=(65536-50000)/256
        TL0=0Xf0;        //                            TL0=(65536-50000)/256
        EA=1;                //CPU开总中断
        ET0=1;                //T0开中断
        TR0=1;                //启动T0
          tcount=0;
          second=0;
        t=0;
  while(1)                        //本段程序功能为显示
  {
   P0=dispcode[second/10];    //段选,显示十位数字

  P2=0X40;
                  //位选
   delay(5);                        //动态扫描
   P0=0xff;
   

   P0=dispcode[second%10];        //段选,显示个位数字
   P2=0x80;                        //位选
   delay(5);                        //动态扫描
   P0=0xff;



   P0=dispcode[t/10];    //段选,显示十位数字

  P2=0X10;
          //位选
   delay(5);                        //动态扫描
   P0=0xff;
   

   P0=dispcode[t%10];        //段选,显示个位数字
   P2=0x20;                        //位选
   d1=0;
   delay(5);                        //动态扫描
   P0=0xff;
  }
}

void t0() interrupt 1 using 0
{
  TH0=0Xd8;                //重装50ms初值,TH0=(65536-50000)/256
  TL0=0Xf0;                //              TL0=(65536-50000)/256
  tcount++;
  if(tcount==1)        //是否1S到了的判断。1S=50ms*20
    {
      tcount=0;
      second++;                //数码管显示的内容加1
      if(second==100)    //是否显示到20的判断
        {
          second=0;     //当数码管显示到20后,返回显示0
                  t++;
                  if(t==100)
                  {
                  second=99;
                  t=99;
                  }
                  
        }            
    }
       
}
void delay(unsigned int c)
{
unsigned int x,y;
for(x=c;x>0;x--)
   for(y=110;y>0;y--);
}
a.png
 楼主| 发表于 2013-12-30 17:58:42 | 显示全部楼层
时间是从00.00秒到99.99秒!!!
发表于 2013-12-30 18:35:45 | 显示全部楼层
可惜看不懂
发表于 2013-12-30 18:38:58 | 显示全部楼层
可惜看不懂
发表于 2013-12-30 18:41:49 | 显示全部楼层
单片机高手不在本论坛呢
发表于 2013-12-30 19:14:54 | 显示全部楼层
俺对单片机一巧不通,帮不了你。
 楼主| 发表于 2013-12-30 19:37:31 | 显示全部楼层
天赐淡雅香 发表于 2013-12-30 19:14
俺对单片机一巧不通,帮不了你。

唉  看来这个论坛大多数是维修高手。
发表于 2013-12-30 19:49:40 | 显示全部楼层
这个用的是C语言
发表于 2013-12-30 20:28:15 | 显示全部楼层
这程序很简单,就是一个通过进中断开定时器的例子。大学那会我写了好多这样的程序,你用protus仿真软件一仿真,再不行就用开发板一弄。你程序现在是不好用,还是怎么的?如果需要联系我电话18661794337
发表于 2013-12-30 20:32:04 | 显示全部楼层
桥式整流 发表于 2013-12-30 19:37
唉  看来这个论坛大多数是维修高手。

如有需要请联系我,胶南市旭芯数码家电维修店。主营项目:相机维修,笔记本维修,单反镜头维修,pcb抄板,电路设计,单片机/PLC程序开发,变频器维修。联系电话18661794337 联系人:王旭
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-4-29 07:30 , Processed in 0.075383 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

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