#
剛才接到一個消息,我多天努力畫出來的PCB中,把數碼管放倒了,做出來是一個頭朝下的數字。
也怪我,每次都是拿著那一半的儀器,沒注意它的數碼管是在底端,結果畫板的時候以為數碼管是在頭部,~~~~~~~~~~~
這會兒心里很亂,不知道還會有什么錯誤,他還說過孔比較難做,唉,我也不知道為什么過孔會比較難做呢?也沒具體問他
硬件工程師,這算是我就職以后的第一個項目,呵呵,就鬧出了這樣的錯誤,吃一塹長一智吧,做硬件,再多細心都不過分的!
希望,錯誤是成長的代價!
摘要:本文分析討論了高速PCB板上由于高頻信號的干擾和走線寬度的減小而產生的電源噪聲和 壓降,并提出了高速PCB的電源模型,采用電源總線網絡布線,選取合適的濾波電容,模擬數字地 分開等幾個簡單有效的方法來解決高速PCB板的噪聲和壓降問題。
0 引言
隨著集成電路工藝和集成度的不斷提高,集成電路的工作電壓越來越低,速度越來越快。進入新世紀后,CPU和網絡都邁入了GHZ的時代,這對于PCB板的設計提出了更高的要求。本文正是基于這種背景下,對高速PCB設計中最重要的環節之一——電源的合理布局布線進行分析和探討。
1 電源模型分析
通常,在進行理論上的分析和計算時,都是把電源進行理想化,即電源無內阻,也無寄生阻抗。如果用一個3.3V的電壓源對PCB上的元件供電,那么無論距離電源的遠近,各個元件都應工作在3.3V,且沒有噪聲。然而在實際的設計工作中,由于PCB上的Ic和輸入輸出的信號都工作在高頻下,電場和磁場的相互轉化,必不可免的給電源引入了噪聲,如圖1、圖2所示。同時由于PCB板上的走線非常的細,又產生了由于線路阻抗引起的壓降,使遠離電壓源的器件工作電壓小于電源電壓。因而高速PCB的電源布線存在兩個關鍵的問題:電源噪聲和壓降。
圖1 理想電源信號模型 圖2 實際電源信號模型
2 電源線的合理布局
設計高速PCB板的關鍵之一就是要盡可能的減小由于線路阻抗引起的壓降和高頻電磁場轉換而引入的各種噪聲。通常用兩種方法來解決上述問題。一是電源總線技術(POWER BUS),另一種方法就是采用一個單獨的電源層進行供電。后者在很大程度上緩解了壓降和噪聲的問題,但考慮到多層PCB的工藝復雜,昂貴的費用和較長的制作周期,一般設計者們更喜歡采用前者,因而有必要對電源總線的合理布線進行分析討論。
如圖3所示,采用了電源總線技術,各個元器件懸掛在電源總線上,所以又稱之為懸掛式總線,電源 總線的寬度通常比普通的信號線要寬,采用總線技術后,雖然可以減小壓降和和噪聲的問題,但它們仍然存在的。
圖3 電源總線 圖4 改進型電源總線
首先來看壓降問題,假設電源電壓為3.3V,0A,AB,BC,CD,BE,AF各段導線的電阻為0.05Ω,PCB板上的每個元器件的扇出或吸入電流為200ma,并作兩個理想假定:
1.不考慮由于A,B,C處電源線地突然拐角而產生的電壓電流突變;
2.不考慮邊界元件(1,4,9,12)由于電磁場地相互轉換而引起的邊界效應。
則導線OA中的電流為2.6A,導線.AB中的電流為1.6A,導線BC和CD中的電流為0.8A,最后元件9上的電壓為:
3.3-2.6×0.05-1.6×0.05-0.8×0.05=3.01V
由于線路的阻抗產生了0.29V的壓降,偏差幾乎達到10%,這對于一個3.3V的電壓來說已經是相當大了,而且隨著IC朝低電壓方向的發展,已經有很多工作在2.5V乃至更低的Ic,因此這樣大的壓降將是非常致命的。同時,在這種電源總線下,噪聲也是一個很大的問題,如圖3,每個器件產生的噪聲都將通過電源耦合到元件13中,這也就是說器件13疊加了13個元件的噪聲,這將很容易引起器件13不能正常工作。由于這兩個問題依然存在,因此對電源總線技術進行了改進,如圖4所示,它被稱為電源總線網絡法,即讓電源總線相互交叉,而把對噪聲和壓降敏感的元件放在電源線網絡的交叉點上,使得每一個元件同時屬于幾個不同的回路,如圖4中的元件6,7就分別屬于四個不同的小回路。由于電流可以從網絡中的任何一條總線上進來或出去,而且每一個網孔構成了一個回路,這就不僅可以使網絡中每條總線上的電流趨于均衡,不會出現懸掛式總線上的各段總線電流大小不一致的問題,因此就可以減小由于線路阻抗引起的壓降問題。元件的電流由各網孔417/分擔,每個網孔的電流為400mA。對于元件5,元件9和元件1的電壓都比它高,因而電流從元件1和9流向5,從5流出到6。在最壞情況下即
元件9和1的電流全部從一端流出進入元件5,則元件5上的電壓為3.3-0.4×0.05=3.28V(仍假定各段導線電阻為0.05Ω),要比懸掛式總線高了許多。懸掛式電源總線和改進型電源總線中元件1,5,9元件的電壓數據分別如表1和表2所示:
節點元件 |
電壓(V) |
1 |
3.13 |
5 |
3.05 |
9 |
3.01 |
表1 分布式電源總線電壓
節點元件 |
電壓(V) |
1 |
3.3 |
5 |
3.28 |
9 |
3.3 |
表2 改進型電源總線電壓
從表中可以看到由于采用了改進的電源總線技術,元件1,5,9的電壓都得到了極大的提升。
同時對于各個元件產生的噪聲來說,由于干擾是高頻信號,因而每個回路可以看成一個單匝線圈。根據法拉第電磁感應定律ξ=dφ/dt,由于每個回路中的電流方向不一樣,因而產生的變化磁場(大小為穿過每個網孔的磁通φ)的方向也就不一致,因而感應的電動勢的方向也就不一致,這樣就可以起到相互抵消的作用,減小了由于噪聲干擾產生的尖鋒電壓或電流,保護了元件的正常工作。同時由于電源總線網絡是雜亂無章的,因而每個元器件產生的噪聲通過電壓平均的耦合到其它各個元器件上去,最終減小了遠端器件的壓降和近端器件的噪聲問題(相對電源而言)。改進的電源網絡總線技術不僅對宏觀的PCB十分有效,對微觀的大規模集成電路中的電源的布線也具有一定的參考價值。
3 濾波電容的選取與放置
雖然采用了改進的電源總線技術后可以在很大程度上減小噪聲的問題,但它總是存在的,這就必然要求引入電容器進行濾波。電容器的種類有很多,由于制造的材料和工藝的不同,各種電容器的濾波性能不盡相同。同時在高頻下,電容本身也會產生寄生的阻抗。如圖5,圖6所示。因而在高頻下,電容本身成了一個諧振電路fr=1/(2π√LC)。由于寄生阻抗的存在,當電容器的工作頻率f>fr時電容呈現感性,f<fr時,電容呈現容性,如圖7所示。因而在選擇濾波電容是要特別小心,要盡量使電容工作在容性狀態,如果電容選取不當,使電容工作在感性狀態,那么也就失去了濾波的作用。因此一定要選取電容值(C)大,串聯電阻(R)和串聯電感(L)小的電容器。由于制造材料的不同,各種電容的參數也不同,一般來說,電解電容和膽電容對低頻噪聲的濾波效果比較好,瓷片電容,獨石電容等對高頻噪聲的濾波效果比較好。在實際的PCB板的設計中,濾波常分為兩個部分,電源濾波和器件的濾波。對于電源,由于整個PCB板上的噪聲都加到了它的上面,其中不僅包含了低頻噪聲,也包含了大量的高頻噪聲。為了有效的濾除這些噪聲,通常是采用一個大電容(典型為>uF的電解電容或膽電容)和一個小電容(典
型為uF)并聯來進行濾波,這樣可以極大的提高濾除的噪聲范圍,如圖8所示。對于器件濾波,隨著集成電路工藝的進步,IC自己本身能較好的抑制低頻噪聲,而對高頻噪聲比較敏感,所以一般采用小電容(典型為pF)來進行電源濾波。
圖5理想電容 圖6高頻下電容器實際電路
圖7 單個電容濾波 圖8 兩個電容并聯濾波
4 數字地和模擬地
隨著Ic集成度的提高,現在的IC一般都有好幾對電源和地,其中就有模擬地和電源地。地線實際上也是一條信號線,但它的特殊性在于它是電路的公共端,通常是指零電位點。但由于使用的導線和敷銅連線在高頻下都有寄生的電感,電容的存在,將當其用作地線時,導線本身的阻抗也會是電容產生公共耦合,從而使模擬地和數字地相互干擾。由于數字信號的0,1有一定的容差范圍,如0.7v以下為0,2.4V以上為1,所以數字信號上有幾百毫伏的噪聲一般是不會影響信號的正常判斷的。而模擬信號對噪聲十分敏感,如果一個幅度為2V的正弦信號上疊加了一個幾百毫伏的噪聲,再經過多級放大器放大后,那么很有可能引起信號門限電平的誤判而使這個電路工作在錯誤的狀態之下。所以從理論上來說要將數字地和模擬地分開,以降低電源對噪聲的耦合作用。在實際的設計中,通常把電源通過兩個uH的電感引出分別作為模擬電壓和數字電壓,同時在電源的地端用一個零歐姆的電阻分別引出作為模擬地和數字地。
5結束語
在對高速PCB上的電源存在的兩個問題——壓降和噪聲的產生原因進行了分析,并就如何在高速PCB的實際設計中有效地解決這兩個問題提出了一些方法,在實際的設計工作中當然還有其它的解決方法,不一一例舉。總之,在設計高速PCB板時,對電源布局布線的處理應盡量遵循下面一些規則:
- 有條件的情況下,盡量采用單獨的電源層和地層進行供電。采用電源網絡總線時,網孔越多越好,形成許多嵌套的網孔,同時總線要盡量的寬,以達到均衡電流,降低噪聲的目的;
- 電源的走線不能中間細兩頭粗,以免在上面產生過大的壓降。走線不能突然拐彎,拐彎要采用大于90°的鈍角,最好采用圓弧形走線,電源的過孔要比普通的人一些。有條件的話,在過孔處加濾波電容;
- 對于那些特別容易產生噪聲的部分用地線包圍起來,以免產生的噪聲耦合入電壓。
參考文獻:
[1]錢振宇.產品的電磁兼容性設計(連載)[DB/OL].
[2]宋萬杰.CPLD技術及其應用[M].西安:西安電子科技大學出版社1997.
[3]王幸之.單片機系統抗干擾設計iM].北京:北京航空航天人學出版社2000.
整天不知道該做什么飯,尤其是他想回家吃飯時,我連續三天晚上給他做的同樣的飯,他今天說還那樣做,我回答是的,他的下一句話就是“你還沒做夠啊?”,呵呵,還好他不算是很挑剔的人,基本上屬于做什么飯就吃什么的人,遺憾的是我都已經厭倦做同樣的菜了,自從這周天氣一降溫,就不想炒菜了,總是把白菜粉條再加些魚丸之類的東西一起燉了,然后加上饅頭就湊成一頓晚餐,唉,反正我晚上下班之后已經餓得前胸貼肚皮了,飯做好之后很快就一掃而光,吃燉菜,估計也是我多年的愛好吧,算作湯也算作菜,就是不知道他長時間吃會不會膩?
今天是周六,上午睡睡懶覺然后吃早餐逛菜場,在之后和他一起去合家福購物,很快就到了中午,午飯后和他一起看電影,不過我看了一半就睡著了,等我醒了已經是下午五點了,于是又考慮吃晚飯,…晚上看翡翠鳳凰和喬家大院,這一天的時間就這樣過去了
我今天的思考是:我的時間都花在了一些瑣碎和娛樂上面,那隨著時間的流逝,我積累下來的估計只有衰老了
摘要: protel dxp
批量修改PCB上的字體大小
從原來的PCB文件中導出元件封裝
度量單位的改變
PCB中如何快速定位到某元件
PCB中修改單個元件的封裝
閱讀全文
自從上次從**辭職之后,玩了一個月,之后才開始專心的找工作
經過了幾次面試,要么被別人鄙視,要么把別人鄙視,然后再次被聯發科技(合肥)鄙視之后,大腦突然變得很冷靜了,或者是開始為生活擔憂了,不能再這樣沉淪下去,認認真真的開始考慮找工作
看來任何事情真是怕“認真”二字,在我開始擔心未來的時候,幾個看起來還可以的機會來了,參加了樂堂動漫的筆試,感覺還可以,審閱的人也給予了充分的肯定,只是在討論機試時間的時候,我說到了下周一和二都有面試,他做了記錄。然后我就離開了,結果周一去的“天智”公司讓我很是生氣,面試的人先看了一下我的期望薪資一眼就問我有沒有調整的可能,我說不能,然后就隨便聊了幾句就走了,出了門我很是生氣,既然對我的期望薪資有異議,就不要通知我大老遠的跑一趟了吧!
周二又去了我現在上班的公司,是一個新注冊的小公司,不過和老大挺聊得來的,他對我的薪資期望也給予了理解,中午在家吃飯的時候接到了他的電話,說決定錄用我了,并且下午參加他們技術負責人開的一個會。就這樣,我開始上班了,又開始上班了
周三的時候接到了樂堂動漫的電話,hr的小妹妹先問我找到工作了沒,我當時正在看原理圖,也不想跑去再面試然后再告訴人家不去上班,于是直接告訴回答說找到了,她說“那打擾了”,就這樣,和動漫錯過了,也許吧
上了一周的班了,這一周的工作都是畫PCB圖,總是會遇到這樣那樣的小問題,也許很白癡吧,但是卻需要一個個的解決,總之一句話,自我學習,拒絕眼高手低
今天中午他給我打電話,說上次幫我推薦的一個部門又可能要通知我去筆試或者面試,唉,讓我很生感慨,我剛下定決心在這個公司里呆上一年好好充充電,已經把我鄙視過兩回的聯發科技又讓我去面試,說真的,心里都在嘀咕如果真是再去面試,我該以一個什么樣的心態對待呢
聯發科呀聯發科,我有機會的時候沒準備好(應該畢業),我準備好的時候又沒機會了(它上次拒我的理由是“先辭職后找工作,職業不穩定”,可能也有技術方面的原因吧),現在我已經對你死心了,可是你不會又來耍我了吧......有時候難免會想,呆在合肥這樣的一個小城市里,可能除了聯發科就沒有其它讓我如此向往的地方了,那就離開去上海深圳北京闖闖吧,可是另一個聲音卻告訴我,安分守己準備結婚生子吧,哈哈,要一個安穩的生活,還是選擇機遇與挑戰并存的道路呢?
而且,他已經占據了hardware部門,我只能進入嵌入式軟件方面的崗位,做軟件還是硬件,好像是一個相差很遠的方向哦
。。。。。。。。。。。
這一周白天上班,晚上就在家看電視,彷佛進入養老狀態,或許是因為前段時間精神比較緊張,最近才放松下來吧,思索一下,不能這樣啊,想起我離開哈爾濱時還對王哥說若干年后我要開著凌志車去看望他呢,生活啊,我不能還沒開始奮斗,就已經進入收尾階段了啊
幸運的是我今天看了張近東的“
情有獨鐘,迷情電子三五年”,很多年沒有的熱血沸騰的感覺又回來了,啊,上帝,我還沒有老,我還年輕,還有夢想還會激動,所以,我決定寫下這篇日志,并好好規劃一下我的生活
1、按時上下班,這是最基本的原則
2、積極完成工作任務,在本周內把PCB完成,積極推進對protel dxp 2004的熟練掌握程度,這是我的第一個自主完成的pcb,堅定信念!
3、每天堅持兩個小時的學習(晚7:20---9:20)
4、堅持完成主婦的基本任務,“一屋不掃,何以掃天下”啊,也許,抵抗懶惰就是在遠離抑郁,我要“執子之手,與子偕老”!
5、降低吃飯的胃口,擴大掙錢的欲望
6、擴大眼界,著手小處,若干年后,我還是.......
利用輾轉相除法求兩個自然數的最大公因數 程序如下:
//利用輾轉相除法求兩個自然數的最大公因數
int gcd(int a, int b)
{
int r;
while(b)
{
r = a%b;
a = b;
b = r;
}
return a;
}
相關理論如下:
「輾轉相除法」又叫做「歐幾里得算法」,是公元前 300 年左右的希臘數學家歐幾里得在他的著作《幾何原本》提出的。利用這個方法,可以較快地求出兩個自然數的最大公因數,即 HCF 或叫做 gcd。所謂最大公因數,是指幾個數的共有的因數之中最大的一個,例如 8 和 12 的最大公因數是 4,記作 gcd(8,12)=4。
在介紹這個方法之前,先說明整除性的一些特點,注以下文的所有數都是正整數,以后不再重覆.
我們可以這樣給出整除以的定義:
對於兩個自然數 a 和 b,若存在正整數 q,使得 a=bq,則 b 能整除 a,記作 b | a,我們叫 b 是 a 的因數,而 a 是 b 的倍數。那麼如果 c | a,而且 c | b,則 c 是 a 和 b 的公因數。
由此,我們可以得出以下一些推論:
推論一:如果 a | b,若 k 是整數,則 a | kb。因為由 a | b 可知 ha=b,所以 (hk)a=kb,即 a | kb.
推論二:如果 a | b 以及 a | c,則 a | (b±c)。因為由 a | b 以及 a | c,可知 ha=b,ka=c,二式相加,得 (h+k)a=b+c,即 a | (b+c).同樣把二式相減可得 a | (b-c)。
推論三:如果 a | b 以及 b | a,則 a=b。因為由 a | b 以及 b | a,可知 ha=b,a=kb,因此 a=k(ha),hk=1,由於 h 和 k 都是正整數,故 h=k=1,因此 a=b。
輾轉相除法是用來計算兩個數的最大公因數,在數值很大時尤其有用而且應用在電腦程式上也十分簡單。其理論如下:
如果 q 和 r 是 m 除以 n 的商及余數,即 m=nq+r,則 gcd(m,n)=gcd(n,r)。 證明是這樣的:
設 a=gcd(m,n),b=gcd(n,r)
則由 a | m 及 a | n,可得 a | (m-nq)(由推論一及推論二得出的),即 a | r ,又 a | n,所以 a | b。
由 b | r 及 b | n,可得 b | (nq+r),即 b | m,又 b | n,所以b | a。
因為 a | b 并且 b | a,所以 a=b,即 gcd(m,n)=gcd(n,r)。
舉例計算 gcd(546, 429),由於 546=1(429)+117,429=3(117)+78,117=1(78)+39,78=2(39),因此
gcd(546, 429)
=gcd(429, 117)
=gcd(117, 78)
=gcd(78, 39)
=39
此處再添加一個程序例子,不過不是利用輾轉相除法
求最大公約數和最小公倍數:
#include <iostream>
using namespace std;
int gec,lcm;
void process(int x,int y)
{
gcd=x<y?x:y;
lcm=x<y?y:x;
for(gcd=x<y?x:y;gcd>1;gcd--)if(x%gcd==0&&y%gcd==0)break;
for(lcm=x<y?x:y;lcm>1;lcm++)if(lcm%x==0&&lcm%y==0)break;
return;
}
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面對組成格式說明的各項加以說明:
①%:表示格式說明的起始符號,不可缺少。
②-:有-表示左對齊輸出,如省略表示右對齊輸出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域寬,即對應的輸出項在輸出設備上所占的字符數。N指精度。用于說明輸出的實型數的小數位數。為指定n時,隱含的精度為n=6位。
⑤l或h:l對整型指long型,對實型指double型。h用于將整型的格式字符修正為short型。
---------------------------------------
格式字符
格式字符用以指定輸出項的數據類型和輸出格式。
①d格式:用來輸出十進制整數。有以下幾種用法:
%d:按整型數據的實際長度輸出。
%md:m為指定的輸出字段的寬度。如果數據的位數小于m,則左端補以空格,若大于m,則按實際位數輸出。
%ld:輸出長整型數據。
②o格式:以無符號八進制形式輸出整數。對長整型可以用"%lo"格式輸出。同樣也可以指定字段寬度用“%mo”格式輸出。
例:
main()
{ int a = -1;
printf("%d, %o", a, a);
}
運行結果:-1,177777
程序解析:-1在內存單元中(以補碼形式存放)為(1111111111111111)2,轉換為八進制數為(177777)8。
③x格式:以無符號十六進制形式輸出整數。對長整型可以用"%lx"格式輸出。同樣也可以指定字段寬度用"%mx"格式輸出。
④u格式:以無符號十進制形式輸出整數。對長整型可以用"%lu"格式輸出。同樣也可以指定字段寬度用“%mu”格式輸出。
⑤c格式:輸出一個字符。
⑥s格式:用來輸出一個串。有幾中用法
%s:例如:printf("%s", "CHINA")輸出"CHINA"字符串(不包括雙引號)。
%ms:輸出的字符串占m列,如字符串本身長度大于m,則突破獲m的限制,將字符串全部輸出。若串長小于m,則左補空格。
%-ms:如果串長小于m,則在m列范圍內,字符串向左靠,右補空格。
%m.ns:輸出占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側,左補空格。
%-m.ns:其中m、n含義同上,n個字符輸出在m列范圍的左側,右補空格。如果n>m,則自動取n值,即保證n個字符正常輸出。
⑦f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:
%f:不指定寬度,整數部分全部輸出并輸出6位小數。
%m.nf:輸出共占m列,其中有n位小數,如數值寬度小于m左端補空格。
%-m.nf:輸出共占n列,其中有n位小數,如數值寬度小于m右端補空格。
⑧e格式:以指數形式輸出實數。可用以下形式:
%e:數字部分(又稱尾數)輸出6位小數,指數部分占5位或4位。
%m.ne和%-m.ne:m、n和”-”字符含義與前相同。此處n指數據的數字部分的小數位數,m表示整個輸出數據所占的寬度。
⑨g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。
---------------------------------------
關于printf函數的進一步說明:
如果想輸出字符"%",則應該在“格式控制”字符串中用連續兩個%表示,如:
printf("%f%%", 1.0/3);
輸出0.333333%。
---------------------------------------
對于單精度數,使用%f格式符輸出時,僅前7位是有效數字,小數6位.
對于雙精度數,使用%lf格式符輸出時,前16位是有效數字,小數6位.
由高手指點
對于m.n的格式還可以用如下方法表示(例)
char ch[20];
printf("%*.*s\n",m,n,ch);
前邊的*定義的是總的寬度,后邊的定義的是輸出的個數。分別對應外面的參數m和n 。我想這種方法的好處是可以在語句之外對參數m和n賦值,從而控制輸出格式。
一種輸出格式 %n 可以將所輸出字符串的長度值賦紿一個變量, 見下例:
int slen;
printf("hello world%n", &slen);
執行后變量被賦值為11
scanf格式控制的完整格式:
% * m l或h 格式字符
①格式字符與printf函數中的使用方式相同,以%d、%o、%x、%c、%s、%f、%e,無%u格式、%g格式。
②可以指定輸入數據所占列寬,系統自動按它截取所需數據。如:
scanf(“%3d%3d”,&a,&b);
輸入:123456
系統自動將123賦給a,456賦給b。
③%后的“*”附加說明符,用來表示跳過它相應的數據。例如:
scanf(“%2d%*3d%2d”,&a,&b);
如果輸入如下信息:1234567。將12賦給a,67賦給b。第二個數據”345”被跳過不賦給任何變量。
④輸入數據時不能規定精度,例如:
scanf(“%7.2f”,&a);
是不合法的,不能企圖輸入:12345.67而使a的值為12345.67。
------------------相關-------------------
輸入數據流分隔
①根據格式字符的含義從輸入流中取得數據,當輸入流中數據類型與格式字符要求不符時,就認為這一項結束。如:
scanf(“%d%c%f”,&a,&b,&c);
如果輸入如下信息:
1234r1234.567
則scanf函數在接收數據時發現”r”類型不匹配,于是把”1234”轉換成整型賦值給a,把”r”賦給變量b,最后把”1234.567”轉換成實型數據賦給c。
②根據格式項中指定的域寬分隔出數據項。如語句:scanf(“%2d%3f%4f”,&a,&b,&c);
如果輸入如下信息:
123456789012345
則scanf函數在接收數據時根據域寬把12賦值給a,345賦值給b,6789賦值給c。
③隱示分隔符。空格、跳格符(’\t’)、換行符(’\n’)都是C語言認定的數據分隔符。
④顯示分隔符。在scanf函數的兩個格式說明項間有一個或多個普通字符,那么在輸入數據時,在兩個數據之間也必須以這一個或多個字符分隔。如語句:
scanf(“a=%d,b=%f,c=%f”,&a,&b,&c);
則輸入數據應該為:
a=1234,b=67.8,c=98.123
---------------------------------------
關于scanf函數的進一步說明:
①scanf函數中的“格式控制”后面應當是變量地址,而不應是變量名。例如,如果a、b為整型變量,則
scanf(“%d,%d”,a,b);
是不對的,應將”a,b”改為”&a,&b”。
②如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數據時應輸入與這些字符相同的字符。例如:
scanf(“%d,%d”,&a,&b);
輸入時應輸入:3,4。3與4之間的逗號應與scanf函數中的“格式控制”中的逗號相對應,輸入其它符號是不對的。
③在用“%c”格式輸入字符時,空格字符和轉義字符都作為有效字符輸入。
scanf(“%c%c%c”,&c1,&c2,&c3);
如輸入:a b c 。字符’a’賦給c1,字符(空格)’ ’賦給c2,字符’b’ 賦給c3。
④ scanf 中不使用U說明符.對unsigned型數據用d、o、x說明符輸入.
辭職已經20天了,時間過得真快!
每天忙忙碌碌的活著,彷佛比上班的時候還忙,呵呵,當然了,既想學習又想玩,的確是比上班的時候忙多了
辭職之后的一周時間都在看電視劇,把射雕英雄傳和神雕俠侶都詳細的看了一遍,終于把這個多年的夢給圓了,05年復習考研的時候,有一段時間特想看神雕俠侶,可惜當時忙于復習,也沒找到完整的小說版,所以一直到4年之后的今天才把它給看了。其實人一生有很多小小的心愿,因為陰差陽錯各種原因吧,沒得實現。但是我辭職后的第一個周末,看到安徽衛視在播放射雕英雄傳,于是在網上搜了一下,終于在土豆網上把全部都看了一遍....人,有夢想,真好!
玩了幾天,玩夠了,休息夠了,終于該干點正事了。于是從當當網上訂購了幾本Protel99的教程,想徹底的學習一下PCB。也是一個遺憾,碩士的時候一直覺得自己不會PCB,是一塊太短的木板,現在也終于有機會把它補得長些了,因為想了又想,實在是不愿意做軟件開發,還是向硬件方面發展吧,所以先過了PCB這一關
之間投遞了一些簡歷,面試了一家公司,不過覺得自己的期望工資把人家給嚇著了,所以就沒消息了,唉,在一個小城市里想找硬件方面的公司的確機會很少,不過我不放棄,我要嘗試,我要挑戰一下自己
和男朋友一起在健身房辦了張會員卡,期限一年,本意為鍛煉身體,增強體質。可是去了兩次之后看到那么多的魔鬼身材,再看看自己,于是也想減肥了。減肥,也是我多年來的夢想之一啊,可惜一直都沒有實現,反而是越來越胖了
想到一句話,連自己的體重都控制不住,那還能讓什么在自己的掌控之中呢,呵呵,話又說回來,吃胖容易,減肥的確很難
這幾天在網上溜達溜達,隨著自己學習PROTEL進程的推進,準備開始好好學習FPGA,困難很多,可是要堅持,堅信自己會成功的
改變人生的32句勵志名言
1、大多數人想要改造這個世界,但卻罕有人想改造自己。
2、積極的人在每一次憂患中都看到一個機會, 而消極的人則在每個機會都看到某種憂患。
3、莫找借口失敗,只找理由成功。(不為失敗找理由,要為成功找方法)
4、偉人之所以偉大,是因為他與別人共處逆境時,別人失去了信心,他卻下決心實現自己的目標。
5、世上沒有絕望的處境,只有對處境絕望的人。
6、當你感到悲哀痛苦時,最好是去學些什么東西。學習會使你永遠立于不敗之地。
7、世界上那些最容易的事情中,拖延時間最不費力。
8、人之所以能,是相信能。
9、一個有信念者所開發出的力量,大于99個只有興趣者。
10、每一發奮努力的背后,必有加倍的賞賜。
11、人生偉業的建立 ,不在能知,乃在能行。
12、任何的限制,都是從自己的內心開始的。
13、含淚播種的人一定能含笑收獲。
14、欲望以提升熱忱,毅力以磨平高山。
15、一個能從別人的觀念來看事情,能了解別人心靈活動的人永遠不必為自己的前途擔心。
16、一個人最大的破產是絕望,最大的資產是希望。
17、不要等待機會,而要創造機會。
18、如果寒暄只是打個招呼就了事的話,那與猴子的呼叫聲有什么不同呢? 事實上,正確的寒暄必須在短短一句話中明顯地表露出你對他的關懷。
19、昨晚多幾分鐘的準備,今天少幾小時的麻煩。
20、做對的事情比把事情做對重要。
21、人格的完善是本,財富的確立是末。
22、沒有一種不通過蔑視、忍受和奮斗就可以征服的命運。
23、行動是治愈恐懼的良藥,而猶豫、拖延將不斷滋養恐懼。
24、沒有天生的信心,只有不斷培養的信心。
25、只有一條路不能選擇——那就是放棄的路;只有一條路不能拒絕——那就是成長的路。
26、人性最可憐的就是:我們總是夢想著天邊的一座奇妙的玫瑰園,而不去欣賞今天就開在我們窗口的玫瑰。
27、征服畏懼、建立自信的最快最確實的方法,就是去做你害怕的事,直到你獲得成功的經驗。
28、失敗是什么?沒有什么,只是更走近成功一步;成功是什么?就是走過了所有通向失敗的路,只剩下一條路,那就是成功的路。
29、讓我們將事前的憂慮,換為事前的思考和計劃吧!
30、再長的路,一步步也能走完,再短的路,不邁開雙腳也無法到達。
31、任何業績的質變都來自于量變的積累。
32、成功不是將來才有的,而是從決定去做的那一刻起,持續累積而成。
|