前言 編程語(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àn)在還有好多人在使用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)。 圖 2 匯編語(yǔ)言 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語(yǔ)言 為了提高代碼書(shū)寫效率,出現(xiàn)了高級(jí)的語(yǔ)音-C語(yǔ)音。 C語(yǔ)言的出現(xiàn),使得人書(shū)寫代碼更容易,也更容易移植到不同的平臺(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<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是一種開(kāi)源硬件,可以讓電子愛(ài)好者很快設(shè)計(jì)出產(chǎn)品的原型來(lái)。設(shè)計(jì)趨向于簡(jiǎn)單化。
圖形化編程 借助電腦軟件,出現(xiàn)了圖形化配置的軟件。可以幫助工程師迅速配置一些底層的寄存器外設(shè)等。簡(jiǎn)化了程序設(shè)計(jì)流程。 圖 4 圖形初始化配置
近些年也有了不少的圖形化編程和仿真軟件。在提升書(shū)寫代碼效率的同時(shí),也在改變著人們的編程習(xí)慣。 圖 5 FlowCode
圖 6 Proteus
編程語(yǔ)言的進(jìn)化 從機(jī)器語(yǔ)言到C語(yǔ)音,從C語(yǔ)言到圖形化配置、編程、仿真。人與機(jī)器的交互方式在發(fā)生著變化。編程語(yǔ)言在不斷地進(jìn)化。人與計(jì)算機(jī)溝通更為越來(lái)越接近,溝通越來(lái)越容易。代碼會(huì)逐步進(jìn)化到接近人的表達(dá)語(yǔ)言的方式。但作為漢字的編程語(yǔ)言方面尚沒(méi)有太大的突破,或許將來(lái)會(huì)有。 產(chǎn)品與藝術(shù)一樣都來(lái)自于人的生活。
|