关于单片机中#if,#else if 的用法 51单片机中的if-else if套嵌,下面的else if...

else if\u548cif\u8bed\u53e5\u7684\u7528\u6cd5\uff0cC\u8bed\u8a00\u5355\u7247\u673a

\u57fa\u672c\u4e0a\u60c5\u51b5\u4e00\u6837\uff0c\u5047\u8bbe\u5728if\u4e2d\u4e0d\u4fee\u6539i\u7684\u503c\u7684\u8bdd\u3002\u4f46\u5982\u679c\u5728if\u4e2d\u4fee\u6539i\u7684\u503c\u5c31\u4e0d\u4e00\u6837\u4e86\u3002
\u7b2c\u4e00\u79cd\u60c5\u51b5\u662f \u4e09\u4e2aif\u90fd\u53ef\u80fd\u6267\u884c\uff0c\u4f46\u7b2c\u4e8c\u79cd\u60c5\u51b5\u53ea\u4f1a\u6267\u884c\u5176\u4e2d\u7684\u4e00\u4e2aif\u3002

\u4f8b\u5982\uff1a
i=11\u65f6\uff0c\u4e0b\u9762\u7a0b\u5e8f\u867d\u7136\u770b\u8d77\u6765\u5f88\u65e0\u804a\uff0c\u4f46\u662f\u786e\u5b9e\u53ef\u80fd\u5b58\u5728\u7684\uff1a
if(i>10)
{
i =9;
}
if(i<10)
{
i=8;
}
\u5219\u8fd9\u4e24\u4e2aif\u90fd\u4f1a\u6267\u884c\uff0c\u6700\u540ei=8\u4e86\u3002

\u4f46\u662f
if\uff08i>10\uff09
{
i=9;
}
else if\uff08i<10\uff09
{
i=8;
}
\u5219\u53ea\u4f1a\u6267\u884cif\uff0c\u4e0d\u4f1a\u6267\u884celse if\uff0c\u4e24\u4e2a\u662f\u4e92\u65a5\u7684\u3002\u6700\u540ei=9.


\u6211\u5e2e\u4f60\u6392\u4e86\u4e00\u4e0b\uff0c\u4f60\u7684if-else\u5f88\u4e71\uff0c\u4e0d\u6267\u884c\u7684\u8bed\u53e5\u5305\u542b\u5728if(Key_swept(0))\u7684\u4e00\u4e2a\u5206\u652f\u4e2d\u3002\u5982\u679c\u4e0d\u6ee1\u8db3if(Key_swept(0))\u6761\u4ef6\uff0c\u81ea\u7136\u4e5f\u5c31\u8df3\u51fa\u5206\u652f\uff0c\u4e0d\u6267\u884c\u4f60\u60f3\u6267\u884c\u7684\u8bed\u53e5\u4e86\u3002\u60f3\u5fc5\u4f60\u5e94\u8be5\u77e5\u9053\u5982\u4f55\u4fee\u6539\u4e86\u5427\u3002

#if............
#else if...........这是预处理语句。
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。在单片机中属于条件编译,也就是说当满足条件,就将#if后面的语句进行编译,否则,丢弃这些部分语句,编译#else if后面的语句。

#if #else #endif 这叫条件编译,在编译时确定哪些代码编译,哪些代码不编译。而if else 是在运行的时候根据条件决定执行哪部分代码。

#if (PARITYBIT == NONE_PARITY) //
S2CON = 0x5a; //8位可变波特率 (无校验位)
#elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY)
S2CON = 0xda; //9位可变波特率,校验位初始为1
#elif (PARITYBIT == SPACE_PARITY)
S2CON = 0xd5; //9位可变波特率,校验位初始为0
#endif
我拿这一段举例子, #if (PARITYBIT == NONE_PARITY) :如果if后面的条件成立,编译后面部分,就是S2CON = 0x5a; //8位可变波特率 (无校验位)。#elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY): 如果前面#if条件没有成立,没有编译,继续判断这一句, 这一句再不成立,在判断下面的#elif ,一直到#endif 为止。 #endif就是一段条件编译的结束。 每一个#if或者#ifndef或者#ifdef为开始的条件起始,必对应有一个#endif条件编译的结束。

  • 鍏充簬 鍗曠墖鏈轰腑鐨 JC鎸囦护
    绛旓細1.褰揂绛変簬25鏃讹紝鎵ц涓嬩竴鍙ワ紱2.褰揂涓嶇瓑浜25鏃讹紝璺宠浆鍒癗E1璇彞鎵ц锛3.瑕佹敞鎰忓綋A涓嶇瓑浜25鏃讹紝A蹇呭畾澶т簬25鎴栬呭皬浜25锛屽鏋淎灏忎簬25锛屽垯涓嶄粎瑕佽烦杞埌NE1鎵ц锛岃繕瑕佺粰CY鏍囧織浣嶇疆涓锛屽鏋淎澶т簬25锛屽垯浠呬粎瑕佽烦杞埌NE1鎵ц锛屼笉浼氱粰CY鏍囧織浣嶇疆涓銆侸C BE鐨勬剰鎬濇槸鑻Y涓0锛屽垯鎵ц涓嬩竴鍙ワ紝鍚﹀垯锛岃烦杞埌BE...
  • 鍏充簬PUSH鎸囦护!鍗曠墖鏈轰腑PUSH 鎸囦护浼氭敼鍙樻簮鎿嶄綔鏁板悧?
    绛旓細涓嶄細鏀瑰彉婧愭搷浣滄暟锛屽洜涓鸿繖鏍峰仛娌℃湁蹇呰锛屽唴瀛樺崟鍏冩竻闆朵篃浼氭氮璐硅绠楃郴缁熺殑璧勬簮銆傞櫎闈炰笓闂ㄧ殑鎸囦护锛岃繖浜涘崟鍏冮兘涓嶄細琚竻闆讹紝姣斿鈥淢OV 30H,31H鈥濓紝31H灏变笉浼氳娓呴浂锛屽爢鏍堝簲璇ラ伒寰殑鏄滃厛鍏ュ悗鍑猴紝鍚庡叆鍏堝嚭鈥濈殑鍘熷垯銆
  • 鍏充簬鍑岄槼61鍗曠墖鏈轰腑浣庣數鍘嬫娴!鎬庝箞璁剧疆褰撶數鍘嬩负鏌愪竴鍊兼椂浼氳嚜鍔ㄦ彁绀,濡...
    绛旓細棣栧厛锛屽畾涔変竴涓闊冲嚱鏁帮紝璋冪敤璇ヨ闊冲嚱鏁扮殑鏉′欢鏄疉D杞崲鐨勭粨鏋溿備娇鐢↖OA0~IOA7锛屾娴嬩綆鐢靛帇淇″彿銆傛牴鎹瓵D杞崲缁撴灉锛屽綋鐢靛帇浣庝簬璁惧畾鍊兼椂锛屽氨杩愯璇煶鎶ヨ鍑芥暟鍗冲彲銆傚鏋滅‖浠惰祫婧愮揣寮狅紝鎴栧叾瀹冨師鍥狅紝AD杞崲鍔熻兘涓嶈兘浣跨敤锛岄偅鍙互鍔犱竴涓‖浠舵瘮杈冨櫒锛岀洃娴嬬‖浠舵瘮杈冪數璺殑杈撳嚭鍗冲彲銆傚浘绀虹數璺彲渚涘弬鑰冦傚浘涓敱鐢典綅鍣ㄨ...
  • 鍏充簬51鍗曠墖鏈轰腑寰楃湅闂ㄧ嫍绋嬪簭
    绛旓細鐪嬮棬鐙楃數璺殑搴旂敤锛屼娇鍗曠墖鏈鍙互鍦ㄦ棤浜虹姸鎬佷笅瀹炵幇杩炵画宸ヤ綔,鍏跺伐浣滃師鐞嗘槸:鐪嬮棬鐙楄姱鐗囧拰鍗曠墖鏈虹殑涓涓狪/O寮曡剼鐩歌繛,璇/O寮曡剼閫氳繃绋嬪簭鎺у埗瀹冨畾鏃跺湴寰鐪嬮棬鐙楃殑杩欎釜寮曡剼涓婇佸叆楂樼數骞(鎴栦綆鐢靛钩),杩欎竴绋嬪簭璇彞鏄垎鏁e湴鏀惧湪鍗曠墖鏈哄叾浠栨帶鍒惰鍙ヤ腑闂寸殑锛屼竴鏃﹀崟鐗囨満鐢变簬骞叉壈閫犳垚绋嬪簭璺戦鍚庤岄櫡鍏ユ煇涓绋嬪簭娈 杩涘叆姝诲惊鐜姸...
  • 鍏充簬51鍗曠墖鏈轰腑鐨凜ALL涓嶫MP鎸囦护
    绛旓細JMP 鏄棤鏉′欢璺宠浆锛屼笉浼氬帇鏍堛傚湪浣跨敤JMP 鎴栬 CALL杩涜绋嬪簭璺宠浆鏃 濡傛灉鏄粎浠呭眬闄愬湪褰撳墠椤电殑鑼冨洿鍐咃紝鍒欎笉鐢ㄤ慨鏀癸紙A11銆丄10锛夛紝鐩存帴灏嗙洰鏍囧湴鍧璧嬪肩粰A9~A0锛屻愬浜嶫MP鎸囦护锛岃繖鏍峰氨琛屼簡锛涘浜嶤ALL鎸囦护杩樿灏嗚鎵ц鐨勪笅涓鏉℃寚浠C+1鍏ユ爤锛屼互渚緾ALL鎵ц瀹屾瘯涔嬪悗锛岀▼搴忔纭繑鍥炪戝鏋滈渶瑕佽烦杞埌鍒殑椤典腑锛...
  • 鍏充簬鍗曠墖鏈璇曢:瀹氭椂鍣ㄥ伐浣滄柟寮忓瘎瀛樺櫒TMOD涓殑鍚勪綅鎵浠h〃鐨勬剰涔夈俖鐧惧害...
    绛旓細GATE=0鏃讹紝鈥滄垨闂ㄢ濊緭鍑烘亽涓1锛屸滀笌闂ㄢ濈殑杈撳嚭淇″彿K鐢盩Rx鍐冲畾(鍗虫鏃禟=TRx)锛屽畾鏃跺櫒涓嶅彈INTx杈撳叆鐢靛钩鐨勫奖鍝嶏紝鐢盩Rx鐩存帴鎺у埗瀹氭椂鍣ㄧ殑鍚姩鍜屽仠姝傚綋TR0=1,鍚姩瀹氭椂鍣═0銆傚綋TR1=1,鍚姩瀹氭椂鍣═1銆傗叀锛孋/T鈥斺斿姛鑳介夋嫨浣岰/T=0鏃朵负瀹氭椂鍔熻兘: 鍔1璁℃暟鍣ㄥ鑴夊啿f杩涜璁℃暟锛屾瘡鏉ヤ竴涓剦鍐诧紝璁℃暟鍣...
  • 鍗曠墖鏈轰腑鍏充簬_crol_鍑芥暟 aa=_crol_(aa,1),鎵ц鍏涔嬪悗娴佹按鐏负浠涔堝洖 ...
    绛旓細_crol_寰幆宸︾Щ 鍒濆锛11111110 涓娆★細11111101 浜屾锛11111011 涓夋锛11110111 ...涓冩锛01111111 鍏锛11111110 涓嶈繃瑕佹槸鎴戠殑璇濓紝鎴戜細杩欐牱鍐欙細void main(){ uchar i = 0; while(1) { P1 = ~(1 << i++); delays(200); i %= 8; } }鍥犱负_crol_杩欎釜鍑芥暟鍦ㄥ叾浠...
  • 鍏充簬鍗曠墖鏈鐨勯棶棰,濡傛灉绋嬪簭涓瑕佸埌涓夌粍宸ヤ綔瀵勫瓨鍣≧n,濡備綍鍒囨崲?SP鐨勫垵 ...
    绛旓細MAIN:MOV SP,#5FH ;灏哠P璁剧疆鍒60H浠ュ悗鐨凴AM鍖 MOV A,#0 LCALL SETRN LCALL DELAY MOV A,#1 LCALL SETRN LCALL DELAY MOV A,#2 LCALL SETRN LCALL DELAY MOV A,#3 LCALL SETRN LCALL DELAY SJMP SETRN:JNZ SETRN1 ;A=0宸ヤ綔鍖0 CLR RS0 CLR RS1 RET SETRN1:JNZ SETRN2 ...
  • 鍏充簬51鍗曠墖鏈鐨勪覆鍙,涓嬪垪鍝簺璇存硶鏄敊璇殑( )
    绛旓細1銆鍗曠墖鏈浣跨敤鐨勬槸TTL鐢靛钩锛岃孭C鏈轰娇鐢ㄧ殑鏄疌MOS鐢靛钩銆傛墍浠ュ畠浠箣闂寸殑閫氳锛岄渶瑕佺數骞宠浆鎹紝鑰孧AX232灏辨槸杩欑杞崲鐨勫吀鍨嬭姱鐗囥3銆佷覆鍙i氳鐨勫崗璁腑瑙勫畾锛岃捣濮嬩綅 涓 浣庣數骞炽傝繖鍐冲畾浜嗗湪绌洪棽鐘舵佷腑锛屾帴鏀跺紩鑴氬钩鏃跺簲涓洪珮鐢靛钩锛岄偅涔堝搴旂殑锛屽氨蹇呴』鍙戦佹柟鐨凾X鍦ㄧ┖闂茬姸鎬佷笅涓洪珮鐢靛钩銆4銆佷覆鍙i氳鏂瑰紡鏈4绉嶏細鏂瑰紡0...
  • 鍏充簬鍗曠墖鏈鐢佃矾涓璑PN涓夋瀬绠′笌PNP涓夋瀬绠$殑鎺ユ硶闂,璇锋寚鏁欍
    绛旓細涓婇潰涓ゅ浘鏄叡鍙戝皠鏋佺數璺紝闆嗙數鏋佸弽鍚戣緭鍑恒備笅闈袱鍥炬槸鍏遍泦鐢垫瀬鐢佃矾锛屽彂灏勬満鍚岀浉杈撳嚭銆傚叧閿湅鐢佃矾瑕佹眰銆
  • 扩展阅读:0x00到0xff对应数字 ... 单片机中文编程软件 ... 单片机延时1s方法 ... 0x00到0xff表 ... 单片机if else语句 ... 单片机if的用法举例 ... orl xrl anl是怎么算的 ... 单片机画图软件altium ... 单片机0x00到0xff ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网