單片機編程語(yǔ)言
前言
編程語(yǔ)言也就是"計算機語(yǔ)音"。相對于PC或電腦來(lái)說(shuō),Microcontroller(微控制器,俗稱(chēng)單片機)編程語(yǔ)言則是嵌入式編程語(yǔ)言。由于單片機編程與硬件緊密相連,故其軟件又成為"固件(firmware)"。隨著(zhù)硬件性能的提升,編程語(yǔ)言也在發(fā)生著(zhù)變化。
機器語(yǔ)言
早期的編程使用的是機器語(yǔ)言。需要將程序的機器指令一位一位地輸入到單片機中,或者將指令做成紙帶輸入到單片機,進(jìn)行計算。
圖 1 紙帶
匯編語(yǔ)言
隨著(zhù)發(fā)展,人們開(kāi)始用指令助記符替代機器語(yǔ)言,于是就有了匯編語(yǔ)言。匯編語(yǔ)言書(shū)寫(xiě)的效率大大地提高了。直到現在還有好多人在使用匯編語(yǔ)言進(jìn)行程序設計。
圖 2 匯編語(yǔ)言
stm8/ …… |
C語(yǔ)言
為了提高代碼書(shū)寫(xiě)效率,出現了高級的語(yǔ)音-C語(yǔ)音。 C語(yǔ)言的出現,使得人書(shū)寫(xiě)代碼更容易,也更容易移植到不同的平臺中。
圖 3 C語(yǔ)言
int i = 0; unsigned char uc = 0; unsigned long Temp; ADC_CR1 |= 0x01; i = 6; while(i--); ADC_CR1 |= 0x01; while(!(ADC_CSR & 0x80)); AD_Value = ((((unsigned int)ADC_DRH)<<2)+ADC_DRL); TIM2_CCR2H=0x00; TIM2_CCR2L=(unsigned char)(AD_Value>>2); if (AD_Value>0x10) { Temp=(unsigned char)(AD_Value>>8); if ((TIM3_ARRH>Temp+0x05)||(TIM3_ARRH { TIM3_ARRH = Temp; TIM3_ARRL = (unsigned char)(AD_Value&0xff); TIM3_CCR1H = (unsigned char)(AD_Value>>9); TIM3_CCR1L = (unsigned char)((AD_Value>>1)&0xff); } } while ( uc < duration ) { while ( i < 1200 ) { i++; } i = 0; uc++; } …… |
Arduino
Arduino是一種開(kāi)源硬件,可以讓電子愛(ài)好者很快設計出產(chǎn)品的原型來(lái)。設計趨向于簡(jiǎn)單化。
評論