A. 原子力顯微鏡的工作模式
原子力顯微鏡的工作模式是以針尖與樣品之間的作用力的形式來分類的。主要有以下3種操作模式:接觸模式(contact mode) ,非接觸模式( non - contact mode) 和敲擊模式( tapping mode)。 接觸模式(Contact Mode):
優點:掃描速度快,是唯一能夠獲得「原子解析度」圖像的AFM垂直方向上有明顯變化的質硬樣品,有時更適於用Contact Mode掃描成像。
缺點:橫向力影響圖像質量。在空氣中,因為樣品表面吸附液層的毛細作用,使針尖與樣品之間的粘著力很大。橫向力與粘著力的合力導致圖像空間解析度降低,而且針尖刮擦樣品會損壞軟質樣品(如生物樣品,聚合體等)。
非接觸模式:
優點:沒有力作用於樣品表面。
缺點:由於針尖與樣品分離,橫向解析度低;為了避免接觸吸附層而導致針尖膠粘,其掃描速度低於Tapping Mode和Contact Mode AFM。通常僅用於非常怕水的樣品,吸附液層必須薄,如果太厚,針尖會陷入液層,引起反饋不穩,刮擦樣品。由於上述缺點,on-contact Mode的使用受到限制。
輕敲模式:
優點:很好的消除了橫向力的影響。降低了由吸附液層引起的力,圖像解析度高,適於觀測軟、易碎、或膠粘性樣品,不會損傷其表面。
缺點:比Contact Mode AFM 的掃描速度慢。 除了上面三種常見的三種工作模式外,原子力顯微鏡還可以進行下面的工作:
1、橫向力顯微鏡(LFM)
橫向力顯微鏡(LFM)是在原子力顯微鏡(AFM)表面形貌成像基礎上發展的新技術之一。工作原理與接觸模式的原子力顯微鏡相似。當微懸臂在樣品上方掃描時,由於針尖與樣品表面的相互作用,導致懸臂擺動,其擺動的方向大致有兩個:垂直與水平方向。一般來說,激光位置探測器所探測到的垂直方向的變化,反映的是樣品表面的形態,而在水平方向上所探測到的信號的變化,由於物質表面材料特性的不同,其摩擦系數也不同,所以在掃描的過程中,導致微懸臂左右扭曲的程度也不同,檢測器根據激光束在四個象限中,(A+C)-(B+D)這個強度差值來檢測微懸臂的扭轉彎曲程度。而微懸臂的扭轉彎曲程度隨表面摩擦特性變化而增減(增加摩擦力導致更大的扭轉)。激光檢測器的四個象限可以實時分別測量並記錄形貌和橫向力數據。
2、曲線測量
SFM除了形貌測量之外,還能測量力對探針-樣品間距離的關系曲線Zt(Zs)。它幾乎包含了所有關於樣品和針尖間相互作用的必要信息。當微懸臂固定端被垂直接近,然後離開樣品表面時,微懸臂和樣品間產生了相對移動。而在這個過程中微懸臂自由端的探針也在接近、甚至壓入樣品表面,然後脫離,此時原子力顯微鏡(AFM)測量並記錄了探針所感受的力,從而得到力曲線。Zs是樣品的移動,Zt是微懸臂的移動。這兩個移動近似於垂直於樣品表面。用懸臂彈性系數c乘以Zt,可以得到力F=c·Zt。如果忽略樣品和針尖彈性變形,可以通過s=Zt-Zs給出針尖和樣品間相互作用距離s。這樣能從Zt(Zs)曲線決定出力-距離關系F(s)。這個技術可以用來測量探針尖和樣品表面間的排斥力或長程吸引力,揭示定域的化學和機械性質,像粘附力和彈力,甚至吸附分子層的厚度。如果將探針用特定分子或基團修飾,利用力曲線分析技術就能夠給出特異結合分子間的力或鍵的強度,其中也包括特定分子間的膠體力以及疏水力、長程引力等。
3、納米加工
掃描探針納米加工技術是納米科技的核心技術之一,其基本的原理是利用SPM的探針-樣品納米可控定位和運動及其相互作用對樣品進行納米加工操縱,常用的納米加工技術包括:機械刻蝕、電致/場致刻蝕、浸潤筆(Dip-Pen Nano-lithography,DNP)等。
B. 影音格式
①AVI(Audio Video Interleaved)格式:對大多數游戲玩家來說,AVI並不陌生。很多游戲的片首動畫都是AVI格式的。AVI有一個專業的名字,叫做音頻視頻交錯格式。它是由Microsoft公司開發的一種數字音頻與視頻文件格式,原先僅僅用於微軟的視窗視頻操作環境(VFW,Microsoft Video for Windows),現在已被大多數操作系統直接支持。AVI格式允許視頻和音頻交錯在一起同步播放,但AVI文件沒有限定壓縮標准,由此造就了AVI的一個「永遠的心痛」,即AVI文件格式不具有兼容性。不同壓縮標准生成的AVI文件,就必須使用相應的解壓縮演算法才能將之播放出來。用戶常常可以在多媒體光碟上發現它的蹤影,一般用於保存電影、電視等各種影像信息,有時它也出沒於Internet中,主要用於讓用戶欣賞新影片的精彩片段。常用的AVI播放驅動程序,主要有Microsoft Video for Windows或Windows 95/98中的Video 1,以及Intel公司的Indeo Video等等。
②MOV格式(Quick Time):作為Apple公司開發的一種音頻、視頻文件格式,多數人可能不怎麼熟悉Quick Time格式。他用於保存音頻和視頻信息,現在已被包括Apple Mac OS、Microsoft Windows 98/NT等在內的所有主流電腦平台支持。Quick Time文件格式支持25位彩色,支持領先的集成壓縮技術,提供150多種視頻效果,並配有提供了200多種MIDI兼容音響和設備的聲音裝置。新版的Quick Time進一步擴展了原有功能,包含了基於Internet應用的關鍵特性。綜上所述,Quick Time因具有跨平台、存儲空間要求小等技術特點,得到業界的廣泛認可,目前已成為數字媒體軟體技術領域的事實上的工業標准。
③MPEG/MPG/DAT格式:只要在電腦上看VCD,對MPEG感覺就不會陌生。因為VCD光碟壓縮就是MPEG文件格式,Moving Pictures Experts Group(動態圖像專家組)的縮寫,它由國際標准化組織ISO(International Standards Organization)與IEC(International Electronic Committee)於1988年聯合成立,專門致力於運動圖像(MPEG視頻)及其伴音編碼(MPEG音頻)標准化工作。MPEG是運動圖像壓縮演算法的國際標准,現已經被幾乎所有的計算機平台共同支持。和前面某些視頻格式不同的是,MPEG採用有損壓縮方法減少運動圖像中的冗餘信息從而達到高壓縮比的目的,當然這些是在保證影像質量的基礎上進行的。MPEG壓縮標準是針對運動圖像而設計的,其基本方法是:在單位時間內採集並保存第一幀信息,然後只存儲其餘幀相對第一幀發生變化的部分,從而達到壓縮的目的。MPEG的平均壓縮比為50:1,最高可達200:1,壓縮效率之高由此可見一斑。同時圖像和音響的質量也非常好,並且在微機上有統一的標准格式,兼容性相當好。MPEG標准包括MPEG視頻、MPEG音頻和MPEG系統(視頻、音頻同步)三個部分,MP3音頻文件就是MPEG音頻的一個典型應用,而Video CD(VCD)、Super VCD(SVCD)、DVD(Digital Versatile Disk)則是全面採用MPEG技術所產生出來的新型消費類電子產品。
(2)流式視頻格式(Streaming Video Format)
隨著Internet的快速發展,很多視頻數據要求通過網路來進行實時傳輸,但由於視頻文件的體積往往比較大,而現有網路帶寬卻往往比較「狹窄」,千軍萬馬要過獨木橋,其結果當然可想而知。客觀因素限制了視頻數據的實時傳輸和實時播放,於是一種新型的流式視頻(Streaming Video)格式應運而生了。這種流式視頻採用一種「邊傳邊播」的方法,即先從伺服器上下載一部分視頻文件,形成視頻流緩沖區後實時播放,同時繼續下載,為接下來的播放做好准備。這種「邊傳邊播」的方法避免了用戶必須等待整個文件從Internet上全部下載完畢才能觀看的缺點。到目前為此,Internet上使用較多的流式視頻格式主要是以下三種:
①RM(Real Media)格式:RM格式是RealNetworks公司開發的一種新型流式視頻文件格式,它包含三種格式:RealAudio、RealVideo和RealFlash。RealAudio用來傳輸接近CD音質的音頻數據,RealVideo用來傳輸連續視頻數據,而RealFlash則是RealNetworks公司與Macromedia公司新近合作推出的一種高壓縮比的動畫格式。RealMedia可以根據網路數據傳輸速率的不同制定不同的壓縮比率,從而實現在低速率的廣域網上進行影像數據的實時傳送和實時播放。這里主要介紹RealVideo,它除了可以以普通的視頻文件形式播放之外,還可以與RealServer伺服器相配合,首先由RealEncoder負責將已有的視頻文件實時轉換成RealMedia格式,RealServer則負責廣播RealMedia視頻文件。在數據傳輸過程中可以邊下載邊由RealPlayer播放視頻影像,而不必像大多數視頻文件那樣,必須先下載然後才能播放。目前,Internet上已有不少網站利用RealVideo技術進行重大事件的實況轉播。
②MOV文件格式(Quick Time):MOV也可以作為一種流文件格式。QuickTime能夠通過Internet提供實時的數字化信息流、工作流與文件回放功能,為了適應這一網路多媒體應用,QuickTime為多種流行的瀏覽器軟體提供了相應的QuickTime Viewer插件(Plug-in),能夠在瀏覽器中實現多媒體數據的實時回放。該插件的「快速啟動(Fast Start)」功能,可以令用戶幾乎能在發出請求的同時便收看到第一幀視頻畫面,而且,該插件可以在視頻數據下載的同時就開始播放視頻圖像,用戶不需要等到全部下載完畢就能進行欣賞。此外,QuickTime還提供了自動速率選擇功能,當用戶通過調用插件來播放QuickTime多媒體文件時,能夠自己選擇不同的連接速率下載並播放影像,當然,不同的速率對應著不同的圖像質量。此外,QuickTime還採用了一種稱為QuickTime VR的虛擬現實(VR,Virtual Reality)技術,用戶只需通過滑鼠或鍵盤,就可以觀察某一地點周圍360度的景象,或者從空間任何角度觀察某一物體。
③ASF(tAdvanced Streaming Forma)格式:Microsoft公司推出的Advanced Streaming Forma(高級流格式),也是一個在Internet上實時傳播多媒體的技術標准,Microsoft公司的野心很大,希望用ASF取代QuickTime之類的技術標准。ASF的主要優點包括:本地或網路回放、可擴充的媒體類型、部件下載、以及擴展性等。ASF應用的主要部件是NetShow伺服器,再由NetShow伺服器將ASF流發送給網路上的所有NetShow播放器,從而實現單路廣播或多路廣播。這和Real系統的實時轉播則是大同小異。
C. 兒童養生 兒童保健養生有哪些原則
兒童保健的目的主要是以七歲以下小兒為重點,根據其不同時期的生理特點,進行系統的保健管理,及時發現問題早期矯治,降低患病率和死亡率,提高兒童健康水平,促進全面發展。1.新生兒訪視在新生兒出院後的24小時內,各級衛生院醫生或鄉村醫生,進行入戶訪視,至新生兒28天共訪視3-4次。訪視內容包括看新生兒一般狀況,出生及接種情況,全面體格檢查,指導母乳喂養等,發現異常情況及時予以處理。2.新生兒先天疾病篩查在醫院新生兒出生時,由醫生採集足跟血,製成濾紙血片,送交兒童保健所新生兒篩查中心,進行甲狀腺功能低下和苯丙酮尿症二種先天代謝病的篩查。3.兒童定期體格檢查根據年齡不同,各級衛生院醫生對1歲以內小兒每年查體四次,1歲-3歲小兒每年查體二次,3歲-7歲小兒每年查體一次。查體內容包括身高、體重、血色素、口、眼、聽力、智力及血液化驗等項目,及時發現異常予以矯治。4.兒保專科門診兒童保健所及各區縣婦幼保健所(院)開設專科門診,設有保健咨詢、遺傳優生、心理衛生、營養不良、多動症、低體重兒、腦癱康復、口腔正畸、弱視矯治等,以維護兒童身心的健康發育。
具體的範文模板
鏈接:https://pan..com/s/17Bc1dqq3d9SfmHhpj-bfLA
D. 單片機與DS18B20並用LCD1602顯示 c程序
/*main.c自己參考一下改改吧
#include<reg51.h>
#include"DS18B20_3.H"
#defineuintunsignedint
#defineucharunsignedchar
uchara,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;
//flag用於讀取頭文件中的溫度值,和顯示溫度值
#defineyh0x80//LCD第一行的初始位置,因為LCD1602字元地址首位D7恆定為1(100000000=80)
#defineer0x80+0x40//LCD第二行初始位置(因為第二行第一個字元位置地址是0x40)
//液晶屏的與C51之間的引腳連接定義(顯示數據線接C51的P0口)
sbitrs=P2^0;
sbiten=P2^2;
sbitrw=P2^1;//如果硬體上rw接地,就不用寫這句和後面的rw=0了
sbitled=P2^6;//LCD背光開關
//DS1302時鍾晶元與C51之間的引腳連接定義
sbitIO=P1^1;
sbitSCLK=P1^0;
sbitRST=P1^2;
sbitACC0=ACC^0;
sbitACC7=ACC^7;
/************************************************************
ACC累加器=A
ACC.0=E0H
ACC.0就是ACC的第0位。Acc可以位定址。
累加器ACC是一個8位的存儲單元,是用來放數據的。但是,這個存儲單元有其特殊的地位,
是單片機中一個非常關鍵的單元,很多運算都要通過ACC來進行。以後在學習指令時,
常用A來表示累加器。但有一些地方例外,比如在PUSH指令中,就必須用ACC這樣的名字。
一般的說法,A代表了累加器中的內容、而ACC代表的是累加器的地址。
***************************************************************/
//校時按鍵與C51的引腳連接定義
sbitkey1=P1^5;//設置鍵
sbitkey2=P1^6;//加鍵
sbitkey3=P1^7;//減鍵
sbitbuzzer=P1^3;//蜂鳴器,通過三極體9012驅動,埠低電平響
/**************************************************************/
ucharcodetab1[]={"20--"};//年顯示的固定字元
ucharcodetab2[]={"::"};//時間顯示的固定字元
//延時函數,後面經常調用
voiddelay(uintxms)//延時函數,有參函數
{
uintx,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
/********液晶寫入指令函數與寫入數據函數,以後可調用**************/
/*在這個程序中,液晶寫入有關函數會在DS1302的函數中調用,所以液晶程序要放在前面*/
write_1602com(ucharcom)//****液晶寫入指令函數****
{
rs=0;//數據/指令選擇置為指令
rw=0;//讀寫選擇置為寫
P0=com;//送入數據
delay(1);
en=1;//拉高使能端,為製造有效的下降沿做准備
delay(1);
en=0;//en由高變低,產生下降沿,液晶執行命令
}
write_1602dat(uchardat)//***液晶寫入數據函數****
{
rs=1;//數據/指令選擇置為數據
rw=0;//讀寫選擇置為寫
P0=dat;//送入數據
delay(1);
en=1;//en置高電平,為製造下降沿做准備
delay(1);
en=0;//en由高變低,產生下降沿,液晶執行命令
}
lcd_init()//***液晶初始化函數****
{
write_1602com(0x38);//設置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數據
write_1602com(0x0c);//開顯示不顯示游標
write_1602com(0x06);//整屏不移動,游標自動右移
write_1602com(0x01);//清顯示
write_1602com(yh+1);//日歷顯示固定符號從第一行第1個位置之後開始顯示
for(a=0;a<14;a++)
{
write_1602dat(tab1[a]);//向液晶屏寫日歷顯示的固定符號部分
//delay(3);
}
write_1602com(er+2);//時間顯示固定符號寫入位置,從第2個位置後開始顯示
for(a=0;a<8;a++)
{
write_1602dat(tab2[a]);//寫顯示時間固定符號,兩個冒號
//delay(3);
}
}
/*********************over***********************/
/***************DS1302有關子函數********************/
voidwrite_byte(uchardat)//寫一個位元組
{
ACC=dat;
RST=1;
for(a=8;a>0;a--)
{
IO=ACC0;
SCLK=0;
SCLK=1;
ACC=ACC>>1;
}
}
ucharread_byte()//讀一個位元組
{
RST=1;
for(a=8;a>0;a--)
{
ACC7=IO;
SCLK=1;
SCLK=0;
ACC=ACC>>1;
}
return(ACC);
}
//----------------------------------------
voidwrite_1302(ucharadd,uchardat)//向1302晶元寫函數,指定寫入地址,數據
{
RST=0;
SCLK=0;
RST=1;
write_byte(add);
write_byte(dat);
SCLK=1;
RST=0;
}
ucharread_1302(ucharadd)//從1302讀數據函數,指定讀取數據來源地址
{
uchartemp;
RST=0;
SCLK=0;
RST=1;
write_byte(add);
temp=read_byte();
SCLK=1;
RST=0;
return(temp);
}
ucharBCD_Decimal(ucharbcd)//BCD碼轉十進制函數,輸入BCD,返回十進制
{
ucharDecimal;
Decimal=bcd>>4;
return(Decimal=Decimal*10+(bcd&=0x0F));
}
//--------------------------------------
voidds1302_init()//1302晶元初始化子函數(2010-01-07,12:00:00,week4)
{
RST=0;
SCLK=0;
write_1302(0x8e,0x00);//允許寫,禁止防寫
//write_1302(0x80,0x00);//向DS1302內寫秒寄存器80H寫入初始秒數據00
//write_1302(0x82,0x00);//向DS1302內寫分寄存器82H寫入初始分數據00
//write_1302(0x84,0x12);//向DS1302內寫小時寄存器84H寫入初始小時數據12
//write_1302(0x8a,0x04);//向DS1302內寫周寄存器8aH寫入初始周數據4
//write_1302(0x86,0x07);//向DS1302內寫日期寄存器86H寫入初始日期數據07
//write_1302(0x88,0x01);//向DS1302內寫月份寄存器88H寫入初始月份數據01
//write_1302(0x8c,0x10);//向DS1302內寫年份寄存器8cH寫入初始年份數據10
write_1302(0x8e,0x80);//打開防寫
}
//------------------------------------
//溫度顯示子函數
voidwrite_temp(ucharadd,uchardat)//向LCD寫溫度數據,並指定顯示位置
{
uchargw,sw;
gw=dat%10;//取得個位數字
sw=dat/10;//取得十位數字
write_1602com(er+add);//er是頭文件規定的值0x80+0x40
write_1602dat(0x30+sw);//數字+30得到該數字的LCD1602顯示碼
write_1602dat(0x30+gw);//數字+30得到該數字的LCD1602顯示碼
write_1602dat(0xdf);//顯示溫度的小圓圈符號,0xdf是液晶屏字元庫的該符號地址碼
write_1602dat(0x43);//顯示"C"符號,0x43是液晶屏字元庫里大寫C的地址碼
}
//------------------------------------
//時分秒顯示子函數
voidwrite_sfm(ucharadd,uchardat)//向LCD寫時分秒,有顯示位置加、現示數據,兩個參數
{
uchargw,sw;
gw=dat%10;//取得個位數字
sw=dat/10;//取得十位數字
write_1602com(er+add);//er是頭文件規定的值0x80+0x40
write_1602dat(0x30+sw);//數字+30得到該數字的LCD1602顯示碼
write_1602dat(0x30+gw);//數字+30得到該數字的LCD1602顯示碼
}
//-------------------------------------
//年月日顯示子函數
voidwrite_nyr(ucharadd,uchardat)//向LCD寫年月日,有顯示位置加數、顯示數據,兩個參數
{
uchargw,sw;
gw=dat%10;//取得個位數字
sw=dat/10;//取得十位數字
write_1602com(yh+add);//設定顯示位置為第一個位置+add
write_1602dat(0x30+sw);//數字+30得到該數字的LCD1602顯示碼
write_1602dat(0x30+gw);//數字+30得到該數字的LCD1602顯示碼
}
//-------------------------------------------
voidwrite_week(ucharweek)//寫星期函數
{
write_1602com(yh+0x0c);//星期字元的顯示位置
switch(week)
{
case1:write_1602dat('M');//星期數為1時,顯示
write_1602dat('O');
write_1602dat('N');
break;
case2:write_1602dat('T');//星期數據為2時顯示
write_1602dat('U');
write_1602dat('E');
break;
case3:write_1602dat('W');//星期數據為3時顯示
write_1602dat('E');
write_1602dat('D');
break;
case4:write_1602dat('T');//星期數據為4是顯示
write_1602dat('H');
write_1602dat('U');
break;
case5:write_1602dat('F');//星期數據為5時顯示
write_1602dat('R');
write_1602dat('I');
break;
case6:write_1602dat('S');//星期數據為6時顯示
write_1602dat('T');
write_1602dat('A');
break;
case7:write_1602dat('S');//星期數據為7時顯示
write_1602dat('U');
write_1602dat('N');
break;
}
}
//****************鍵盤掃描有關函數**********************
voidkeyscan()
{
if(key1==0)//---------------key1為功能鍵(設置鍵)--------------------
{
delay(9);//延時,用於消抖動
if(key1==0)//延時後再次確認按鍵按下
{
buzzer=0;//蜂鳴器短響一次
delay(20);
buzzer=1;
while(!key1);
key1n++;
if(key1n==9)
key1n=1;//設置按鍵共有秒、分、時、星期、日、月、年、返回,8個功能循環
switch(key1n)
{
case1:TR0=0;//關閉定時器
//TR1=0;
write_1602com(er+0x09);//設置按鍵按動一次,秒位置顯示游標
write_1602com(0x0f);//設置游標為閃爍
temp=(miao)/10*16+(miao)%10;//秒數據寫入DS1302
write_1302(0x8e,0x00);
write_1302(0x80,0x80|temp);//miao
write_1302(0x8e,0x80);
break;
case2:write_1602com(er+6);//按2次fen位置顯示游標
//write_1602com(0x0f);
break;
case3:write_1602com(er+3);//按動3次,shi
//write_1602com(0x0f);
break;
case4:write_1602com(yh+0x0e);//按動4次,week
//write_1602com(0x0f);
break;
case5:write_1602com(yh+0x0a);//按動5次,ri
//write_1602com(0x0f);
break;
case6:write_1602com(yh+0x07);//按動6次,yue
//write_1602com(0x0f);
break;
case7:write_1602com(yh+0x04);//按動7次,nian
//write_1602com(0x0f);
break;
case8:
write_1602com(0x0c);//按動到第8次,設置游標不閃爍
TR0=1;//打開定時器
temp=(miao)/10*16+(miao)%10;
write_1302(0x8e,0x00);
write_1302(0x80,0x00|temp);//miao數據寫入DS1302
write_1302(0x8e,0x80);
break;
}
}
}
//------------------------------加鍵key2----------------------------
if(key1n!=0)//當key1按下以下。再按以下鍵才有效(按鍵次數不等於零)
{
if(key2==0)//上調鍵
{
delay(10);
if(key2==0)
{
buzzer=0;//蜂鳴器短響一次
delay(20);
buzzer=1;
while(!key2);
switch(key1n)
{
case1:miao++;//設置鍵按動1次,調秒
if(miao==60)
miao=0;//秒超過59,再加1,就歸零
write_sfm(0x08,miao);//令LCD在正確位置顯示"加"設定好的秒數
temp=(miao)/10*16+(miao)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x80,temp);//向DS1302內寫秒寄存器80H寫入調整後的秒數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(er+0x09);//因為設置液晶的模式是寫入數據後,游標自動右移,所以要指定返回
//write_1602com(0x0b);
break;
case2:fen++;
if(fen==60)
fen=0;
write_sfm(0x05,fen);//令LCD在正確位置顯示"加"設定好的分數據
temp=(fen)/10*16+(fen)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x82,temp);//向DS1302內寫分寄存器82H寫入調整後的分數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(er+6);//因為設置液晶的模式是寫入數據後,指針自動加一,在這里是寫回原來的位置
break;
case3:shi++;
if(shi==24)
shi=0;
write_sfm(2,shi);//令LCD在正確的位置顯示"加"設定好的小時數據
temp=(shi)/10*16+(shi)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x84,temp);//向DS1302內寫小時寄存器84H寫入調整後的小時數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(er+3);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case4:week++;
if(week==8)
week=1;
write_1602com(yh+0x0C);//指定'加'後的周數據顯示位置
write_week(week);//指定周數據顯示內容
temp=(week)/10*16+(week)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x8a,temp);//向DS1302內寫周寄存器8aH寫入調整後的周數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+0x0e);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case5:ri++;
if(ri==32)
ri=1;
write_nyr(9,ri);//令LCD在正確的位置顯示"加"設定好的日期數據
temp=(ri)/10*16+(ri)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x86,temp);//向DS1302內寫日期寄存器86H寫入調整後的日期數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+10);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case6:yue++;
if(yue==13)
yue=1;
write_nyr(6,yue);//令LCD在正確的位置顯示"加"設定好的月份數據
temp=(yue)/10*16+(yue)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x88,temp);//向DS1302內寫月份寄存器88H寫入調整後的月份數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+7);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case7:nian++;
if(nian==100)
nian=0;
write_nyr(3,nian);//令LCD在正確的位置顯示"加"設定好的年份數據
temp=(nian)/10*16+(nian)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x8c,temp);//向DS1302內寫年份寄存器8cH寫入調整後的年份數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+4);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
}
}
}
//------------------減鍵key3,各句功能參照'加鍵'注釋---------------
if(key3==0)
{
delay(10);//調延時,消抖動
if(key3==0)
{
buzzer=0;//蜂鳴器短響一次
delay(20);
buzzer=1;
while(!key3);
switch(key1n)
{
case1:miao--;
if(miao==-1)
miao=59;//秒數據減到-1時自動變成59
write_sfm(0x08,miao);//在LCD的正確位置顯示改變後新的秒數
temp=(miao)/10*16+(miao)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x80,temp);//向DS1302內寫秒寄存器80H寫入調整後的秒數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(er+0x09);//因為設置液晶的模式是寫入數據後,指針自動加一,在這里是寫回原來的位置
//write_1602com(0x0b);
break;
case2:fen--;
if(fen==-1)
fen=59;
write_sfm(5,fen);
temp=(fen)/10*16+(fen)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x82,temp);//向DS1302內寫分寄存器82H寫入調整後的分數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(er+6);//因為設置液晶的模式是寫入數據後,指針自動加一,在這里是寫回原來的位置
break;
case3:shi--;
if(shi==-1)
shi=23;
write_sfm(2,shi);
temp=(shi)/10*16+(shi)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x84,temp);//向DS1302內寫小時寄存器84H寫入調整後的小時數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(er+3);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case4:week--;
if(week==0)
week=7;
write_1602com(yh+0x0C);//指定'加'後的周數據顯示位置
write_week(week);//指定周數據顯示內容
temp=(week)/10*16+(week)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x8a,temp);//向DS1302內寫周寄存器8aH寫入調整後的周數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+0x0e);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case5:ri--;
if(ri==0)
ri=31;
write_nyr(9,ri);
temp=(ri)/10*16+(ri)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x86,temp);//向DS1302內寫日期寄存器86H寫入調整後的日期數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+10);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case6:yue--;
if(yue==0)
yue=12;
write_nyr(6,yue);
temp=(yue)/10*16+(yue)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x88,temp);//向DS1302內寫月份寄存器88H寫入調整後的月份數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+7);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
case7:nian--;
if(nian==-1)
nian=99;
write_nyr(3,nian);
temp=(nian)/10*16+(nian)%10;//十進制轉換成DS1302要求的DCB碼
write_1302(0x8e,0x00);//允許寫,禁止防寫
write_1302(0x8c,temp);//向DS1302內寫年份寄存器8cH寫入調整後的年份數據BCD碼
write_1302(0x8e,0x80);//打開防寫
write_1602com(yh+4);//因為設置液晶的模式是寫入數據後,指針自動加一,所以需要游標回位
break;
}
}
}
}
}
//-------------------------------
voidinit()//定時器、計數器設置函數
{
TMOD=0x11;//指定定時/計數器的工作方式為3
TH0=0;//定時器T0的高四位=0
TL0=0;//定時器T0的低四位=0
EA=1;//系統允許有開放的中斷
ET0=1;//允許T0中斷
TR0=1;//開啟中斷,啟動定時器
}
//*******************主函數**************************
//***************************************************
voidmain()
{
lcd_init();//調用液晶屏初始化子函數
ds1302_init();//調用DS1302時鍾的初始化子函數
init();//調用定時計數器的設置子函數
led=0;//打開LCD的背光電源
buzzer=0;//蜂鳴器長響一次
delay(80);
buzzer=1;
while(1)//無限循環下面的語句:
{
keyscan();//調用鍵盤掃描子函數
}
}
voidtimer0()interrupt1//取得並顯示日歷和時間
{
//Init_DS18B20();//溫度感測器DS18b2初始化子函數,在頭文件中
flag=ReadTemperature();//將18b2頭文件運行返回的函數結果送到變數FLAG中,用於顯示
//讀取秒時分周日月年七個數據(DS1302的讀寄存器與寫寄存器不一樣):
miao=BCD_Decimal(read_1302(0x81));
fen=BCD_Decimal(read_1302(0x83));
shi=BCD_Decimal(read_1302(0x85));
ri=BCD_Decimal(read_1302(0x87));
yue=BCD_Decimal(read_1302(0x89));
nian=BCD_Decimal(read_1302(0x8d));
week=BCD_Decimal(read_1302(0x8b));
//顯示溫度、秒、時、分數據:
write_temp(12,flag);//顯示溫度,從第二行第12個字元後開始顯示
write_sfm(8,miao);//秒,從第二行第8個字後開始顯示(調用時分秒顯示子函數)
write_sfm(5,fen);//分,從第二行第5個字元後開始顯示
write_sfm(2,shi);//小時,從第二行第2個字元後開始顯示
//顯示日、月、年數據:
write_nyr(9,ri);//日期,從第二行第9個字元後開始顯示
write_nyr(6,yue);//月份,從第二行第6個字元後開始顯示
write_nyr(3,nian);//年,從第二行第3個字元後開始顯示
write_week(week);
}
《星空日記》網路網盤高清資源免費在線觀看
鏈接: https://pan..com/s/1WQGbpdjNoy98SfMzDu84hQ
《星空日記》是繼《女生日記》、《男生日記》走紅網路之後,北京大學再次推出的紀念畢業季的微電影,由北京大學師生共同完成,北京大學副教授陳宇執導。《星空日記》也是「青春日記系列三部曲」的收官之作。
F. D3群在三維實空間中的矩陣表示是怎麼算的
MVS是一種從具有一定重疊度的多視圖視角中恢復場景的稠密結構的技術,傳統方法利用幾何、光學一致性構造匹配代價,進行匹配代價累積,再估計深度值。雖然傳統方法有較高的深度估計精度,但由於存在缺少紋理或者光照條件劇烈變化的場景中的錯誤匹配,傳統方法的深度估計完整度還有很大的提升空間。近年來卷積神經網路已經成功被應用在特徵匹配上,提升了立體匹配的精度。在這樣的背景下,香港科技大學Yaoyao等人,在2018年提出了一種基於深度學習的端到端深度估計框架——MVSNet。
多視圖立體匹配(Multi-view Stereo, MVS)是計算機領域中一個核心問題。重建多視圖立體匹配,可以認為是拍攝既定場景的一個逆過程。相機映射下,三維場景變換為二維,而多視圖立體匹配重建正好相反,其從這樣子。不同視點拍攝圖像,恢復出真實的三維場景。
傳統的方法使用手工設計的相似性度量指標和正則化方法計算場景的稠密對應關系(比如使用歸一化互相關Normalized Cross-Correlation和半全局匹配semi-global matching)。這些方法在非朗伯體表面、無弱紋理區域的場景可以達到很好的效果。但是在弱紋理區域,人工設計的相似性指標變得不可信,因此導致重建結果不完整。由MVS數據集的排行榜可知,這些方法具有很高的精度,然而在重建的完整度方法還有很大的空間可以提升。
卷積神經網路的研究的最新進展引發了人們完善立體匹配重建熱情。從概念看,基於學習演算法能夠捕獲全局的語義信息,比如基於高光和反射的先驗條件,便於得到更加穩健的匹配。目前已經探求一些兩視圖立體匹配,用神經網路替換手工設計的相似性度量或正則化方法。這些方法展現出更好的結果,並且逐步超過立體匹配領域的傳統方法。事實上,立體匹配任務完全適合使用CNN,因為圖像對是已經過修正過的,因此立體匹配問題轉化為水平方向上逐像素的視差估計。
與雙目立體匹配不同的是,MVS的輸入是任意數目的視圖,這是深度學習方法需要解決的一個棘手的問題。而且只有很少的工作意識到該問題,比如SurfaceNet事先重建彩色體素立方體,將所有像素的顏色信息和相機參數構成一個3D代價體,所構成的3D代價體即為網路的輸入。然而受限於3D代價體巨大的內存消耗,SurfaceNet網路的規模很難增大:SurfaceNet運用了一個啟發式的「分而治之」的策略,對於大規模重建場景則需要花費很長的時間。