欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: DS1302+Stc12c5a60s2+按鍵的proteus仿真 [打印本頁]

作者: Nancy19    時間: 2018-11-26 19:22
標題: DS1302+Stc12c5a60s2+按鍵的proteus仿真
DS1302+Stc12c5a60s2+按鍵



單片機源程序如下:
  1. #include "ds1302.h"
  2. unsigned char second,minute,hour,week,day,month,year;                //秒、分、時、星期、日、月、年
  3. //---DS1302時鐘初始化2016年5月7日星期六12點00分00秒。---//
  4. //---存儲順序是秒分時日月周年,存儲格式是用BCD碼---//
  5. unsigned char time[]={0x06,0x03,0x14,0x03,0x12,0x30,0x00};        //初始時間數組
  6. /*****************************************************************************
  7. 函數功能:向DS1302送一字節數據子程序
  8. 入口參數:
  9. 出口參數:
  10. *****************************************************************************/
  11. void InputByte(unsigned char byte1)
  12. {
  13.         char i;
  14.         for(i=8;i>0;i--)
  15.         {
  16.                 DS1302_IO=(bit)(byte1&0x01);
  17.                 DS1302_CLK=1;
  18.                 _nop_();
  19.                 DS1302_CLK=0;
  20.                 byte1>>=1;
  21.         }
  22.         return;
  23. }
  24. /*****************************************************************************
  25. 函數功能:讀DS1302一個字節子程序
  26. 入口參數:
  27. 出口參數:
  28. *****************************************************************************/
  29. unsigned char outputbyte(void)  
  30. {
  31.         unsigned char i;
  32.         unsigned ucdat=0;
  33.         for(i=8;i>0;i--)
  34.         {
  35.                 DS1302_IO=1;
  36.                 ucdat>>=1;
  37.                 if(DS1302_IO)ucdat|=0x80;
  38.                 DS1302_CLK=1;
  39.                 _nop_();
  40.                 DS1302_CLK=0;
  41.          }
  42.          return(ucdat);
  43. }
  44. /*****************************************************************************
  45. 函數功能:向DS1302某地址寫一字節數據子程序
  46. 入口參數:addr,TDat
  47. 出口參數:
  48. *****************************************************************************/
  49. void write_ds1302(unsigned char addr,unsigned char TDat)
  50. {
  51.         DS1302_RST=0;
  52.         _nop_();
  53.         DS1302_CLK=0;
  54.         _nop_();
  55.         DS1302_RST=1;
  56.          InputByte(addr);
  57.         _nop_();
  58.         InputByte(TDat);
  59.         DS1302_CLK=1;
  60.         _nop_();
  61.         DS1302_RST=0;
  62. }
  63. /*****************************************************************************
  64. 函數功能:讀DS1302地址子程序
  65. 入口參數:add
  66. 出口參數:timedata
  67. *****************************************************************************/
  68. unsigned char read_ds1302(unsigned char addr)
  69. {
  70.         unsigned char timedata;
  71.         DS1302_RST=0;
  72.         _nop_();
  73.         DS1302_CLK=0;
  74.         _nop_();
  75.         DS1302_RST=1;
  76.         InputByte(addr);
  77.         timedata=OutputByte();
  78.         DS1302_CLK=1;
  79.         _nop_();
  80.         DS1302_RST=0;
  81.         return(timedata);
  82. }
  83. /*****************************************************************************
  84. 函數功能:初始化DS1302子程序
  85. 入口參數:time[](全局變量)
  86. 出口參數:
  87. *****************************************************************************/
  88. void initial_ds1302()
  89. {
  90.         write_ds1302(0x8e,0x00);                //寫保護寄存器,在對時鐘或RAM寫前WP一定要為0
  91.         write_ds1302(0x8c,time[0]);                //年
  92.         write_ds1302(0x88,time[1]);                //月
  93.         write_ds1302(0x86,time[2]);                //日
  94.         write_ds1302(0x8A,time[3]);                //星期
  95.         write_ds1302(0x84,time[4]);                //時
  96.         write_ds1302(0x82,time[5]);                //分
  97.         write_ds1302(0x80,time[6]);                //秒
  98.         write_ds1302(0x8e,0x80);                //寫保護寄存器
  99. }
  100. /*****************************************************************************
  101. 函數功能:讀DS1302時間子程序
  102. 入口參數:
  103. 出口參數:全局變量(second,minute,hour,week,day,month,year)
  104. *****************************************************************************/
  105. void read_time()
  106. {
  107.         second=read_ds1302(0x81);                //秒寄存器
  108.         minute=read_ds1302(0x83);                //分
  109.         hour=read_ds1302(0x85);                        //時
  110.         week=read_ds1302(0x8B);                        //星期
  111.         day=read_ds1302(0x87);                        //日
  112.         month=read_ds1302(0x89);                //月
  113.         year=read_ds1302(0x8d);                        //年
  114.    
  115. }
復制代碼


資料不全,缺源碼,求大家補全程序啊:
protues.zip (38.21 KB, 下載次數: 65)



作者: 有心插花花木蘭    時間: 2019-3-24 23:51
你好,我在用proteus仿真,你的芯片是怎么選擇的?有沒有教程一些可以入門的,有的話發我郵箱或是加好友也行   
作者: 1824380946    時間: 2020-3-5 22:22
你說的這個Stc12c5a60s2單片機你給的資料沒有
作者: 1004862892    時間: 2020-3-30 23:17
東西都不給就讓下載?
作者: 櫻月櫻詩    時間: 2020-4-22 16:46
protues仿真不了STC12系列,沒有這個芯片,需要用AT89代替,然后外接AD芯片等。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1