1、二、单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.下面给出一个51单片机的最小系统电路图.说明:复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个
2、机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍.晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)复位电路一、复位电路的用途单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。单片机复位电路如下图:二、复位电路的工作原理在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,那这个过程
3、是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。开机的时候为什么为复位?在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V1.
4、5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。按键按下的时候为什么会复位?在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候1
5、0K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。总结:1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。三、Max232串口电路MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5V单电源供电。内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的
6、需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R0IN)、12脚(R0OUT)、11脚(T0IN)、14脚(T0OUT)为第一数据通道。8脚(R1IN)、9脚(R1OUT)、10脚(T1IN)、7脚(T1OUT)为第二数据通道。TTL/CMOS数据从T0IN、T1IN输入转换成RS-232数据从T0OUT、T1OUT送到电脑DP9插头;DP9插头的RS-232数据从R0IN、R1IN输入转换成TTL/CMOS数据后从R0OUT、R1OUT输出。第三部分是供电。15脚GND、16脚VCC(+5V)。因为单片机输入、输出电平为TTL电平,而
7、PC机配置的是RS-232C标准接口,二者的电气规范不同,所以要加电平转换电路。给出了采用MAX-232芯片的PC机和单片机串行通信接口电路,与PC机相连采用9芯标准插座。四、步进电机驱动模块电路电路如下图所示:五、系统的软件设计要求:可通过操作按键对步进电机的正转、反转、和启动、停止进行控制。程序如下:#include intrins.h /要用到_nop_();函数math.h#define uchar unsigned char#define uint unsigned intuchar key;int n;static uchar i;/*/* 单片机引脚定义 */*Define AD
8、C operation const for ADC_CONTR*/#define ADC_POWER 0x80 /ADC power control bit#define ADC_FLAG 0x10 /ADC complete flag#define ADC_START 0x08 /ADC start control bit#define ADC_SPEEDLL 0x00 /540 clocks#define ADC_SPEEDL 0x20 /360 clocks#define ADC_SPEEDH 0x40 /180 clocks#define ADC_SPEEDHH 0x60 /90 cl
9、ocks/*/*硬件部分*/按键控制sbit k1= P13; sbit k2= P12;sbit k3= P11;sbit k4= P10;/电机驱动sbit F1 = P24; sbit F2 = P25;sbit F3 = P26;sbit F4 = P27;/12864sbit CS = P2 3; /片选 高电平有效 单片LCD使用时可固定高电平sbit SID = P2 6; /数据sbit SCLK = P2 5; /时钟sbit PSB = P2 4; /串并口选择/*/* 数据部分 */*/void Write_char(bit start, uchar ddata);voi
10、d Send_byte(uchar bbyte);void Delaynms(uint di);void Lcd_init(void);void LCD_Write_string(uchar X,uchar Y,uchar *s);void LCD_set_xy( uchar x, uchar y );void display();uchar code waves=电机转动方式:;uchar code znwk1 =启动uchar code znwk2 =停止uchar code znwk3 =正转uchar code znwk4 =反转/电机void stop();void motor_ff
11、w(uchar f) ;/*/* 各延时程序 */void delay() /电机延时 for(n=0;n0;ms-) for(km=150;kmkm-);void Delaynms(uint di) /12864延时 uint da,db; for(da=0;dadi;da+) for(db=0;db10;db+);void Int_232(void) /232初始化 TMOD=0x20; SCON=0x50; TH1=0xFD; TL1=0xFD; TR1=1; TI=0;/*/* 12864显示部分 */*/ void Lcd_init(void) /初始化LCD Delaynms(10
12、); /启动等待,等LCM讲入工作状态 CS=1; Write_char(0,0x30); /8 位介面,基本指令集 Write_char(0,0x0c); /显示打开,光标关,反白关 Write_char(0,0x01); /清屏,将DDRAM的地址计数器归零 void Write_char(bit start, uchar ddata) /写指令或数据 uchar start_data,Hdata,Ldata; if(start=0) start_data=0xf8; /写指令 else start_data=0xfa; /写数据 Hdata=ddata&0xf0; /取高四位 Ldata
13、=(ddata4)& /取低四位 Send_byte(start_data); /发送起始信号 Delaynms(5); /延时是必须的 Send_byte(Hdata); /发送高四位 Delaynms(1); Send_byte(Ldata); /发送低四位void Send_byte(uchar bbyte) /发送一个字节 uchar led; for(led=0;led8;led+) SID=bbyte&0x80; /取出最高位 SCLK=1; SCLK=0; bbyte0) motor_ffw(f); k-;void stop() /停止void going() /启动后正反转 if(key=1) moving(0,1); else if(key=2) stop(); else if(key=3) else if(key=4) moving(1,1); else;void scan() /按键控制 if(k1=0)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1