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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5181|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

求高手畫(huà)程序流程圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:39694 發(fā)表于 2012-5-4 15:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

#include<reg52.h>
#include <intrins.h>
#define WRITE_SECOND       0x80
#define WRITE_MINUTE       0x82
#define WRITE_HOUR         0x84
#define READ_SECOND        0x81
#define READ_MINUTE        0x83
#define READ_HOUR          0x85
#define WRITE_PROTECT      0x8E
#define READ_YEAR          0x8D
#define READ_MONTH         0x89
#define READ_SUN           0x87
#define WRITE_YEAR         0x8C
#define WRITE_MONTH        0x88
#define WRITE_SUN          0x86
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^0;           //定義接口
sbit CE=P3^1;
sbit SCLK=P3^2;
sbit DIO=P3^3;
sbit ACC_7=ACC^7;
uchar code shuzi[10][16]={
{0x00,0x00,0x00,0x1C,0x36,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1C,0x00,0x00},/*"0",0*/
{0x00,0x00,0x00,0x0C,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3F,0x00,0x00},/*"1",1*/
{0x00,0x00,0x00,0x3E,0x63,0x63,0x63,0x30,0x30,0x18,0x0C,0x06,0x63,0x7F,0x00,0x00},/*"2",2*/
{0x00,0x00,0x00,0x3E,0x63,0x63,0x30,0x1C,0x30,0x60,0x60,0x63,0x33,0x1E,0x00,0x00},/*"3",3*/
{0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x36,0x33,0x33,0x7F,0x30,0x30,0x7C,0x00,0x00},/*"4",4*/
{0x00,0x00,0x00,0x7F,0x03,0x03,0x03,0x1F,0x37,0x60,0x60,0x63,0x33,0x1E,0x00,0x00},/*"5",5*/
{0x00,0x00,0x00,0x3C,0x36,0x03,0x03,0x1F,0x37,0x63,0x63,0x63,0x36,0x1C,0x00,0x00},/*"6",6*/
{0x00,0x00,0x00,0x7F,0x33,0x33,0x18,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,0x00},/*"7",7*/
{0x00,0x00,0x00,0x3E,0x63,0x63,0x63,0x36,0x1C,0x36,0x63,0x63,0x63,0x3E,0x00,0x00},/*"8",8*/
{0x00,0x00,0x00,0x1C,0x36,0x63,0x63,0x63,0x76,0x7C,0x60,0x60,0x36,0x1E,0x00,0x00},/*"9",9*/
};
uchar code wenzi1[8][16]={
{0x18,0xF8,0x8C,0x8C,0x86,0xFB,0x99,0x98,0x98,0x98,0xFF,0x80,0x80,0x80,0x80,0x80},
{0xF0,0x30,0x30,0x30,0xF0,0x30,0x30,0x30,0xF0,0x30,0x18,0x18,0x0C,0x06,0x03,0x00},
{0x00,0xFC,0x0C,0x0C,0x0C,0x0C,0xFC,0x0C,0x0C,0x0C,0x0C,0x0C,0xFC,0x0C,0x00,0x00},
{0x00,0x00,0x3F,0x33,0xF3,0x33,0x3F,0xF3,0xB3,0xB3,0x3F,0x00,0x00,0x00,0x00,0x00},
{0x98,0xB8,0x18,0x0C,0x0C,0x06,0x03,0xFD,0x30,0x30,0x30,0x30,0x18,0x8C,0x06,0x03},
{0x38,0x0F,0x0C,0xCC,0xFF,0xCC,0x6E,0x7E,0x3F,0x3F,0x0D,0x0C,0x0C,0x0C,0xCC,0x7C},
{0xC0,0x80,0xFE,0x66,0x66,0xFE,0x66,0xE6,0x06,0xF6,0x66,0xC6,0x86,0xC3,0x73,0x1D},
{0x00,0xF8,0x18,0xD8,0x18,0x18,0xF8,0x18,0xD8,0xD8,0xD8,0xD8,0xCC,0x0C,0x06,0x03},
};
uchar code wenzi2[8][16]={
{0x00,0x3F,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x01,0x01},/*"年",0*/
{0x0F,0x0C,0x0C,0x0C,0x0F,0x0C,0x0C,0x0C,0x0F,0x0C,0x0C,0x0C,0x0C,0x0F,0x06,0x00},/*"月",1*/
{0x00,0x0F,0x0C,0x0C,0x0C,0x0C,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0x0F,0x0C,0x00,0x00},/*"日",2*/
{0x0C,0x0C,0x0C,0x0C,0x7F,0x0C,0x0C,0x0C,0x0D,0x0D,0x0C,0x0C,0x0C,0x0C,0x0F,0x06},/*"時(shí)",3*/
{0x01,0x01,0x03,0x06,0x0E,0x1C,0x78,0x37,0x06,0x06,0x06,0x06,0x06,0x07,0x03,0x00},/*"分",4*/
{0x06,0x06,0x06,0x1E,0x37,0x66,0x66,0x06,0x66,0x66,0x30,0x18,0x0C,0x07,0x01,0x00},/*"秒",5*/
{0x00,0x01,0x7F,0x06,0x06,0x3F,0x06,0x07,0x00,0x1F,0x0C,0x06,0x03,0x0E,0x78,0x30},/*"度",6*/
{0x00,0x7F,0x63,0x6F,0x63,0x63,0x7F,0x60,0x6F,0x6C,0x6C,0x6F,0x6C,0x60,0x78,0x30},/*"周",0*/
};
uchar code xinq1[7][16]={
{0x00,0xF8,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00},
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00},
{0x00,0xFE,0x66,0x66,0x66,0x66,0x66,0x66,0x36,0x36,0x1E,0x0E,0x06,0xFE,0x06,0x00},
{0x00,0xFE,0xC0,0xC0,0xC0,0xC0,0xC0,0xFC,0x60,0x60,0x60,0x60,0x60,0xFF,0x00,0x00},
{0x60,0xC0,0x80,0x80,0xFF,0x00,0x00,0x60,0xE0,0x60,0x30,0x30,0x18,0x0C,0x06,0x00},

};
uchar code xinq2[7][16]={
{0x00,0x1F,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x00,0x00},/*"日",6*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"一",0*/
{0x00,0x18,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xFF,0x00,0x00,0x00},/*"二",1*/
{0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},/*"三",2*/
{0x00,0x7F,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x7E,0x60,0x60,0x60,0x7F,0x60,0x00},/*"四",3*/
{0x00,0x3F,0x00,0x00,0x00,0x00,0x0C,0x1F,0x0C,0x0C,0x0C,0x0C,0x6C,0xFF,0x00,0x00},/*"五",4*/
{0x00,0x01,0x03,0x01,0xFF,0x00,0x00,0x03,0x06,0x0C,0x18,0x38,0x70,0x70,0x30,0x00},/*"六",5*/


};

uint temp,num;
void delay(uint t)
{
for(;t>0;t--);
}
void ys(uint z)//延時(shí)z毫秒
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}           
void Init_Ds18b20(void)     //DS18B20初始化send reset and initialization command
{
DQ = 1; 
delay(10);                     //DQ復(fù)位,不要也可行。          
DQ = 0;                    //單片機(jī)拉低總線
delay(80);                //精確延時(shí),維持至少480us
DQ = 1;                    //釋放總線,即拉高了總線
delay(20);                //此處延時(shí)有足夠,確保能讓DS18B20發(fā)出存在脈沖。
}

uchar Read_One_Byte()       //讀取一個(gè)字節(jié)的數(shù)據(jù)read a byte date
                            //讀數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)的最低有效位先從總線移出
{
uchar i   = 0;
uchar dat = 0;
for(i=8;i>0;i--)
{
   DQ = 0;                  //將總線拉低,要在1us之后釋放總線
                           //單片機(jī)要在此下降沿后的15us內(nèi)讀數(shù)據(jù)才會(huì)有效。
   _nop_();                 //至少維持了1us,表示讀時(shí)序開(kāi)始
   dat >>= 1;               //讓從總線上讀到的位數(shù)據(jù),依次從高位移動(dòng)到低位。
   DQ = 1;                  //釋放總線,此后DS18B20會(huì)控制總線,把數(shù)據(jù)傳輸?shù)娇偩上                //延時(shí)7us,此處參照推薦的讀時(shí)序圖,盡量把控制器采樣時(shí)間放到讀時(shí)序后的15us內(nèi)的最后部分
   if(DQ)                   //控制器進(jìn)行采樣
   {
    dat |= 0x80;            //若總線為1,即DQ為1,那就把dat的最高位置1;若為0,則不進(jìn)行處理,保持為0
   }       
   delay(8);               //此延時(shí)不能少,確保讀時(shí)序的長(zhǎng)度60us。
}
return (dat);
}

void Write_One_Byte(uchar dat)
{
uchar i = 0;
for(i=8;i>0;i--)
{
   DQ = 0;                        //拉低總線
   _nop_();                       //至少維持了1us,表示寫(xiě)時(shí)序(包括寫(xiě)0時(shí)序或?qū)?時(shí)序)開(kāi)始
   DQ = dat&0x01;                 //從字節(jié)的最低位開(kāi)始傳輸
                                 //指令dat的最低位賦予給總線,必須在拉低總線后的15us內(nèi),
                                 //因?yàn)?5us后DS18B20會(huì)對(duì)總線采樣。
   delay(10);                     //必須讓寫(xiě)時(shí)序持續(xù)至少60us
   DQ = 1;                        //寫(xiě)完后,必須釋放總線,
   dat >>= 1;
   delay(8);
}
}


uint Get_Tmp()                   //獲取溫度get the temperature
{
float tt;
uchar a,b;
Init_Ds18b20();                //初始化
Write_One_Byte(0xcc);          //忽略ROM指令
Write_One_Byte(0x44);          //溫度轉(zhuǎn)換指令
Init_Ds18b20();                 //初始化
Write_One_Byte(0xcc);          //忽略ROM指令
Write_One_Byte(0xbe);          //讀暫存器指令
a = Read_One_Byte();           //讀取到的第一個(gè)字節(jié)為溫度LSB
b = Read_One_Byte();           //讀取到的第一個(gè)字節(jié)為溫度MSB
temp = b;                      //先把高八位有效數(shù)據(jù)賦于temp
temp <<= 8;                    //把以上8位數(shù)據(jù)從temp低八位移到高八位
temp = temp|a;                //兩字節(jié)合成一個(gè)整型變量
tt = temp*0.0625;              //得到真實(shí)十進(jìn)制溫度值
                                //因?yàn)镈S18B20可以精確到0.0625度
                                //所以讀回?cái)?shù)據(jù)的最低位代表的是0.0625度
temp = tt*10+0.5;               //放大十倍
                                //這樣做的目的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換為可顯示數(shù)字
                                //同時(shí)進(jìn)行一個(gè)四舍五入操作。
return temp;
}
void Write1302 (uchar addr,dat)  //地址、數(shù)據(jù)發(fā)送子程序
{
 uchar i,temp;
    CE=0;                             //CE 引腳為低,數(shù)據(jù)傳送 中止
    SCLK=0;                           //清零時(shí)鐘總線
    CE=1;                          //CE 引腳為高,邏輯控制有效
    for(i=8;i>0;i--)     //循環(huán)8次移位  發(fā)送地址
    {
     SCLK=0;
        temp=addr;
        DIO=(bit)(temp&0x01);             //每次傳輸?shù)妥止?jié)
        addr>>=1;                        //右移一位
        SCLK=1;
   }
 for(i=8;i>0;i-- )   //發(fā)送數(shù)據(jù)
    {
     SCLK=0;
        temp=dat;
        DIO=(bit)(temp&0x01);
        dat>>=1;
        SCLK=1;
    }
    CE = 0;
}
uchar Read1302(uchar addr) //數(shù)據(jù)讀取子程序
{
         uchar i,temp,dat1,dat2;
         CE=0;
         SCLK=0;
         CE = 1;
         for ( i=8; i>0; i-- )                  //循環(huán)8次移位 發(fā)送地址
         {
           SCLK=0;
           temp=addr;
           DIO=(bit)(temp&0x01);             //每次傳輸?shù)妥止?jié)
           addr>>=1;                         //右移一位
           SCLK=1;
         }
         //讀取數(shù)據(jù)
         for ( i=8; i>0; i-- )
         {
          ACC_7=DIO;
          SCLK = 1;
         ACC>>=1;
          SCLK = 0;
          }
          CE=0;
          dat1=ACC;
          dat2=dat1/16;                                       //數(shù)據(jù)進(jìn)制轉(zhuǎn)換
          dat1=dat1%16;                                     //十六進(jìn)制轉(zhuǎn)十進(jìn)制
          dat1=dat1+dat2*10;
          return (dat1);
 }
void dushij()
{
 uchar i,j,xin,yue,ri,m;
 uint nian;
 nian=2012;
 temp=Get_Tmp();
 ri=Read1302(READ_SUN);
 yue=Read1302(READ_MONTH);
 nian=Read1302(READ_YEAR);
 if(yue==1)
 m=13;
 if(yue==2)
 m=14;
 if(yue>2)
 m=yue;
 xin=((nian%100)+((nian%100)/4)+((nian/100)/4)-(2*(nian/100))+((26*(m+1))/10)+ri-1)%7;
 for(i=0;i<230;i++)
  for(j=0;j<3;j++)
   for(num=0;num<16;num++)
   {
    if(num+i<16)
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=shuzi[Read1302(READ_YEAR)/10][num+i];
     P2=shuzi[Read1302(READ_YEAR)%10][num+i]; 
     ys(2);
    }
    else if((num+i>=16)&(num+i<32))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[0][num+i-16];
     P2=wenzi2[0][num+i-16]; 
     ys(2);
    }
    else if((num+i>=32)&(num+i<48))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=shuzi[Read1302(READ_MONTH)/10][num+i-32];
     P2=shuzi[Read1302(READ_MONTH)%10][num+i-32]; 
     ys(2);
    }
    else if((num+i>=48)&(num+i<64))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[1][num+i-48];
     P2=wenzi2[1][num+i-48];  
     ys(2);
    }
    else if((num+i>=64)&(num+i<80))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=shuzi[Read1302(READ_SUN)/10][num+i-64];
     P2=shuzi[Read1302(READ_SUN)%10][num+i-64]; 
     ys(2);
    }
    else if((num+i>=80)&(num+i<96))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[2][num+i-80];
     P2=wenzi2[2][num+i-80];  
     ys(2);
    }
    else if((num+i>=96)&(num+i<112))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=shuzi[Read1302(READ_HOUR)/10][num+i-96];
     P2=shuzi[Read1302(READ_HOUR)%10][num+i-96]; 
     ys(2);
    }
    else if((num+i>=112)&(num+i<128))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[3][num+i-112];
     P2=wenzi2[3][num+i-112];  
     ys(2);
    }
    else  if((num+i>=128)&(num+i<144))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=shuzi[Read1302(READ_MINUTE)/10][num+i-128];
     P2=shuzi[Read1302(READ_MINUTE)%10][num+i-128]; 
     ys(2);
    }
    else if((num+i>=144)&(num+i<160))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[4][num+i-144];
     P2=wenzi2[4][num+i-144];  
     ys(2);
    }
    else if((num+i>=160)&(num+i<176))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[7][num+i-160];
     P2=wenzi2[7][num+i-160];
      
     ys(2);
    }
    else if((num+i>=176)&(num+i<192))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=xinq1[xin][num+i-176];
     P2=xinq2[xin][num+i-176];  
     ys(2);
    }
    else if((num+i>=192)&(num+i<208))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=shuzi[temp/100][num+i-192];
     P2=shuzi[temp%100/10][num+i-192]; 
     ys(2);
    }
    else if((num+i>=208)&(num+i<224))
    {
     P0=0X00;
     P2=0X00;
     P1=num;
     P0=wenzi1[6][num+i-208];
     P2=wenzi2[6][num+i-208];  
     ys(2);
    }
    else
    {
     P0=0X00;
     P2=0X00;
     P1=num;  
     ys(2);
    }
   }
}
void main()
{
 while(1)
 dushij();
}

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

使用道具 舉報(bào)

沙發(fā)
ID:18852 發(fā)表于 2012-5-7 14:53 | 只看該作者

畫(huà)流程圖有沒(méi)有獎(jiǎng)金呀 ???

回復(fù)

使用道具 舉報(bào)

板凳
ID:18852 發(fā)表于 2012-5-7 14:54 | 只看該作者

畫(huà)流程圖有沒(méi)有獎(jiǎng)金呀 ???

QQ 85385639 可以聯(lián)系我
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天看天天摸天天操 | 国产精品爱久久久久久久 | 操人网 | 天天色天天射天天干 | 免费亚洲婷婷 | 久久精品美女 | 久久久精品一区二区三区 | 国产精品综合视频 | 久久久久久免费看 | 亚洲国产一区二区视频 | 国产91久久精品一区二区 | 成人免费在线视频 | 午夜av免费 | 一区二区三区免费 | 国产精品久久久久久吹潮 | 成人在线精品 | 日韩免费在线观看视频 | 四虎影院在线免费观看 | 久夜精品| 免费国产视频在线观看 | 欧美视频在线免费 | 欧美在线二区 | 国产精品一二三区 | 天天碰日日操 | 午夜精品一区二区三区三上悠亚 | 一级毛片免费看 | 久久精品视频一区二区三区 | 日日干天天操 | 国产一级一级 | 日本欧美在线 | 日韩欧美一区二区三区免费观看 | 欧产日产国产精品99 | 啪一啪 | 人人做人人澡人人爽欧美 | 国产 欧美 日韩 一区 | 青春草国产 | 日日干夜夜操 | 精品国产一区二区三区免费 | 综合色导航 | 日韩欧美在线观看 | 久久精品国产一区二区三区 |