系统开关标志位同上无
P203
P16
(注:最小系统板上P1口连接了LED)
f2、系统硬件连接简图:
五、相关模块、算法1单片机最小系统:型号STC12C5A60S2,选用此型号的重要原因是它自带PWM功能,不同占空比的方波给L298N驱动芯片后能对电机实现调速。本系统使用的STC12C5A60S2功能模块有:定时器0定时器1PWMP0口P2_0P2_1P2_2P2_3P1口外部中断1红外解码用超声波测距用电机调速用数码管数据位数码管使能连接LED,显示小车的不同状态红外解码用
2、PCA模块及其在系统中的应用STC12C5A60S2内部集成了两路可编程计数器阵列(PCA),每个模块均有软件定时器、外
f部脉冲捕捉、高速脉冲输出和PWM模块,也就是说这款单片机有两路PWM输出,分别在P13和P14。(我们只用了一路,P13)3、定时器模块及其在系统当中的应用STC12C5A60S2拥有4个定时器模块,其中定时器0和1与传统的8051完全兼容(意思就是不光用法,连相关寄存器的地址也一样,这样开发环境中的52RC的头文件还是可以使用的),每个模块均可工作在定时器和计数器模式(通过P34P35输入脉冲),定时器有四种工作方式:16位定时计数、13位定时计数、8位自动重装、两个8位计数。与之相关的特殊功能寄存器有:控制寄存器TCON(其中比较重要的是TF和TR分别是中断标志和计数开关,很奇怪的外部中断的设置IEIT也在该寄存器中)。工作模式设置寄存器TMOD(可以设置定时器还是计数器,工作于哪个方式?)TLTH中装着当前计数值,非常重要。AUXR可以设置定时器方式下计数频率是等于系统时钟还是等于112系统时钟。系统中用到了定时器0和1,定时器0用于红外模块,通过外部中断测定信号周期(TL0TH0)以确定其携带的信息是0还是1。定时器1用于超声波模块,测定从发出超声波到超声波返回之间经过的时间,乘以声速除以2来得到距离值。
4、中断模块及其在系统中的应用中断是CPU处理外界紧急事件的机制,STC12C5A60S2拥有10个中断源,它们有规定好的优先级,有中断嵌套机制,可以对中断进行允许和屏蔽。中断采用两级控制模式,有总开关EA和寄存器中IE单独的开关默认是0,即禁止。10个中断中常用的是:定时器0、1;两个外部中断(P32P33)、AD中断、串口中断,他们都有规定好的中断向量地址,使用那个中断就将总开关打开,在IE中将专用开关打开,对应中断号i
terruptx编写中断服务子程序(不用声明)。系统中红外模块用到了外部中断INT0(下降沿触发),其原理是红外发射器将按键码按0和1调制成不同周期长度的红外波形,红外接收r