久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: DS1302在數碼管顯示時,分,秒, 為什么顯示錯誤,時間不走 [打印本頁]

作者: 陌路狂花    時間: 2017-11-27 17:27
標題: DS1302在數碼管顯示時,分,秒, 為什么顯示錯誤,時間不走
# include <reg52.h>
# define uchar unsigned char
# define uint unsigned int
       
sbit        P_HC595_SER   = P2^7;        //pin 14        SER                data input
sbit        P_HC595_RCLK  = P2^5;        //pin 12        RCLk        store (latch) clock
sbit        P_HC595_SRCLK = P2^6;        //pin 11        SRCLK        Shift data clock

sbit rst = P1^0;
sbit io = P1^1;
sbit sclk  = P1^2;

//uchar disp[8];

uchar code t_display[]={
//         0    1    2    3    4    5    6    7    8    9  //
        0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0x40};        // 斷選
uchar code wei[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};    //  位選


void Send_595(uchar dat);
void init();
void write_byte(uchar date);
uchar read_byte();
void write_ds1302(uchar add, uchar date);
uchar read_ds1302(uchar add);
void set_ds1302();
void display();
void write_sfm(uchar, uchar);
void delay(uint z);

uchar shi1,shi2,fen1,fen2,miao1,miao2, miao, shi, fen;
       
       
void main()
{
        init();
        set_ds1302();
        while(1)
        {
                display();
               
                //delay(5);
        }
       
}

void Send_595(uchar dat)
{       
        uint         i;
        for(i=0; i<8; i++)
        {
                if(dat & 0x80)        P_HC595_SER = 1;
                else                        P_HC595_SER = 0;
                P_HC595_SRCLK = 0;
                P_HC595_SRCLK = 1;
                dat = dat << 1;
        }
}
/***** 數碼管初始化 ***/
void init()
{
        Send_595(0x00);
        Send_595(0x00);
        P_HC595_RCLK = 0;
        P_HC595_RCLK = 1;
       
        rst = 0;
      sclk = 0;
}
/***** DS1302  寫一個字節*****/
void write_byte(uchar date)
{
        uchar i, temp;
        temp = date;
        for(i=0; i<8; i++)
        {
                if((temp&0x01) == 1)
                        io = 1;
                else
                        io =0;
                sclk = 0;
                sclk = 1;
                temp >>= 1;
        }
}
/***** DS1302 讀一個字節******/
uchar read_byte()
{
        uchar i, temp;
        for(i=0; i<8; i++)
        {
                temp >>= 1;
                if(io == 1)
                        temp |= 0x01;
                sclk = 1;
                sclk =0;
        }
        return temp;
}
/****** 特定位置寫 ****/
void write_ds1302(uchar add, uchar date)
{
        rst = 0;
        sclk = 0;
        rst =1;
       
        write_byte(add);
        write_byte(date);
       
        sclk = 1;
        rst = 0;
}
/**** 特定位置讀 ***/
uchar read_ds1302(uchar add)
{
        uchar date;
        rst = 0;
        sclk =0;
        rst = 1;
       
        write_byte(add);
        date = read_byte();
       
        sclk = 1;
        rst = 0;
       
        return date;
}
/***** DS1302 初始化 **** */
void set_ds1302()
{
        write_ds1302(0x8e, 0x00);
       
        write_ds1302(0x80, 0x55);
        write_ds1302(0x82, 0x55);
        write_ds1302(0x84, 0x11);
       
        write_ds1302(0x8e, 0x80);       
}
/*****  在數碼管顯示 ***** /
void display()
{
        uchar d;
        write_ds1302(0x8e, 0x00);
       
        d = read_ds1302(0x81);
        miao =  d;
        write_sfm(6, miao);
       
        Send_595(wei[2]);
        Send_595(0x40);
        P_HC595_RCLK = 0;
        P_HC595_RCLK = 1;
        delay(2);
       
        d = read_ds1302(0x83);
        fen = d;
        write_sfm(3, fen);

        Send_595(wei[5]);
        Send_595(0x40);
        P_HC595_RCLK = 0;
        P_HC595_RCLK = 1;
       
        delay(2);
       
        d = read_ds1302(0x85);
        shi = d;
        write_sfm(0, shi);
       
        write_ds1302(0x8e, 0x80);
}

void delay(uint z)
{
        uint x, y;
        for(x=z; x>0; x--)
          for(y=110; y>0; y--);
}
/******* 時分秒 分離個,十位 ***/
void write_sfm(uchar add, uchar date)
{
        uchar shi, ge;
        shi = date/10;
        ge = date%10;
       
        Send_595(wei[add]);
        Send_595(t_display[shi]);
        P_HC595_RCLK = 0;
        P_HC595_RCLK = 1;
       
        delay(2);

        Send_595(wei[add+1]);
        Send_595(t_display[ge]);
        P_HC595_RCLK = 0;
        P_HC595_RCLK = 1;
       
        delay(2);
}

IMG_20171127_172347.jpg (3.28 MB, 下載次數: 87)

顯示的結果

顯示的結果

JW-51開發板.pdf

99.63 KB, 下載次數: 4






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩色图视频 | 久久久国产精品网站 | a亚洲精品 | 日韩第一区| 国产视频久| 欧美影院| 国产精品久久久久久久久久免费看 | 中文字幕电影在线观看 | 麻豆久久| 日本免费一区二区三区四区 | 成人在线网 | 国产精品久久久久不卡 | 国产精品美女视频 | 玖玖综合网| 日韩1区 | 亚洲电影一级片 | 伊人一区 | 综合一区二区三区 | 91人人视频在线观看 | 粉嫩国产精品一区二区在线观看 | 91社影院在线观看 | 日本久久精品视频 | 视频一区二区中文字幕 | 久久精品国产一区 | 一区二区三区四区免费视频 | 日韩视频一区二区三区 | 91久操视频 | 午夜精品久久久久久久久久久久久 | 久热国产在线 | 久久首页 | 99视频免费播放 | 天天综合国产 | 亚洲视频欧美视频 | 亚洲综合视频 | 国产免费一区二区三区 | 欧美精品中文字幕久久二区 | 在线观看视频91 | 国产精品久久国产精品久久 | 国产乱一区二区三区视频 | 狠狠夜夜 | 国产亚洲网站 |