娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

#include
#include

sbit  RST   = P2^0;
sbit  CLK   = P2^1;
sbit  DQ    = P2^2;
sbit  TSOR  = P2^3;

sbit  ALERT =P2^4;
sbit  RS    = P2^7;
sbit  RW    = P2^6;
sbit  EN    = P2^5; 
/*------------------------------------------全局變量-------------------------------------------------------*/
statIC unsigned char temp1,temp2;         //溫度值的整數(shù)部分、小數(shù)部分
static unsigned char pos,posset;           //數(shù)字電位器電位值、設(shè)定值
static unsigned char min,sec;              //分鐘、秒
static unsigned char count;                //Timer0中斷計(jì)數(shù)
static unsigned char minset;               //設(shè)定的分鐘數(shù)
static unsigned char status1,status2;  //狀態(tài)標(biāo)志
bit   stop,timeover;     //定時(shí)停止、結(jié)束
static char line0[] ="     00:00      ";
static char line1[] ="   . C         W";


/*-------------------------------------------------------------------------------------------------------------*/
void          InitInterupt();
void          KeyboardDelay();
/*-------------------------------------------LCD驅(qū)動(dòng)函數(shù)------------------------------------------------*/
void          DelayL();
void     DelayS();
void     WriteCommand(unsigned char c);
void     WritEDAta(unsigned char c);
void     ShowChar(unsigned char pos,unsigned char c);
void     ShowString(unsigned char line,char *ptr);
void     InitLcd();
/*----------------------------------------------鍵盤-程序--------------------------------------------------*/
unsigned char GetKey();
/*---------------------------------------------數(shù)字溫度計(jì)驅(qū)動(dòng)-------------------------------------------*/
void          ChangePos(bit sel,unsigned char pos1,unsigned char pos2);
/*------------------------------------------溫度傳感器驅(qū)動(dòng)----------------------------------------------*/
void          Delay15();
void          Delay60();
void          Delay100ms();
void          Write0TS();
void          Write1TS();
bit           ReaDTS();
void          ResetTS();
void          WriteByteTS(unsigned char byte);
unsigned char  ReadByteTS();
void          InitTS();
void          GetTempTS();
/*-------------------------------------------------主程序---------------------------------------------------*/
void main (void) {
     char code str1[]  ="  Hello World!  ";
     char code str2[]  ="   2002-10-20   ";
  unsigned char i;

     SP=0x50;
  ALERT=0;                 //報(bào)警燈滅
  TSOR=1;                 //1-wire總線釋放

     DelayL();
  InitLcd();               //初始化LCD
  DelayL();
     ShowString(0,str1);    //啟動(dòng)畫面
     ShowString(1,str2);
  for(i=0;i<15;i++)
       Delay100ms();
     InitInterupt();         //初始化中斷設(shè)置

     minset=10;               //缺省定時(shí)10分鐘
     posset=0;                //缺省電位器值0
  min=minset;     //初始化數(shù)據(jù)
  pos=posset;
  sec=0;            
     count=0;
     P1=0xF0;
  status1=0;
  status2=0;
  stop=1;
  timeover=0;

     ChangePos(0,255-pos,255-pos);     //設(shè)置電位器

  InitTS();                //初始化溫度計(jì)
  while(1)      //循環(huán)顯示溫度值
  {
       GetTempTS();
    line1[0]=0x20;
    i=temp1;
if(i>39)       //超過40攝氏度,告警燈亮
 ALERT=1;
    if(i>99)      //超過100攝氏度,顯示溫度的百位
    {
      line1[0]=0x31;    
      i-=100;
       }
       line1[1]=i/10+0x30;     //顯示溫度的十位
    line1[2]=i%10+0x30;    //顯示個(gè)位
    line1[4]=temp2+0x30;   //顯示小數(shù)位
    if(timeover)               //若定時(shí)結(jié)束,則電位器緩慢復(fù)0
    {
         for(;pos>0;pos--)
      {
         ChangePos(0,255-pos,255-pos);    
         _nop_();
   _nop_();
      }
   timeover=0;
   posset=0;
    }
       if(pos>posset)       //若按鍵修改電位器位置
    {
      for(;pos>posset;pos--)   //則緩變到設(shè)定值
         {
         ChangePos(0,255-pos,255-pos);    
         _nop_();
      _nop_();
      } 
      ChangePos(0,255-pos,255-pos);
    }
    else if(pos    {
      for(;pos         {
         ChangePos(0,255-pos,255-pos);    
         _nop_();
      _nop_();
      } 
      ChangePos(0,255-pos,255-pos); 
    }
       i=pos;  
    line1[9]=0x20;     //顯示電位器等級(jí)值
    if(i>99)
    {
      line1[9]=i/100+0x30;
         i=i%100;
    }
       line1[10]=i/10+0x30;
       line1[11]=i%10+0x30;
    ShowString(1,line1);
    line0[5]=min/10+0x30;   //顯示時(shí)間
    line0[6]=min%10+0x30;
       line0[8]=sec/10+0x30;
    line0[9]=sec%10+0x30;
    ShowString(0,line0);    
       Delay100ms();
  }
}

void InitInterupt()
{
  TMOD=0x21;               //初始化中斷設(shè)置
  TL1=0xFD;
  TH1=0xFD;
  PX0=1;
  EA=1;                 
  ES=1;                 
  PCON=0;    
  TR1=1;
  SCON=0x50;


  TL0=0x00;                 //定時(shí)0.05m
  TH0=0x4C;  
  ET0=1;

  EX0=1;                
  IT0=1;
}

void KeyboardDelay()        //按鍵中斷延時(shí)
{
 unsigned char i,j;
 i=0x40;
 j=0xFF;
 while(i--)
  while(j--);
}

/*--------------------------------------------中斷處理-----------------------------------------------------*/
Int0_process() interrupt 0 using 0
{
  unsigned char key;
  unsigned char keycode[]= "TP";
  unsigned char step[3]={1,2,5};
  EA=0;
  key=GetKey();                //獲得按鍵值
  switch(key)
  {
   case 0:
     stop=!stop;
  min=minset;
     sec=0;
     break;
   case 1:
   case 2:
   case 3:
     if(stop)
  {
   minset+=step[key-1];
  if(minset>60)
    minset=0;
  min=minset;
  }
     break;
   case 5:
   case 6:
   case 7:
     if(stop)
  {  
   minset-=step[key-5];
  if(minset>60)
    minset=0;
  min=minset;
  }
     break;
   case 9:
   case 10:
   case 11:
   posset+=step[key-9];
     break;
   case 13:
   case 14:
   case 15:
   posset-=step[key-13];
     break;
   default:
     break;
  }
  TR0=!stop;
  KeyboardDelay();
  P1=0xF0;
  EA=1;
}

Timer0_process() interrupt 1 using 0
{
  EA=0;
  TR0=0;
  TL0=0x00;
  TH0=0x4C;
  count++;
  if(count==20)      //如果到累計(jì)定時(shí)到達(dá)1s
  {
   if(sec==0)       //定時(shí)處理
   {
     if(min==0)      //總定時(shí)到,則置結(jié)束標(biāo)志
    timeover=1;
     else
  {
      min--;
      sec=59;
     }  
   }
   else
     sec--;
   count=0;
  }  
  TR0=1;
  EA=1;
}
/*--------------------------------------LCD驅(qū)動(dòng)子程序--------------------------------------------------*/
void DelayL()                           
{unsigned char i,j;
 i=0xF0;
 j=0xFF;
 while(i--)
  while(j--);
}

void DelayS()              
{
 unsigned char i;
 i=0x1F;
 while(i--);
}

void WriteCommand(unsigned char c)       
{
 DelayS();
 EN=0;
 RS=0;
 RW=0;
 _nop_();
 EN=1; 
 P0=c;
 EN=0;
}

void WriteData(unsigned char c)          
{
 DelayS();
 EN=0;
 RS=1;
 RW=0;
 _nop_();
 EN=1; 
 P0=c;
 EN=0;
 RS=0;
}

void ShowChar(unsigned char pos,unsigned char c) 
{
 unsigned char p;
 if(pos>=0x10)
    p=pos+0xB0;
 else
    p=pos+0x80;
 WriteCommand(p);
 WriteData(c);
}

void ShowString(unsigned char line,char *ptr)    
{
 unsigned char l,i;
 l=line<<4;
 for(i=0;i<16;i++)
   ShowChar(l++,*(ptr+i));
}    

void InitLcd()
{
 DelayL();
 WriteCommand(0x38);
 WriteCommand(0x38);
 WriteCommand(0x06);
 WriteCommand(0x0C);
 WriteCommand(0x01);
 WriteCommand(0x80);
}     
/*---------------------------------------------鍵盤子程序-------------------------------------------------*/
unsigned char GetKey()
{
  unsigned k,t,i,j;
  k=P1;
  k=k&0xF0;
  i=0;
  while((k&0x10)&&i<4)
  {
 i++;
 k=k>>1;
  }   
  k=0x01;
  j=0;
  while(j<4)           
  {
    P1=0xFF^k;
 _nop_();
    t=P1;
    t=t^0xFF;
    t=t&0xF0;
    if(t)
   break;
    j++;
 k=k<<1;
  }
  k=j*4+i;
  return k;
}
/*-----------------------------------------數(shù)字溫度計(jì)驅(qū)動(dòng)子程序--------------------------------------*/
void  ChangePos(bit sel,unsigned char pos1,unsigned char pos2)
{  unsigned char i;
     RST=0;
     DQ=0;
     CLK=0;
  RST=1;
  DQ=sel;
     _nop_();
     CLK=1;
     _nop_();
  CLK=0;
     for(i=0;i<8;i++)
  {
  if(pos1&0x80)
       DQ=1;
  else
    DQ=0;
     _nop_();
     CLK=1;
     _nop_();
  CLK=0;
  pos1=pos1<<1;
 }
 for(i=0;i<8;i++)
 {
  if(pos2&0x80)
       DQ=1;
  else
    DQ=0;
     _nop_();
     CLK=1;
     _nop_();
     CLK=0;
  pos2=pos2<<1;
 }
    RST=0;
}

/*------------------------------------------溫度傳感器子程序-------------------------------------------*/
void Delay100ms()              //延時(shí)100ms
{
 unsigned  char i,j,k;
 for(i=0;i<8;i++)
   for(j=0;j<25;j++)
     for(k=0;k<250;k++);
}

void Delay15()                 //延時(shí)15us
{
 unsigned  char i;
 for(i=0;i<8;i++);
}

void Delay60()                 //延時(shí)60us
{
 unsigned  char i;
 for(i=0;i<30;i++);
}

void Write0TS()                //寫bit 0
{
     TSOR=1;
     TSOR=0;
  Delay15();
  Delay15();
  Delay15();
  Delay15();
     TSOR=1;
  _nop_();
  _nop_();
}

void Write1TS()                 //寫bit 1
{
     TSOR=1;
     TSOR=0;
     _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
     TSOR=1;
     _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
     Delay15();
     Delay15();
     Delay15();
}

bit ReadTS()
{
 bit b;
     TSOR=1;
     TSOR=0;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
     TSOR=1;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
     b=TSOR;            
     Delay15();
     Delay15();
     Delay15();
  _nop_();
  _nop_();
  return b;
}

void ResetTS()                //復(fù)位
{unsigned char i;

   TSOR=1;
   TSOR=0;
   for(i=0;i<8;i++)
     Delay60();
   TSOR=1;              
   while(TSOR);         
   for(i=0;i<8;i++)
     Delay60();
}

void WriteByteTS(unsigned char byte)   //寫一個(gè)字節(jié)(byte)
{unsigned char i;
 for(i=0;i<8;i++)
 {
   if(byte&0x01)
     Write1TS();
   else
     Write0TS();
   byte=byte>>1;
 }
}

unsigned char ReadByteTS()          //讀一個(gè)字節(jié)(byte)
{
 unsigned char i,j;
 bit           b;
 j=0;
 for(i=0;i<8;i++)
 {
   b=ReadTS();
   if(b)
     j+=1;
   j=_cror_(j,1);
 }
 return j;
}
           
void InitTS()                 //初始化溫度轉(zhuǎn)換
{
     ResetTS();               
  WriteByteTS(0xCC);       
  WriteByteTS(0x4E);       
  WriteByteTS(0x64);       
     WriteByteTS(0x8A);      
     WriteByteTS(0x1F);      
}

void GetTempTS()                //獲取溫度
{
     ResetTS();               
  WriteByteTS(0xCC);       
  WriteByteTS(0x44);       
  Delay100ms();           
     ResetTS();              
  WriteByteTS(0xCC);      
   WriteByteTS(0xBE);      
     
  temp2=ReadByteTS();
  temp1=ReadByteTS();
  ReadByteTS();
  ReadByteTS();
  ReadByteTS();
  ReadByteTS();
  ReadByteTS();
  ReadByteTS();
  ReadByteTS();
  temp1=temp1<<4;
  temp1+=(temp2&0xF0)>>4;
   temp2=(temp2&0x0F)?5:0;
}
液晶顯示溫度計(jì)程序


關(guān)鍵字:液晶顯示  溫度計(jì) 引用地址:液晶顯示溫度計(jì)程序

上一篇:單片機(jī)與PC機(jī)串口通訊程序
下一篇:PCF8563時(shí)鐘程序

推薦閱讀

手機(jī)智能終端而言,蘋果對(duì)性能與系統(tǒng)優(yōu)化的確堪稱一流,但是在AI硬件層面,天生的基因缺陷就有點(diǎn)悲催了。據(jù)報(bào)道,CES期間,針對(duì)四顆主流AI芯片進(jìn)行了跑分測試,蘋果A11慘成炮灰,似乎落后了一個(gè)時(shí)代。 從截圖來看,較有代表性的VGG16、ResNet50、InceptionV4幾項(xiàng)神經(jīng)網(wǎng)絡(luò)模型跑分成本,蘋果 A11直接墊底。近乎被國產(chǎn)芯片Kirin970、RK3399Pro秒殺的節(jié)奏。...
賭城拉斯維加斯,最不缺的是什么?人和金錢。金碧輝煌的賭場大廳、觥籌交錯(cuò)的各種酒會(huì),荷官與侍應(yīng)生穿梭其中,達(dá)官貴人與富豪明星一擲千金,揮灑著金錢與荷爾蒙。這兩天的拉斯維加斯,成為了全球媒體曝光最高的地點(diǎn)之一,不是因?yàn)橘€場,而是因?yàn)镃ES的到來,來自全球各地的科技達(dá)人、媒體記者等蜂擁而至,朝拜新一年的科技盛宴。隨著2007年汽車行業(yè)企業(yè)首...
示波器作為一種通用的測試測量工具,通常主要用來定性的測試某個(gè)電路的信號(hào)特征。但有時(shí)我們也需要在一個(gè)較長的時(shí)間段內(nèi)分析信號(hào)的偶發(fā)特性或電路的穩(wěn)定性,這時(shí)使用RIGOL數(shù)字示波器的波形錄制及回放、分析功能就可以方便地幫你進(jìn)行長時(shí)間的信號(hào)分析。它最多達(dá)20萬幀的硬件波形錄制及多種波形分析的功能給您使用示波器帶來了更加豐富的測試應(yīng)用體驗(yàn)。本文...
維安電子(WAYON)成立于1996年,是全球電路保護(hù)及功率半導(dǎo)體產(chǎn)品提供商,總部位于上海市浦東新區(qū),在上海、西安、無錫、臺(tái)灣均設(shè)有研發(fā)中心,研發(fā)人員超過200人。其產(chǎn)品廣泛應(yīng)用于消費(fèi)類電子、通信、安防、汽車和工業(yè)設(shè)備等領(lǐng)域,已成為汽車、新能源、5G通信、手機(jī)、IOT等應(yīng)用領(lǐng)域的全球核心供應(yīng)商。歷經(jīng)發(fā)展,維安電子獲得了客戶及業(yè)界的高度認(rèn)可。今年...

史海拾趣

問答坊 | AI 解惑

80年后的女生們最喜歡的十款車型

MINI 甲克蟲 奧迪A5 奔馳SMARTE 雨燕 飛度 菲亞特500 QQ 威姿 標(biāo)志206…

查看全部問答∨

又是bootload的問題---VIVI的工程編譯

本人下載了VIVI,現(xiàn)在疑問,它是在什么IDE編譯的。我系統(tǒng)是XP的,我用ADS或者M(jìn)DK也可以編譯它吧。 我的目的是想自己編譯出boot 的bin文件下載到nandflash中去。 請(qǐng)高手指點(diǎn)一二,小弟將不勝感激…

查看全部問答∨

wince 5中IE不能下載大文件?

好像IE把windows目錄設(shè)置為cache了,下載大的mp3/rar文件出現(xiàn)空間不足。其實(shí)我外部有SD卡 修改了registry,設(shè)置cache為外部,還是不行 …

查看全部問答∨

請(qǐng)問誰有wince5.0正式版的序列號(hào),麻煩共享下,感激不盡啊

請(qǐng)問誰有wince5.0正式版的序列號(hào),麻煩共享下,感激不盡啊 …

查看全部問答∨

求助:關(guān)于I2C Config

I2C_Config IIC_Configt ={      0,//主模式      0,      (20-5),//scl low time      (20-5),      1,      0,  ...…

查看全部問答∨

MSP430FG461X系列的20位地址指針在C語言中如何實(shí)現(xiàn)?

我把一個(gè)20位的地址0x10000,賦值給一個(gè)指針變量時(shí),總是提示超出了0~0xFFFF的范圍。 在匯編中這是可以做到的,因?yàn)镸SP430X提供了MOVA等帶A的指令,且工作寄存器都是20位的,可以用于20位的地址傳輸。就是不知道C語言中怎么實(shí)現(xiàn)。 不知是不是有 ...…

查看全部問答∨

請(qǐng)教定時(shí)器中斷的問題(一直都查不到資料,麻煩高手指點(diǎn))

問題1:一般在主函數(shù)中裝定時(shí)器初值,有必要嗎?我好像試了,不裝也能正常運(yùn)行。 問題2:如果在定時(shí)器1中關(guān)閉了定時(shí)器0,用TR0=1再次打開定時(shí)器0時(shí),需要重新裝定時(shí)器0的初值嗎?還是TR0=1直接就進(jìn)入定時(shí)器0的中斷函數(shù)從頭開始執(zhí)行。我試過兩次不 ...…

查看全部問答∨

對(duì)于FPGA的引腳分配大家是怎么做的呢?

FPGA的IO量很大,如果不是特殊用途的話,很多IO都基本是一致的,在FPGA與存儲(chǔ)器等等外圍芯片連接的時(shí)候,為了方便布線,會(huì)對(duì)IO管腳的分配進(jìn)行調(diào)整,這種調(diào)整大家是怎么做的呢?大家用的是啥PCB工具呢?…

查看全部問答∨

微電流放大總結(jié)

微電流放大電路,可以放大脈動(dòng)微電流信號(hào)…

查看全部問答∨

請(qǐng)您幫我看看這個(gè)電路中的兩個(gè)疑問 謝謝

大家有誰知道發(fā)射級(jí)的電感作用是什么?另外,還請(qǐng)高手賜教一下這個(gè)調(diào)幅電路的放大倍數(shù)應(yīng)該是多少,我是新手  這方面還請(qǐng)大家多多給予指導(dǎo)幫助,謝謝您。…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 上杭县| 河曲县| 伊春市| 文水县| 永和县| 托克托县| 长汀县| 西藏| 云龙县| 新密市| 河东区| 双峰县| 洛川县| 诸暨市| 乌兰察布市| 林西县| 体育| 沭阳县| 璧山县| 碌曲县| 邹平县| 延津县| 松阳县| 闽清县| 夏津县| 防城港市| 宜宾县| 莎车县| 廉江市| 兴山县| 罗定市| 岳阳县| 朔州市| 新乐市| 盐池县| 威远县| 札达县| 洛阳市| 保定市| 双柏县| 大关县|