前言 編程語言也就是"計算機語音"。相對于PC或電腦來說,Microcontroller(微控制器,俗稱單片機)編程語言則是嵌入式編程語言。由于單片機編程與硬件緊密相連,故其軟件又成為"固件(firmware)"。隨著硬件性能的提升,編程語言也在發(fā)生著變化。 機器語言 早期的編程使用的是機器語言。需要將程序的機器指令一位一位地輸入到單片機中,或者將指令做成紙帶輸入到單片機,進行計算。 圖 1 紙帶
匯編語言 隨著發(fā)展,人們開始用指令助記符替代機器語言,于是就有了匯編語言。匯編語言書寫的效率大大地提高了。直到現(xiàn)在還有好多人在使用匯編語言進行程序設計。 圖 2 匯編語言 stm8/
#include "mapping.inc"
#include "stm8s_conf.inc"
segment 'rom'
BRES PB_DDR,#7 ;input
BSET PB_CR1,#7 ;Pull-up
BSET PB_CR2,#7 ;with interrupt
BSET EXTI_CR1,#2 ;01: Rising edge only
BRES EXTI_CR1,#3
LD A,#$CC
LD IWDG_KR,A
LD A,$55
LD IWDG_KR,A
LD A,$2
LD IWDG_PR,A
LD A,$FF
LD IWDG_RLR,A
MOV IWDG_KR,#$AA
……
|
C語言 為了提高代碼書寫效率,出現(xiàn)了高級的語音-C語音。 C語言的出現(xiàn),使得人書寫代碼更容易,也更容易移植到不同的平臺中。 圖 3 C語言 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<Temp-0x05))
{
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是一種開源硬件,可以讓電子愛好者很快設計出產(chǎn)品的原型來。設計趨向于簡單化。
圖形化編程 借助電腦軟件,出現(xiàn)了圖形化配置的軟件。可以幫助工程師迅速配置一些底層的寄存器外設等。簡化了程序設計流程。 圖 4 圖形初始化配置
近些年也有了不少的圖形化編程和仿真軟件。在提升書寫代碼效率的同時,也在改變著人們的編程習慣。 圖 5 FlowCode
圖 6 Proteus
編程語言的進化 從機器語言到C語音,從C語言到圖形化配置、編程、仿真。人與機器的交互方式在發(fā)生著變化。編程語言在不斷地進化。人與計算機溝通更為越來越接近,溝通越來越容易。代碼會逐步進化到接近人的表達語言的方式。但作為漢字的編程語言方面尚沒有太大的突破,或許將來會有。 產(chǎn)品與藝術(shù)一樣都來自于人的生活。
|