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

標題: 這有個問題找不到,麻煩幫我看一下,謝謝了 [打印本頁]

作者: sensors    時間: 2023-12-5 15:13
標題: 這有個問題找不到,麻煩幫我看一下,謝謝了
#include <REGX52.H>
#include <intrins.h>
#define SomeNOP() _nop_();_nop_();_nop_();_nop_()
#define SM_DAT P0
#define SM_CS  P2
sbit TIME_CE=P1^2;
sbit SDA    =P1^0;
sbit SCL    =P1^1;

UBYTE code  dis_add[6]={0xf8,0xf9,0xfa,0xfb,0xfc,0xfd};
UBYTE code  dis_data[10]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示0-9數字

UBYTE Sec,Min,Hou;
UBYTE data_buffer[6]={0,0,0,0,0,0};

/*********************************************************************
* 名稱: v_RTInputUBYTE
* 說明:
* 功能: 往DS1302寫入1UBYTE數據
* 調用:
* 輸入: ucDa 寫入的數據
* 返回值: 無
***********************************************************************/
void v_RTInputUBYTE(UBYTE ucDa)
{
  BYTE i;
  ACC = ucDa;
  for(i=8; i>0; i--)
  {
    SDA = a0;
    SCL = 1;
    SCL = 0;
    ACC = ACC >> 1;
  }
}
/********************************************************************
*
* 名稱: UBYTE uc_RTOutputUBYTE
* 說明:
* 功能: 從DS1302讀取1UBYTE數據
* 調用:
* 輸入:
* 返回值: ACC
***********************************************************************/
UBYTE uc_RTOutputUBYTE(void)
{
  BYTE i;
  ACC=0;
  TIME_CE=1;
  for(i=8; i>0; i--)
  {
    ACC = ACC >>1;
    a7 = SDA;
    SCL = 1;
    SCL = 0;
  }
  return(ACC);
}
/********************************************************************
*
* 名稱: v_W1302
* 說明: 先寫地址,后寫命令/數據
* 功能: 往DS1302寫入數據
* 調用: v_RTInputUBYTE()
* 輸入: ucAddr: DS1302地址, ucDa: 要寫的數據
* 返回值: 無
***********************************************************************/
void v_W1302(UBYTE ucAddr, UBYTE ucDa)
{
  TIME_CE = 0;
  SCL = 0;
  TIME_CE = 1;
  v_RTInputUBYTE(ucAddr); /* 地址,命令 */
  v_RTInputUBYTE(ucDa); /* 寫1UBYTE數據*/
  SCL = 1;
  TIME_CE =0;
}
/********************************************************************
*
* 名稱: uc_R1302
* 說明: 先寫地址,后讀命令/數據
* 功能: 讀取DS1302某地址的數據
* 調用: v_RTInputUBYTE() , uc_RTOutputUBYTE()
* 輸入: ucAddr: DS1302地址
* 返回值: ucDa :讀取的數據
***********************************************************************/
UBYTE uc_R1302(UBYTE ucAddr)
{
  UBYTE ucDa;
  TIME_CE = 0;
  SCL = 0;
  TIME_CE = 1;
  v_RTInputUBYTE(ucAddr); /* 地址,命令 */
  ucDa = uc_RTOutputUBYTE(); /* 讀1UBYTE數據 */
  SCL = 1;
  TIME_CE =0;
  return(ucDa);
}
/********************************************************************
*
* 名稱: msec
* 說明:
* 功能: 延時程序
* 調用:
* 輸入:        延時多少時間
* 返回值: 無
***********************************************************************/
void msec(UWORD x)         
{
UWORD j;
while (x--)
{
  for(j=0;j<125;j++);
}
}
/********************************************************************
*
* 名稱: data_buff
* 說明:
* 功能: 數據處理
* 調用:
* 輸入:
* 返回值: 無
***********************************************************************/
void data_buff(void)
{   UBYTE h,m,s;
        h=Hou&0xf0;
        h>>=4;
        data_buffer[0]=h;
        data_buffer[1]=Hou&0x0f;
          m=Min&0xf0;
        m>>=4;
        data_buffer[2]=m;
        data_buffer[3]=Min&0x0f;
        s=Sec&0xf0;
        s>>=4;
        data_buffer[4]=s;
        data_buffer[5]=Sec&0x0f;
}
/********************************************************************
*
* 名稱: dis_play
* 說明:
* 功能: 數碼管顯示
* 調用: mse()
* 輸入:
* 返回值: 無
***********************************************************************/
void dis_play(void)
{        UBYTE i;
        UBYTE dat=0;
   for(i=0;i<6;i++)
        {
         P2=dis_add[5-i];
         dat=data_buffer[i];
                if(i%2==0)
                {
                        P0=dis_data[dat];
                }                       
                else if(i==5)
                {
                        P0=dis_data[dat];
                }
                else
                   P0=dis_data[dat]|0x80;
         SomeNOP();
         msec(2);
        }
}
/********************************************************************
*
* 名稱: v_Set1302
* 說明:
* 功能: 設置初始時間
* 調用: v_W1302()
* 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年
*                               7UBYTE (BCD碼) 80 82 84 86 88 8a   8c         寫狀態
                                                                               81 83 85 87 89 8b   8d    讀狀態
* 返回值: 無
***********************************************************************/
void v_Set1302(void)
{
  v_W1302(0x8e,0x00); /* 控制命令,WP=0,寫操作*/
  Sec=0x00;
  Min=0x43;
  Hou=0x17;
  v_W1302(0x80,Sec);
  v_W1302(0x82,Min);
  v_W1302(0x84,Hou);
  v_W1302(0x8e,0x80); /* 控制命令,WP=1,寫保護*/
}
/********************************************************************
*
* 名稱: main
* 說明:
* 功能: 設置時間初始值,讀取DS1302時間通過數碼管顯示
* 調用:  v_Set1302(),uc_R1302(),data_buff(),dis_play()
* 輸入:
* 返回值: 無
***********************************************************************/
void main(void)
{
TIME_CE=0;
//v_Set1302();/*設置時間初始值*/
//v_W1302(0x8e,0x80); /* 控制命令,WP=1,寫保護*/
  while(1)
    {
      Sec= uc_R1302(0x81);/* 秒 */

          Min= uc_R1302(0x83);/* 分 */

      Hou= uc_R1302(0x85);/* 時 */

          data_buff();
      dis_play();
    }
}


作者: chxelc    時間: 2023-12-5 16:05
所以,具體是什么問題?
作者: newlined    時間: 2023-12-5 16:06
你最好說明有什么問題,大家才好入手,不然大家看的一頭霧水。
作者: xuyaqi    時間: 2023-12-5 18:57
關于Keil開發C51單片機的頭文件“REGX52.H“問題。https://blog.csdn.net/XIAO_LUGG/article/details/129973769





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美成人精品一区二区男人看 | 久视频在线观看 | 在线看黄免费 | 狠狠爱综合 | 欧美一区二不卡视频 | 在线看91| 久久久久亚洲精品 | 久久久www成人免费精品 | 视频一区二区国产 | 国产精品福利网 | 天天看天天爽 | 国产精品久久久av | 91精品国产综合久久精品图片 | 亚洲男人天堂 | 亚洲一区二区在线 | 久久精品伊人 | 亚洲日韩中文字幕一区 | 一级黄色录像片子 | 国产综合精品 | 蜜桃视频一区二区三区 | 在线a视频网站 | 日韩久久久久久 | 精品日韩一区二区三区 | 成人视屏在线观看 | 欧美理伦片在线播放 | 91毛片在线看 | 国产亚洲精品精品国产亚洲综合 | 精区3d动漫一品二品精区 | 综合久久综合久久 | 欧美日韩在线免费观看 | 久视频在线 | av网站免费在线观看 | 久久精品二区 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 一区二区福利视频 | 国产黄色网址在线观看 | 久久天天| 国产精品1区2区 | 狼色网 | 99综合 | 日本高清视频在线播放 |