PIC單片機C語(yǔ)言程序設計(4)
2.if語(yǔ)句
if 語(yǔ)句也稱(chēng)為條件語(yǔ)句,是C 語(yǔ)言中轉移語(yǔ)句之一。在設計C 語(yǔ)言程序時(shí),常常要根據某些條件以決定程序運行的流向,這時(shí)就需要if 語(yǔ)句來(lái)實(shí)現。任何if語(yǔ)句(包括else 部分),都可當作一條C 語(yǔ)句使用。
格式:if(表達式) 語(yǔ)句1
else 語(yǔ)句2
其中else 為選擇項;即可有、可無(wú)的。所以條件語(yǔ)句,可分為兩種;if 語(yǔ)句和if— else 語(yǔ)句。
式中的表達式為關(guān)系表達式或邏輯表達式以及由條件運算符(有關(guān)運算符將在后文介紹)構成的一種表達式。
功能:先計算if 中的條件表達式,其值為真(滿(mǎn)足條件時(shí)),執行語(yǔ)句1 ;其值為假(不滿(mǎn)足條件時(shí)),若有else,就執行語(yǔ)句2。
If 語(yǔ)句常用有幾種形式:
?、?if(條件表達式) 語(yǔ)句
該形式無(wú)選擇項else。
例1 :if(a>b) c=b ;
∥滿(mǎn)足條件a>b,將b 賦值給c
例2 :i f ( t t r = = 9 9 9 9 )ttr=0 ;
∥ 滿(mǎn)足運算條件ttr==9999 ;將0 賦值給ttr
?、?if(條件表達式) 語(yǔ)句1
else 語(yǔ)句2
例1 :if(a>b) c=b ;
∥滿(mǎn)足a>b,將b 賦值給c
else c=a ;
∥ 不滿(mǎn)足a>b 時(shí), 將a 賦值給c
例2:若比較兩個(gè)整量a、b,要求其大者送x,即可用if 語(yǔ)句實(shí)現;
?、潜磉_式賦值(簡(jiǎn)化式)的條件語(yǔ)句。讀者在閱讀一些書(shū)籍上的單片機C 語(yǔ)言程序時(shí),會(huì )遇到條件語(yǔ)句的一種簡(jiǎn)化形式,其格式如下:
表達式1 ?表達式2 ;表達式3
如以上if 語(yǔ)句的形式⑵中的例2,即可簡(jiǎn)化為條件表達式的賦值語(yǔ)句;
If 語(yǔ)句尚有一些其他格式,這里暫略去。
3.LED數碼管顯示的硬件電路
在電子技術(shù)中,數碼管顯示(0~9)是最常見(jiàn)的顯示技術(shù)。數碼管顯示時(shí),可用LCD(液晶),也可用LED 數碼管顯示0~9 的數。這里首先介紹用PIC16F84A控制的數碼管LED 的顯示電路,如圖3 所示。圖3 是四位數碼管的,也可以擴展更多的位或減少到一位數的顯示。
PIC16F84A 的引腳④ 是低電平復位端,外接復位按鈕K0和R1、二極管D0 以及電容C0組成的復位電路。引腳、腳外接晶振(4M)和電容C1、C2組成的單片機時(shí)鐘電路。RA4 位(腳③)外接微動(dòng)開(kāi)關(guān)按鍵,其用途按圖3 電路具體功能而定,如該電路用于計數,K1 可作起動(dòng)計數作用;如該電路用作時(shí)鐘,K1 可作時(shí)鐘人工預置起始時(shí)刻用。
PIC16F84A 的PORTB 口,其中的RBO~BB6 位通過(guò)限流電阻R3~R9 與LED 數碼管筆段碼a、b、c、d、e、f、g 分別對應相連。PORTA 口的RA3、RA2、RA1 和RA0 通過(guò)電阻R10~R13與三極管(PNP 型)V4~V1 的基極相連。三極管的集電極分別與對應的數碼管的供電端(⑧、③腳)相連。三極管的發(fā)射極都接到電源+5V 上。該三極管V4~V1 用于數碼管LED 動(dòng)態(tài)掃描時(shí)的電源開(kāi)通信號。數碼管上的符號DP 為數顯時(shí)的小數點(diǎn)位,用戶(hù)可按需要在其某位數碼管的DP 上外接一只470Ω 電阻和LED(與電阻串聯(lián)),用于四位數碼管特征顯示標記,如數碼管計數時(shí)的百位段;記時(shí)的時(shí)位段等。
圖3 電路的數碼管LED,筆者選用共陽(yáng)型數碼管,其實(shí)物的引腳和內部電路如圖4 所示。為了讀者使用方便, 所以圖3中的數碼管LED 的電路是以實(shí)物結構繪制的。所述的圖3 電路即將在后文的數碼管LED 計數和時(shí)鐘(包括可預置的時(shí)鐘)派上用場(chǎng)。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論