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

標(biāo)題: X5045看門狗的單片機源程序和Proteus仿真原理圖 [打印本頁]

作者: 51黑電子happy    時間: 2017-4-5 03:58
標(biāo)題: X5045看門狗的單片機源程序和Proteus仿真原理圖
單片機X5045看門狗的驅(qū)動的仿真原理圖(proteus仿真工程文件和程序源代碼可到本帖附件下載):



單片機X5045看門狗源程序:

  1. //將數(shù)據(jù)0x55寫入X5045再讀出并送至P1口顯示
  2. #include<reg51.h>
  3. #include<intrins.h>                 //

  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit  SCK=P3^4;
  7. sbit  SI=P3^5;
  8. sbit  SO=P3^6;
  9. sbit  CS=P3^7;

  10. #define WREN 0x06           //寫使能鎖存器允許
  11. #define WRDI 0x04           //寫使能鎖存器禁止
  12. #define WRSR 0x01           //寫狀態(tài)寄存器
  13. #define READ 0x03           //讀出
  14. #define WRITE 0x02          //寫入


  15. void delayxms(uint xms)     //延時xms毫秒
  16. {  uint t1,t2;
  17.    for(t1=xms;t1>0;t1--)
  18.    for(t2=110;t2>0;t2--);
  19. }

  20. uchar ReadCurrent(void)     //從X5045的當(dāng)前地址讀出數(shù)據(jù)  出口參數(shù)x
  21. {  uchar i;
  22.    uchar x=0x00;            //儲存從X5045中讀出的數(shù)據(jù)
  23.    SCK=1;
  24.    for(i=0;i<8;i++)
  25.    {  SCK=1;
  26.       SCK=0;                //在SCK的下降沿讀出數(shù)據(jù)
  27.       x<<=1;                //左移,因為先讀出的是最高的數(shù)據(jù)位
  28.       x|=(uchar)SO;
  29.    }
  30.    return(x);
  31. }         

  32. void WriteCurrent(uchar dat)    //寫數(shù)據(jù)到X5045  入口參數(shù)dat
  33. {  uchar i;
  34.    SCK=0;
  35.    for(i=0;i<8;i++)
  36.    {  SI=(bit)(dat&0x80);
  37.       SCK=0;
  38.       SCK=1;
  39.       dat<<=1;                  //左移,因為首先寫入的是字節(jié)的最高位
  40.    }
  41. }

  42. /*****************************************
  43. 狀態(tài)寄存器,可以設(shè)置看門狗的溢出時間及數(shù)據(jù)保護
  44. 入口參數(shù):rs 存儲寄存器狀態(tài)值
  45. ******************************************/

  46. void WriteSR(uchar rs)          //
  47. {  CS=0;
  48.    WriteCurrent(WREN);
  49.    CS=1;
  50.    CS=0;                    //重新拉低CS,否則下面的寫寄存器狀態(tài)指令將被丟棄
  51.    WriteCurrent(WRSR);
  52.    WriteCurrent(rs);
  53.    CS=1;
  54. }

  55. void WriteSet(uchar dat,uchar addr)         //寫數(shù)據(jù)到X5045的指定地址 入口參數(shù):addr
  56. {  SCK=0;
  57.    CS=0;
  58.    WriteCurrent(WREN);
  59.    CS=1;
  60.    CS=0;                        //重新拉低CS,否則下面的寫寄存器狀態(tài)指令將被丟棄
  61.    WriteCurrent(WRITE);
  62.    WriteCurrent(addr);
  63.    WriteCurrent(dat);
  64.    CS=1;
  65.    SCK=0;
  66. }

  67. uchar ReadSet(uchar addr)               //從X5045的指定地址讀出數(shù)據(jù) 入口參數(shù):addr;出口參數(shù):dat
  68. {  uchar dat;
  69.    SCK=0;
  70.    CS=0;
  71.    WriteCurrent(READ);
  72.    WriteCurrent(addr);
  73.    dat=ReadCurrent();
  74.    CS=1;
  75.    SCK=0;
  76.    return dat;
  77. }

  78. void WatchDog(void)                 //看門狗復(fù)位功能
  79. {  CS=1;
  80.    CS=0;                    //CS引腳的一個下降沿復(fù)位看門狗定時器
  81.    CS=1;
  82. }

  83. void main()                         //主程序
  84. {  WriteSR(0x12);                   //寫狀態(tài)寄存器(設(shè)定看門狗溢出時間600ms,寫不保護)
  85.    delayxms(10);

  86.    {  WriteSet(0X00,0x10);          //將手機0x55寫入指定地址0x10
  87.       delayxms(10);
  88.       P1=ReadSet(0x10);             //將數(shù)據(jù)讀出送P1口,低電平燈亮
  89.       WatchDog();
復(fù)制代碼



該系列源碼包含有很多非常經(jīng)典,代碼風(fēng)格十分規(guī)范,而且注釋詳細的單片機例程,還帶仿真,對于MCU學(xué)習(xí)特別是初學(xué)者是很有幫助的,全部源碼下載(共幾十個項目):http://m.raoushi.com/bbs/dpj-80575-1.html

本例程下載(含proteus仿真工程文件與源碼):
單片機X5045看門狗程序 帶Proteus仿真.rar (47.49 KB, 下載次數(shù): 120)


作者: 菜鳥初識    時間: 2018-4-28 12:27
這是X5045嗎?咋在網(wǎng)上找的不一樣
作者: 523    時間: 2018-6-2 08:29
x25045芯片是軟件里有的?為什么我的找不到
作者: 伏牛孺子    時間: 2018-9-10 16:36
X5045看門狗的單片機源程序和Proteus仿真原理圖
作者: cqupt.qwert    時間: 2019-6-15 00:06
為什么仿真打不開啊
作者: wliuxiaoxiaow    時間: 2020-1-2 20:20
SPI通信的
作者: bomber_kk    時間: 2022-2-1 21:28
proteus是哪個版本的?為啥我的proteus里沒這個元件?




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