單片機(jī)編程語(yǔ)言
前言
編程語(yǔ)言也就是"計(jì)算機(jī)語(yǔ)音"。相對(duì)于PC或電腦來(lái)說(shuō),Microcontroller(微控制器,俗稱單片機(jī))編程語(yǔ)言則是嵌入式編程語(yǔ)言。由于單片機(jī)編程與硬件緊密相連,故其軟件又成為"固件(firmware)"。隨著硬件性能的提升,編程語(yǔ)言也在發(fā)生著變化。
機(jī)器語(yǔ)言
早期的編程使用的是機(jī)器語(yǔ)言。需要將程序的機(jī)器指令一位一位地輸入到單片機(jī)中,或者將指令做成紙帶輸入到單片機(jī),進(jìn)行計(jì)算。
圖 1 紙帶
匯編語(yǔ)言
隨著發(fā)展,人們開(kāi)始用指令助記符替代機(jī)器語(yǔ)言,于是就有了匯編語(yǔ)言。匯編語(yǔ)言書(shū)寫(xiě)的效率大大地提高了。直到現(xiàn)在還有好多人在使用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)。
圖 2 匯編語(yǔ)言
stm8/ …… |
C語(yǔ)言
為了提高代碼書(shū)寫(xiě)效率,出現(xiàn)了高級(jí)的語(yǔ)音-C語(yǔ)音。 C語(yǔ)言的出現(xiàn),使得人書(shū)寫(xiě)代碼更容易,也更容易移植到不同的平臺(tái)中。
圖 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)好者很快設(shè)計(jì)出產(chǎn)品的原型來(lái)。設(shè)計(jì)趨向于簡(jiǎn)單化。
評(píng)論