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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1499|回復: 0
打印 上一主題 下一主題
收起左側

發個小程序,求大佬給5黑幣,繼續,就5個就好,拜謝

[復制鏈接]
跳轉到指定樓層
樓主
ID:278822 發表于 2018-1-23 14:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  • #include <reg51.h>
  • #include <intrins.h>
  • #include <math.h>
  • #define        uchar unsigned char
  • #define uint unsigned int
  • sbit dat=P1^0;   //串行數據
  • sbit clk0=P1^1;   //串行時鐘
  • sbit lat=P1^2;
  • sbit key1=P0^0;
  • sbit key2=P0^1;
  • sbit key3=P0^2;
  • sbit led1=P0^6;
  • sbit led2=P0^7;
  • sbit  gw=P1^3;   //個位
  • sbit  sw=P1^4;    //十位
  • sbit  bw=P3^3;    //百位
  • sbit  qw=P3^4;
  • sbit pl=P3^6;         //165鎖存
  • sbit clk1=P3^7;        //165時鐘
  • sbit Do=P3^5;
  • sbit DQ=P3^1;
  • code uchar  tab[16]={
  •                 0x3F,
  •                                 0x06,
  •                                 0x5B,
  •                                 0x4F,
  •                                   0x66,
  •                                 0x6D,
  •                                 0x7D,
  •                                 0x07,
  •                                   0x7F,
  •                                 0x6F,
  •                 0x39,  //"C"
  •                 0x79,  //"E"
  •                 0x76,  //"H"
  •                 0x38,  //"L"
  •                 0x40  //"-"
  • };
  • uchar k1,k2,k3;
  • uint t;
  • uchar disbuf[4];
  • uint wendu_h=456,wendu_l=288;
  • ///eeprom address
  • sfr wdtcontr=0xe1;
  • sfr ispdata=0xe2;
  • sfr ispaddrh=0xe3;
  • sfr ispaddrl=0xe4;
  • sfr ispcmd=0xe5;
  • sfr isptrig=0xe6;
  • sfr ispcontr=0xe7;
  • ////////////////////////
  • iapdisable()
  • {
  •         ispcontr=0;ispcmd=0;isptrig=0;
  • }
  • erase(uint addr)
  • {
  •         ispcontr=0x83;ispcmd=0x03;
  •         ispaddrh=addr/256;ispaddrl=addr%256;
  •         EA=0;isptrig=0x46;isptrig=0xb9;_nop_();EA=1;
  •         iapdisable();
  • }
  • uchar readbyte(uint addr)
  • {
  •         uchar ch;
  •         ispcontr=0x83;ispcmd=0x01;ispaddrh=addr/256;ispaddrl=addr%256;
  •         isptrig=0x46;isptrig=0xb9;_nop_();ch=ispdata;
  •         iapdisable();
  •         return ch;
  • }
  • void writebyte(uint addr,uchar ch)
  • {
  •         ispcontr=0x83;ispcmd=0x02;
  •         ispaddrh=addr/256;ispaddrl=addr%256;
  •         ispdata=ch;
  •         isptrig=0x46;isptrig=0xb9;_nop_();
  •         iapdisable();
  • }
  • savedata()
  • {
  •         uint addr=0x2000;
  •         erase(addr);
  •         writebyte(addr,123);
  •         addr++;writebyte(addr,wendu_h);
  •         addr++;writebyte(addr,wendu_l);
  • }
  • void getdata(void)
  • {
  •         uchar label=0;
  •         uint addr=0x2000;
  •         label=readbyte(addr);
  •         if(label==123)
  •         {
  •          addr++;wendu_h=readbyte(addr);
  •          addr++;wendu_l=readbyte(addr);
  •          }
  •         else
  •                 savedata();
  • }
  • ReadDat()
  • {
  • unsigned char i,t;
  • clk1=0;
  • pl=0;
  • pl=1;
  • for(i=0;i<8;i++)
  •   {
  •    t<<=1;       //165在PL有一個脈沖后就輸出0位數據
  •    t|=(bit)Do;
  •    clk1=1;   // 鎖存時鐘=1時74HC165才允許讀數據
  •    clk1=0;
  •   }
  • P0=t;
  • }
  • dsout(unsigned char j)
  • {
  • unsigned char i;
  • for(i=0;i<8;i++)
  •     {
  •      dat=j&0x80;       //高位在前
  •      clk0=1;
  •      clk0=0;
  •      j<<=1;
  •     }
  •   lat=1;
  •   lat=0;               //鎖存
  • }
  • void delay(uint z)
  • {
  •         uint x;
  •         for(x=z;x>0;x--);
  • }
  • ds1ms()
  • {
  • unsigned int d;
  • for(d=0;d<250;d++); //大約1ms@12M
  • }
  • //------送出循環-------------------------
  • //----74HC595顯示程序--------------------
  • display(unsigned char sjqw,sjbw,sjsw,sjgw)
  • {
  •   dsout(tab[sjgw]);gw=0;ds1ms();gw=1;        //查表得到數據段碼送顯示
  •   dsout(tab[sjsw]);sw=0;ds1ms();sw=1;
  •   dsout(tab[sjbw]);bw=0;ds1ms();bw=1;
  •   dsout(tab[sjqw]);qw=0;ds1ms();qw=1;
  • }
  • Init_DS18B20(void)
  • {
  •          unsigned char x=0;
  •          DQ = 1;    //DQ復位
  •          delay(12);  //稍做延時
  •          DQ = 0;    //單片機將DQ拉低
  •          delay(150); //精確延時 大于 480us
  •          DQ = 1;    //拉高總線
  •          delay(60);
  •          x=DQ;      //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  •          delay(30);
  • }
  • //讀一個字節
  • uchar ReadOneChar(void)
  • {
  •         unsigned char i=0;
  •         unsigned char dat = 0;
  •         for (i=8;i>0;i--)
  •          {
  •                   DQ = 0; // 給脈沖信號
  •                   dat>>=1;
  •                   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  •                   DQ = 1; // 給脈沖信號
  •                   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  •                   if(DQ)
  •                   dat|=0x80;
  •                   delay(12);
  •          }
  •          return(dat);
  • }
  • //寫一個字節
  • WriteOneChar(unsigned char dat)
  • {
  •          unsigned char i=0;
  •          for (i=8; i>0; i--)
  •          {
  •                   DQ = 0;
  •                   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  •                   DQ = dat&0x01;
  •                   delay(8);
  •                   DQ = 1;
  •                   dat>>=1;
  •                   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  •          }
  • }
  • adt(uchar x)
  • {
  •         Init_DS18B20();
  •         WriteOneChar(0xCC); // 跳過讀序號列號的操作
  •         WriteOneChar(x); // 啟動溫度轉換
  •         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  •         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  • }
  • //讀取溫度
  • unsigned char a=0;
  • unsigned char b=0;
  • zhuand()
  • {
  •         disbuf[0]=0;
  •         disbuf[1]=t/100;
  •         disbuf[2]=(t%100)/10;
  •         disbuf[3]=t%10;
  • }
  • void zhuan()         //溫度轉換將單片機里二進制溫度轉換成十進制
  • {
  •         uint tt=0;
  •          t=b;//將溫度高八位傳入t
  •         t<<=8;
  •         t=t|a;//將溫度低八位傳入t
  •         if (b>0x07)
  •         {
  •                 t=~t;tt=((t+1)*5)/8;t= tt; //放大10倍輸出并四舍五入
  •                 if(t>=99) t=99;
  •                 zhuand();
  •                 disbuf[0]=14;
  •         }
  •         else{
  •                     tt=t;tt=(t*5)/8;t= tt; //放大10倍輸出并四舍五入
  •                         if(t>=999) t=999;
  •                         if(t>=wendu_h) led1=0;
  •                         if(t<=wendu_l) led2=0;
  •                         zhuand();
  •                 }
  • }
  • scankey1()
  • {
  •         ReadDat();
  •         if(key1==0)
  •         {
  •                 delay(5);
  •                 if(key1==0)
  •            {
  •                     k1++;
  •           while(!key1)
  •              {
  •                      ReadDat();
  •                 }
  •                 }
  •         }
  • }
  • adjust()
  • {        scankey1();
  •         while(k1!=0)
  •          { if(k1==1)
  •        {
  •                     ReadDat();
  •                  if(key2==0)
  •                   {
  •                         delay(5);
  •                         if(key2==0)
  •                         {
  •                             wendu_h++;
  •                             if(wendu_h>=999) wendu_h=999;
  •                                 savedata();
  •                            while(!key2)
  •                          {
  •                                  ReadDat();
  •                         }
  •                         }
  •                   }
  •                   if(key3==0)
  •                   {
  •                         delay(5);
  •                         if(key3==0)
  •                         {
  •                             wendu_h--;
  •                            if(wendu_h<=0) wendu_h=0;
  •                            savedata();
  •                            while(!key3)
  •                          {
  •                                  ReadDat();
  •                         }
  •                         }
  •                   }
  •                 getdata();
  •                 t=wendu_h;
  •         zhuand();
  •                 disbuf[0]=12;

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产色播av在线 | 精品免费| 综合九九 | 欧美久久久久久久久 | 福利二区 | 亚洲综合区 | 亚洲精品久久久久avwww潮水 | 欧美区日韩区 | 午夜成人在线视频 | jizjizjiz中国护士18| 精品一区欧美 | 亚洲精品久久久久久久久久久 | 草草视频在线免费观看 | 国产91在线播放精品91 | 日韩一及片 | 久久免费精品视频 | 在线观看中文字幕一区二区 | 久久久女女女女999久久 | a级大毛片| 日日夜夜天天 | 婷婷五月色综合香五月 | 国产精品18hdxxxⅹ在线 | 国产日韩一区二区三免费高清 | 黄色成人av | 天天拍天天操 | 免费激情 | 国产综合欧美 | 色综合一区二区 | 中文字幕日韩一区 | 激情六月丁香 | 国产欧美精品在线 | 一区二区三区四区视频 | 超碰97人人人人人蜜桃 | 国产美女视频 | 91精品国产乱码久久久久久久 | 日韩日b视频 | 欧美二区在线 | 91视频精选| 中文字幕av在线播放 | av中文字幕在线播放 | 国产乱码精品一区二区三区忘忧草 |