亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds1302.lst

?? 51中ds18b20和ds1320的程序
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V6.12  DS1302                                                                 07/11/2008 16:41:55 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN .\DS1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\DS1302.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <REG51.H>
   2          #include <intrins.h>
   3          //#include "LCD1602.h"
   4          //#include "DS1302.h"
   5          #define uint unsigned int
   6          #define uchar unsigned char
   7          sbit  DS1302_CLK = P1^7;              //實時時鐘時鐘線引腳 
   8          sbit  DS1302_IO  = P1^6;              //實時時鐘數據線引腳 
   9          sbit  DS1302_RST = P1^5;              //實時時鐘復位線引腳
  10          sbit  wireless_1 = P3^0;
  11          sbit  wireless_2 = P3^1;
  12          sbit  wireless_3 = P3^2;
  13          sbit  wireless_4 = P3^3;
  14          sbit  ACC0 = ACC^0;
  15          sbit  ACC7 = ACC^7;
  16          char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;  //秒,分,時到日,月,年位閃的計數
  17          sbit Set = P2^0;       //模式切換鍵
  18          sbit Up = P2^1;        //加法按鈕
  19          sbit Down = P2^2;      //減法按鈕
  20          sbit out = P2^3;       //立刻跳出調整模式按鈕
  21          sbit DQ = P1^0;        //溫度傳送數據IO口
  22          char done,count,temp,flag,up_flag,down_flag;
  23          uchar temp_value;      //溫度值
  24          uchar TempBuffer[5],week_value[2];
  25          
  26          
  27          void show_time();   //液晶顯示程序
  28          /***********1602液晶顯示部分子程序****************/
  29          
  30          
  31          //Port Definitions**********************************************************
  32          sbit LcdRs		= P2^5;
  33          sbit LcdRw		= P2^6;
  34          sbit LcdEn  	= P2^7;
  35          sfr  DBPort 	= 0x80;		//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數據端口
  36          
  37          //內部等待函數**************************************************************************
  38          unsigned char LCD_Wait(void)
  39          {
  40   1      	LcdRs=0;
  41   1      	LcdRw=1;	_nop_();
  42   1      	LcdEn=1;	_nop_();
  43   1      						 
  44   1      	LcdEn=0;
  45   1      	return DBPort;		
  46   1      }
  47          //向LCD寫入命令或數據************************************************************
  48          #define LCD_COMMAND			0      // Command
  49          #define LCD_DATA			1      // Data
  50          #define LCD_CLEAR_SCREEN	0x01      // 清屏
  51          #define LCD_HOMING  		0x02      // 光標返回原點
  52          void LCD_Write(bit style, unsigned char input)
  53          {
  54   1      	LcdEn=0;
  55   1      	LcdRs=style;
C51 COMPILER V6.12  DS1302                                                                 07/11/2008 16:41:55 PAGE 2   

  56   1      	LcdRw=0;		_nop_();
  57   1      	DBPort=input;	_nop_();//注意順序
  58   1      	LcdEn=1;		_nop_();//注意順序
  59   1      	LcdEn=0;		_nop_();
  60   1      	LCD_Wait();	
  61   1      }
  62          
  63          //設置顯示模式************************************************************
  64          #define LCD_SHOW			0x04    //顯示開
  65          #define LCD_HIDE			0x00    //顯示關	  
  66          
  67          #define LCD_CURSOR			0x02 	//顯示光標
  68          #define LCD_NO_CURSOR		0x00    //無光標		     
  69          
  70          #define LCD_FLASH			0x01    //光標閃動
  71          #define LCD_NO_FLASH		0x00    //光標不閃動
  72          
  73          void LCD_SetDisplay(unsigned char DisplayMode)
  74          {
  75   1      	LCD_Write(LCD_COMMAND, 0x08|DisplayMode);	
  76   1      }
  77          
  78          //設置輸入模式************************************************************
  79          #define LCD_AC_UP			0x02
  80          #define LCD_AC_DOWN			0x00      // default
  81          
  82          #define LCD_MOVE			0x01      // 畫面可平移
  83          #define LCD_NO_MOVE			0x00      //default
  84          
  85          void LCD_SetInput(unsigned char InputMode)
  86          {
  87   1      	LCD_Write(LCD_COMMAND, 0x04|InputMode);
  88   1      }
  89          
  90          //初始化LCD************************************************************
  91          void LCD_Initial()
  92          {
  93   1      	LcdEn=0;
  94   1      	LCD_Write(LCD_COMMAND,0x38);           //8位數據端口,2行顯示,5*7點陣
  95   1      	LCD_Write(LCD_COMMAND,0x38);
  96   1      	LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //開啟顯示, 無光標
  97   1      	LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  98   1      	LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC遞增, 畫面不動
  99   1      }
 100          
 101          //液晶字符輸入的位置************************
 102          void GotoXY(unsigned char x, unsigned char y)
 103          {
 104   1      	if(y==0)
 105   1      		LCD_Write(LCD_COMMAND,0x80|x);
 106   1      	if(y==1)
 107   1      		LCD_Write(LCD_COMMAND,0x80|(x-0x40));
 108   1      }
 109          
 110          //將字符輸出到液晶顯示
 111          void Print(unsigned char *str)
 112          {
 113   1      	while(*str!='\0')
 114   1      	{
 115   2      		LCD_Write(LCD_DATA,*str);
 116   2      		str++;
 117   2      	}
C51 COMPILER V6.12  DS1302                                                                 07/11/2008 16:41:55 PAGE 3   

 118   1      }
 119          
 120          
 121          
 122          
 123          
 124          
 125          /***********DS1302時鐘部分子程序******************/
 126          typedef struct __SYSTEMTIME__
 127          {
 128          	unsigned char Second;
 129          	unsigned char Minute;
 130          	unsigned char Hour;
 131          	unsigned char Week;
 132          	unsigned char Day;
 133          	unsigned char Month;
 134          	unsigned char  Year;
 135          	unsigned char DateString[11];
 136          	unsigned char TimeString[9];
 137          }SYSTEMTIME;	//定義的時間類型
 138          SYSTEMTIME CurrentTime;
 139          
 140          
 141          #define AM(X)	X
 142          #define PM(X)	(X+12)            	  // 轉成24小時制
 143          #define DS1302_SECOND	0x80          //時鐘芯片的寄存器位置,存放時間
 144          #define DS1302_MINUTE	0x82
 145          #define DS1302_HOUR		0x84 
 146          #define DS1302_WEEK		0x8A
 147          #define DS1302_DAY		0x86
 148          #define DS1302_MONTH	0x88
 149          #define DS1302_YEAR		0x8C 
 150          
 151          void DS1302InputByte(unsigned char d) 	//實時時鐘寫入一字節(內部函數)
 152          { 
 153   1          unsigned char i;
 154   1          ACC = d;
 155   1          for(i=8; i>0; i--)
 156   1          {
 157   2              DS1302_IO = ACC0;           	//相當于匯編中的 RRC
 158   2              DS1302_CLK = 1;
 159   2              DS1302_CLK = 0;
 160   2              ACC = ACC >> 1; 
 161   2          } 
 162   1      }
 163          
 164          unsigned char DS1302OutputByte(void) 	//實時時鐘讀取一字節(內部函數)
 165          { 
 166   1          unsigned char i;
 167   1          for(i=8; i>0; i--)
 168   1          {
 169   2              ACC = ACC >>1;         			//相當于匯編中的 RRC 
 170   2              ACC7 = DS1302_IO;
 171   2              DS1302_CLK = 1;
 172   2              DS1302_CLK = 0;
 173   2          } 
 174   1          return(ACC); 
 175   1      }
 176          
 177          void Write1302(unsigned char ucAddr, unsigned char ucDa)	//ucAddr: DS1302地址, ucData: 要寫的數據
 178          {
 179   1          DS1302_RST = 0;
C51 COMPILER V6.12  DS1302                                                                 07/11/2008 16:41:55 PAGE 4   

 180   1          DS1302_CLK = 0;
 181   1          DS1302_RST = 1;
 182   1          DS1302InputByte(ucAddr);       	// 地址,命令 
 183   1          DS1302InputByte(ucDa);       	// 寫1Byte數據
 184   1          DS1302_CLK = 1;
 185   1          DS1302_RST = 0;
 186   1      } 
 187          
 188          unsigned char Read1302(unsigned char ucAddr)	//讀取DS1302某地址的數據
 189          {
 190   1          unsigned char ucData;
 191   1          DS1302_RST = 0;
 192   1          DS1302_CLK = 0;
 193   1          DS1302_RST = 1;
 194   1          DS1302InputByte(ucAddr|0x01);        // 地址,命令 
 195   1          ucData = DS1302OutputByte();         // 讀1Byte數據
 196   1          DS1302_CLK = 1;
 197   1          DS1302_RST = 0;
 198   1          return(ucData);
 199   1      }
 200          
 201          
 202          
 203          void DS1302_GetTime(SYSTEMTIME *Time)  //獲取時鐘芯片的時鐘數據到自定義的結構型數組
 204          {
 205   1      	unsigned char ReadValue;
 206   1      	ReadValue = Read1302(DS1302_SECOND);
 207   1      	Time->Second = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 208   1      	ReadValue = Read1302(DS1302_MINUTE);
 209   1      	Time->Minute = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 210   1      	ReadValue = Read1302(DS1302_HOUR);
 211   1      	Time->Hour = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 212   1      	ReadValue = Read1302(DS1302_DAY);
 213   1      	Time->Day = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);	
 214   1      	ReadValue = Read1302(DS1302_WEEK);
 215   1      	Time->Week = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 216   1      	ReadValue = Read1302(DS1302_MONTH);
 217   1      	Time->Month = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 218   1      	ReadValue = Read1302(DS1302_YEAR);
 219   1      	Time->Year = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);	
 220   1      }
 221          
 222          void DateToStr(SYSTEMTIME *Time)    //將時間年,月,日,星期數據轉換成液晶顯示字符串,放到數組里DateString[]
 223          {   if(hide_year<2)                 //這里的if,else語句都是判斷位閃爍,<2顯示數據,>2就不顯示,輸出字符串為 2
             -007/07/22
 224   1          {                               
 225   2      	  Time->DateString[0] = '2';
 226   2      	  Time->DateString[1] = '0';	 
 227   2      	  Time->DateString[2] = Time->Year/10 + '0';
 228   2      	  Time->DateString[3] = Time->Year%10 + '0';
 229   2      	}
 230   1      	  else
 231   1      	    { 
 232   2      	      Time->DateString[0] = ' ';
 233   2      	      Time->DateString[1] = ' ';		 
 234   2      	      Time->DateString[2] = ' ';
 235   2      	      Time->DateString[3] = ' ';
 236   2      		}
 237   1      	Time->DateString[4] = '/';
 238   1      	if(hide_month<2)
 239   1      	{
 240   2      	  Time->DateString[5] = Time->Month/10 + '0';
C51 COMPILER V6.12  DS1302                                                                 07/11/2008 16:41:55 PAGE 5   

 241   2      	  Time->DateString[6] = Time->Month%10 + '0';
 242   2      	}
 243   1      	  else
 244   1      	  {
 245   2      	    Time->DateString[5] = ' ';
 246   2      	    Time->DateString[6] = ' ';
 247   2      	  }
 248   1      	Time->DateString[7] = '/';
 249   1      	if(hide_day<2)
 250   1      	{
 251   2      	  Time->DateString[8] = Time->Day/10 + '0';
 252   2      	  Time->DateString[9] = Time->Day%10 + '0';
 253   2      	}
 254   1      	  else
 255   1      	  {
 256   2      	    Time->DateString[8] = ' ';
 257   2      	    Time->DateString[9] = ' ';	    
 258   2      	  }
 259   1      	if(hide_week<2)
 260   1      	{
 261   2      	  week_value[0] = Time->Week%10 + '0';  //星期的數據另外放到 week_value[]數組里,跟年,月,日的分開存放,因為
             -等一下要在最后顯示
 262   2      	}
 263   1      	  else
 264   1      	  {
 265   2      	    week_value[0] = ' ';
 266   2      	  }
 267   1      	  week_value[1] = '\0';

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91女神在线视频| 国产成人8x视频一区二区| 欧美在线免费视屏| 亚洲线精品一区二区三区| 欧美久久久一区| 国产一区高清在线| 欧美国产1区2区| 色综合天天性综合| 午夜激情一区二区三区| 日韩欧美在线观看一区二区三区| 久久精品国产一区二区三| 中文字幕乱码日本亚洲一区二区| 91老司机福利 在线| 日本美女一区二区三区| 久久先锋影音av鲁色资源网| 99re66热这里只有精品3直播| 亚洲综合另类小说| 日韩午夜在线观看视频| 成人免费视频视频在线观看免费| 亚洲国产日韩精品| 精品国一区二区三区| 91一区二区在线观看| 免费成人在线视频观看| 亚洲欧洲成人精品av97| 欧美一级黄色片| 99亚偷拍自图区亚洲| 青草国产精品久久久久久| 欧美国产一区在线| 欧美一区二区私人影院日本| 成人av午夜影院| 久久99精品久久久久久国产越南 | 欧美精品tushy高清| 国产精品 日产精品 欧美精品| 亚洲精品视频在线| 欧美精品一区二区精品网| 91传媒视频在线播放| 国产精品一区三区| 视频在线在亚洲| 亚洲精选一二三| 国产亚洲成aⅴ人片在线观看| 欧美午夜不卡在线观看免费| 国产sm精品调教视频网站| 视频一区欧美精品| 亚洲老司机在线| 国产欧美一区二区三区在线看蜜臀| 欧美区视频在线观看| 91蜜桃网址入口| 国产成人精品亚洲777人妖| 日韩国产精品大片| 一区二区三区在线观看欧美| 欧美激情中文字幕| 日韩精品一区二区三区老鸭窝 | 美日韩一级片在线观看| 亚洲综合精品久久| 日韩久久一区二区| 国产精品网站在线观看| 国产午夜亚洲精品理论片色戒| 4438亚洲最大| 欧美放荡的少妇| 欧美日韩高清影院| 欧美午夜精品一区二区三区| 色综合久久综合网| 91欧美激情一区二区三区成人| 丁香婷婷综合激情五月色| 国产一区二区影院| 激情小说亚洲一区| 久久99蜜桃精品| 久久国产日韩欧美精品| 日本亚洲免费观看| 美腿丝袜亚洲综合| 老司机精品视频在线| 麻豆精品视频在线观看视频| 国产aⅴ精品一区二区三区色成熟| 爽爽淫人综合网网站| 亚洲va天堂va国产va久| 婷婷综合另类小说色区| 日韩国产精品久久久| 免费的国产精品| 国产在线看一区| 国产在线视频不卡二| 国产成a人亚洲精| 东方欧美亚洲色图在线| 99久久伊人网影院| 色一情一伦一子一伦一区| 欧美最猛性xxxxx直播| 欧美日韩国产一区二区三区地区| 欧美精品丝袜中出| 中文字幕第一区| 亚洲视频在线一区观看| 亚洲乱码日产精品bd| 亚洲电影欧美电影有声小说| 三级成人在线视频| 国产精品夜夜嗨| 99久久精品免费| 欧美日韩国产另类不卡| 精品国产一区二区在线观看| 日本一区二区免费在线观看视频 | 日韩一区在线播放| 亚洲午夜三级在线| 麻豆传媒一区二区三区| 国产99久久久国产精品潘金| 91在线视频免费91| 欧美一级片免费看| 欧美国产1区2区| 亚洲sss视频在线视频| 国产精品香蕉一区二区三区| 91色乱码一区二区三区| 欧美一区二区网站| 中文字幕在线观看一区二区| 五月婷婷综合在线| 国产高清在线观看免费不卡| 91官网在线观看| 精品国产伦一区二区三区观看方式| 国产精品视频第一区| 日韩av一级电影| av电影在线不卡| 日韩三级av在线播放| 亚洲人成网站精品片在线观看| 秋霞电影网一区二区| 97精品国产97久久久久久久久久久久| 777久久久精品| 国产精品久久久久久久久免费桃花 | 久久精品欧美一区二区三区不卡 | 亚洲香肠在线观看| 国产河南妇女毛片精品久久久 | 欧美精品一区二区三区很污很色的| 国产精品成人免费| 久久成人精品无人区| 色噜噜狠狠色综合中国| 久久久噜噜噜久久人人看| 一区二区不卡在线视频 午夜欧美不卡在| 看片的网站亚洲| 欧美性大战久久| 欧美激情中文字幕一区二区| 奇米四色…亚洲| 色8久久精品久久久久久蜜| 国产亚洲午夜高清国产拍精品| 午夜电影一区二区三区| www.亚洲精品| 国产亚洲1区2区3区| 理论片日本一区| 欧美伦理视频网站| 亚洲精品乱码久久久久久黑人 | eeuss影院一区二区三区| 精品国产免费视频| 美国欧美日韩国产在线播放| 欧美在线影院一区二区| 亚洲精品一二三| eeuss鲁一区二区三区| 日本一区二区动态图| 国产精品一线二线三线| 日韩精品在线一区| 蜜桃视频一区二区三区| 欧美日韩国产在线观看| 亚洲成av人片在www色猫咪| 一本久久a久久免费精品不卡| 国产精品欧美极品| av中文字幕在线不卡| 国产亚洲一区二区在线观看| 国模大尺度一区二区三区| 精品国产一区久久| 狠狠色丁香久久婷婷综| 日韩欧美国产一区二区三区 | 久久久99久久| 国产呦萝稀缺另类资源| 久久麻豆一区二区| 国产一区日韩二区欧美三区| 久久久99久久| 成人免费看片app下载| 国产精品进线69影院| 99久久99久久久精品齐齐| 亚洲欧美在线aaa| 在线亚洲人成电影网站色www| 亚洲日本电影在线| 色噜噜狠狠成人网p站| 亚洲国产色一区| 日韩一级片网站| 国产在线播精品第三| 国产精品欧美经典| 一本大道久久精品懂色aⅴ| 一区二区激情小说| 91麻豆精品国产91久久久使用方法| 热久久免费视频| 久久免费看少妇高潮| 99久久精品国产一区| 午夜婷婷国产麻豆精品| 精品国产亚洲在线| 国产mv日韩mv欧美| 亚洲与欧洲av电影| 精品三级在线观看| 91在线免费播放| 日本欧美一区二区在线观看| 久久免费看少妇高潮| 91一区二区三区在线观看| 亚洲电影第三页| 国产欧美一区二区精品仙草咪| 在线观看日产精品| 精品一二三四区| 亚洲激情一二三区| 日韩欧美高清一区|