找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机新手,本想走一个60秒时钟,烧进去之后只闪个零,求大神解答,在线等谢谢

[复制链接]
跳转到指定楼层
楼主
ID:73872 发表于 2015-3-20 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#define Uchar unsigned char
#define Uint unsigned int
Uchar code duan_tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};                        //共阳管编码0-7        取反就相当于共阴管
Uchar code wei_tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};                         //位选吗低电平点亮共阳管
Uchar miao,fen,shi;
void delay1s()
{         unsigned char q;
        for(q=0;q<0x14;q++)
        {{
        TMOD=0x10;               
        TH1=(65536-50000)/256;               
        TL1=(65536-50000)%256;               
        TR1=1;
        while(!TF1);
        TF1=0; }}
}
void delay_t(unsigned char t)
{                                                                                                                                                                                                                   
        unsigned char g;
        for(g=0;g<t;g++)delay1s();
}
void display_miao()
{
        Uint tmp;       
        tmp=miao%10;
        P2=0xfe;
        P0=duan_tab[tmp];       
        delay_t(1);
        tmp=miao/10;
        P2=0xfd;
        P0=duan_tab[tmp];
        delay_t(1);       
}       
void main()
{
        while(1)
        {
         display_miao();   
        }
}

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

使用道具 举报

沙发
ID:73833 发表于 2015-3-20 23:17 | 只看该作者
兄弟,你这是搞的啥子嘛,逮一个定义来的、值为0的数tmp就开始分解、显示了?再就是你那些似乎是定时延时之类的也让人看不懂呀是定时延时

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:73833 发表于 2015-3-20 23:21 | 只看该作者
明天给你搞一个
回复

使用道具 举报

地板
ID:58502 发表于 2015-3-22 00:40 | 只看该作者
void delay1s()函数不是这么写的

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:75077 发表于 2015-3-24 09:15 来自手机 | 只看该作者
需要的话可以给你整个更简单的!
回复

使用道具 举报

6#
ID:73872 发表于 2015-3-24 22:12 | 只看该作者
野强强 发表于 2015-3-24 09:15
需要的话可以给你整个更简单的!

我要我要
回复

使用道具 举报

7#
ID:75077 发表于 2015-3-25 09:10 | 只看该作者

ORG 00H;你好,这个延时60秒的程序,我用汇编写的.你要是有电路图,我直接给你写一个完整的。。。
START:
    MOV R0,#5
LOOP2:
        MOV R1,#200
LOOP1:
    MOV TMOD,#01H
        MOV TL0,#0A0H
        MOV TH0,#15H
        SETB TR0
CHECK:
        JB TF0,FINI
        JMP CHECK
FINI:
     CLR TR0
         CLR TF0
     DJNZ R1, LOOP1
         DJNZ R0,LOOP2
       
END
回复

使用道具 举报

8#
ID:73872 发表于 2015-3-25 10:01 来自手机 | 只看该作者
野强强 发表于 2015-3-25 09:10
ORG 00H;你好,这个延时60秒的程序,我用汇编写的.你要是有电路图,我直接给你写一个完整的。。。
START ...

伙计我没有学汇编啊
有没有c的?
回复

使用道具 举报

9#
ID:75575 发表于 2015-3-29 14:02 | 只看该作者
哈哈   我前两天也在做这个  你可以到这里参考下    http://www.51hei.com/bbs/dpj-32217-1.html


我也把这个程序给你参考下   用的定时器   C语言的    加油!

附件是图片  还有我的源程序

2015-03-29_14-00-47.jpg (44.41 KB, 下载次数: 161)

2015-03-29_14-00-47.jpg

03.zip

1.84 KB, 下载次数: 6

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

10#
ID:75575 发表于 2015-3-29 14:04 | 只看该作者
我回复怎么不见了   你可以到我的帖子里面看下    就是毫秒定时器    用的是中断定时器    你把时间改一下就好了   思路最重要    相信你   我用的是C语言

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

11#
ID:73872 发表于 2015-4-3 10:00 | 只看该作者
酸葡萄爱好者2 发表于 2015-3-29 14:04
我回复怎么不见了   你可以到我的帖子里面看下    就是毫秒定时器    用的是中断定时器    你把时间改一下 ...

伙计谢谢你,但是还是搞不懂啊
回复

使用道具 举报

12#
ID:29301 发表于 2015-4-3 10:02 | 只看该作者
先学定时器怎么用吧,延时程序写的不对

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

13#
ID:69634 发表于 2015-4-3 21:25 | 只看该作者
这是我编写走60秒的带小数点闪烁的时钟,如果加上按键程序,可以做成时钟。写得不太好,你可以参考一下。

#include<reg52.h>
unsigned char code LedChar[]={
        0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x00,
        };
unsigned char LedBuff[8]={

        0x3f, 0x3f, 0x40, 0x3f, 0x5b, 0x80, 0x5b,  0x5b        ,
        };                                                                          
unsigned int cnt = 0;
void main()

{
        unsigned char miao = 0;
        unsigned char feng = 0;
    unsigned char shi = 0;

        TMOD = 0x01;
        TH0 = 0xFC;
        TL0 = 0x67;
        TR0 = 1;
        EA = 1;
        ET0 = 1;

        while(1)
        {
               
                       
                        if(cnt >= 1000)   
                        {
                                cnt = 0;
                                miao++;
                                if (miao%2==0)  {LedBuff[2]=LedChar[10];}
                                else            {LedBuff[2]=LedChar[11];}                              
                                          
                                if (     miao>=60)        { miao=0;feng++;                                           }
                                if (     feng>=60)        {feng=0; shi++ ;   }
                                if (    shi>=12)        {shi=0;    }  

                                LedBuff[0] = LedChar[miao%10];
                                LedBuff[1] = LedChar[miao/10%10];                       
                                LedBuff[3] = LedChar[feng%10];
                                LedBuff[4] = LedChar[feng/10%10];
                                LedBuff[6] = LedChar[shi%10];
                                LedBuff[7] = LedChar[shi/10];
                        }
                  
        }
}
unsigned char i = 0; //i 这个变量写到中断函数里面,只能显示个位的数码管,不知为什么的
void InterruptTimer0()  interrupt 1                 
{
       
        TH0 = 0xFC;
        TL0 = 0x67;//定时器一毫秒中断一次
        cnt++;
        P0 = 0x00;
                        if(i == 0)                                          
                        {P2=7; i++; P0=LedBuff[0];}
                        else if(i == 1)
                        {P2=6; i++; P0=LedBuff[1];}
                    else if(i == 2)
                        {P2=5; i++; P0=LedBuff[2];}
                        else if(i == 3)
                        {P2=4; i++; P0=LedBuff[3];}
                        else if(i == 4)
                        {P2=3; i++; P0=LedBuff[4];}
                        else if(i == 5)
                        {P2=2; i++; P0=LedBuff[5];}
                        else if(i == 6)
                        {P2=1; i++; P0=LedBuff[6];}
                        else if(i == 7)
                        {P2=0; i=0; P0=LedBuff[7];}

}

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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