单片机最小系统.docx
《单片机最小系统.docx》由会员分享,可在线阅读,更多相关《单片机最小系统.docx(17页珍藏版)》请在冰豆网上搜索。
单片机最小系统
桂林电子科技大学
单片机最小应用系统
设
计
报
告
指导老师:
吴兆华
学生:
陶利民
学号:
082011116
机电工程学院
2009年5月
单片机最小应用系统设计报告
一、设计题目………………………………………………………3
二、设计目的………………………………………………………3
三、系统硬件图……………………………………………………3
四、程序流程图……………………………………………………4
五、系统说明与分析
5.1系统主要组成部分………………………………………6
5.2温度测量部分……………………………………………6
5.3单片机最小系统部………………………………………6
5.4电路板的制作……………………………………………11
5.5系统连线说明分析.…………………………………….12
六、源程序………………………………………………………13
七、总结…………………………………………………………14
八、参考文献……………………………………………………15
一、设计题目
发光二极管亮灭控制系统设计。
二、设计目的
1、通过本次实验,掌握控制二极管亮灭的基本原理。
2、通过对89S51的使用和编程,掌握I/O口使用的基本原理。
3、搭建单片机最小应用系统,进一步加深对单片机应用的理解,提高处理实际问题的能力和独立分析思考的能力。
三、系统硬件图
1、发光二极管亮灭控制系统的硬件电路原理图如下:
图1电路原理图
2、PCB图如下:
图2PCB图
四、程序流程图
发光二极管亮灭控制系统主程序框图如下:
图3主程序框图
延时子程序流程图:
图4延时子程序
五、系统说明与分析
5.1系统主要组成部分
发光二极管亮灭控制系统主要分为三个部分:
单片机最小系统,二极管显示部分,按键控制部分组成。
所用主要元件有:
AT89S51,四个按键,1K9针排阻,八个发光二极管。
5.2发光二极管亮灭部分
发光二极管分正负两极只有正确连接正负极才能使二极管发光,同时要有限流电阻。
5.3单片机最小系统部分
MCS-51系列单片机是一种高性能的8位机系列,广泛应用于各种小型控制系统中,其引脚图如图所示。
本论文采用的AT89S51单片机是AMTEL公司生产的MCS-51系列的兼容产品,与MCS-51指令系统兼容,系统结构相同,CMOS工艺制造并带有非易失性Flash程序存储器。
全部支持12时钟和6时钟操作。
AT89S51包含128字节RAM、32条I/O口线、2个16位定时/计数器、6输入4优先级嵌套中断结构、1个串行I/O口(可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路)。
ROM
RAM
CPU
I/O接口
电路
定时器/
计数器
时钟
图5单片机最小系统
图6MCS-51引脚图
MCS-51系列单片机的并行I/O口
接口电路是微机必不可少的组成部分,并行输入确出接口是CPU和外部进行信息交换的主要通道。
MSC-51系列单片有4个8位并行双向I/O口P0~P3,共32根I/O线。
每一根线能独立用作输入或输出。
单片机可以外接键盘、显示器等外围设备.还可以进行系统扩展,以解决硬件资源不足问题。
4个并行口都是双向口,既可以输入又可以输出。
P0、P2口经常作外部扩展存储器时的数据、地址线,P3口除作I/O口外,每一根都有第二功能。
这4个I/O口结构基本相同,但仍存在差别。
(1)P1口是最常用的I/O口如图所示,因为不作数据地址线,其结构中没有数据地址线,也没有多路开关MUX,输出驱动电路接有上拉电阻。
P1口输入输出时与P0作I/O时相似,输出数据时.先写入锁存器,经Q端反相,再经场效应管反相输出到引脚。
输入时,先向锁存器写l,使v管截止.外部引脚信号由下方读缓冲器送入内部总线,完成读引脚操作。
P1口也可以读锁存器。
外部提升电阻将引脚拉升至高电平,但输人的低电平信号能将其拉低,不会影响低电平的输入。
图7P1口一位结构
(2)P2口的位结构比P1多了一个控制转换部分如图8所示,结构与P0口基本相似,如下图所示。
P2口改P0推拉式输出驱动电路为上拉电阻式,当控制信号s为低电平,作I/O口使用时,多路开关MUX使锁存器输出端Q与输出驱动输入端接通,构成一个准双向口。
此外,当外部扩展存储器时,P2口常做高8位地址线使用。
图8P2口一位结构
下表中概括了单片机中使用到的并行口P1、P2功能:
表1P1、P2功能一览表
MCS-51系列单片机的工作方式和时序
单片机应用系统中,除了基本计算机系统单元电路外.还需配备完整的外围电路、以完成复位、掉电保护、提供时钟、节电等功能。
(1)时钟电路:
单片机内部有一个高增益的反相放大器,通过XTAL1和XTAL2引脚外接石英振于或陶瓷振子、微调电容组成振荡器如图9所示。
该振荡器发出的脉冲直接送入内部时钟电路。
振荡器若外接的是石英扳子,微调电容通常选择30pF;外接陶瓷娠子时选样47pF。
振荡频率范围选择1.2—12M。
MCS5-51系列单片机也可以采用外接时钟,这时XTAL2脚用来输入外部时钟信号(XTAL2脚为内部时钟电路的输入端),XTALl脚则接地如图9-b所示。
对于CHM05工艺制造的80C51单片机,则应从XTALl脚输入外部时钟信号,XTAL2脚悬空。
(a)外接石英晶体振荡电路(b)外接时钟电路
图9两种单片机时钟电路
(a)上电复位(b)按键电平复位
(c)RC放电过程(d)电平复位过程
图10单片机常用复位电路
(2)复位电路:
复位使单片机处于起始状态,并从此状态开始运行MCS5-51单片机RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振荡周期)以上的高电平。
可使单片机复位。
本论文使用的是外部复位电路,单片机在启动后要从复位状态开始运行,因此上电时要完成复位工作,称上电复位,如图10-a所示。
上电瞬间电容两端的电压不能发生突变,只RST端为高电平+5v,上电后电容通过及RC电路放电RST端电压逐渐下降,直至低电平0V,如图10-c所示。
适当选择R、C的值,使RST端的高I电平维持2个机器周期以上即可完成复位。
单片机L在运行过程中,出于本身或外并干扰的原因会导致出错。
这时可按复位键以重新开始远行,按键复位可分为按键电平复位或按健脉冲复位,如图10-b所示。
按键脉冲复位和上电平复值的原理是一样的,都是利用RC电路的放电原理,如图10-d所示。
让RST端能保持一段时间的高电平,以完成复位,按键电平复位时,按键时间也应保持在两个机器周期以上。
根据设计要求和计算简便的原则,我们选择12M的石英晶振、30PF的电容、+5V电源,最小系统如下:
图11单片机最小系统
5.4电路板的制作
Protel99功能强大,为我们进行电子电路原理图和印制板图的设计提供了良好的操作环境。
用Protell99进行电路设计分为两大部分:
原理图的设计和电路板的设计。
原理图的设计实在SCH系统中进行的,电路原理图是印刷板电路设计的基础,只有设计好原理图才有可能进行下一步的电路板设计。
用protel99进行电路板设计的第一步是其原理图的设计。
显然,原理图决定整个电路的基本功能,也是接下来生成网表和设计印刷板电路的基础。
具体步骤如下:
(1)图面设置:
Protel99允许用户根据电路的规模设置图面的大小,按照偏好和习惯设置图面的样式。
实际上,设置图面就是设置了一个工作平面,以后的工作就要在这个平面上进行。
所以图面应该设置得足够大,为进一步工作提供一个足够大的工作空间。
(2)放置元件:
所谓放置元件就是从元件库中选取所需得元件,将其布置到图面上合适的位置,有时还要重定义元件的编号、封装。
元件的封装很重要,要根据元件的实际尺寸和实际封装来决定,要是元件没封装好,将会给以后电路板的制作带来很大的麻烦。
这些都是下一步工作的基础。
Protel99为用户提供了一个非完备的元件库,并且允许用户对这个元件库进行编辑或者新建自己的元件库。
电路板的制作过程
(1)打印:
将生成的PCB图打印到热转印纸上,需注意线不能太窄,墨要加重,否则制板时容易断线,如果在操作过程中断了线,可用电烙铁将锡带过。
(2)熨烫:
将热转印纸覆在铜板上,用电熨斗进行熨烫,关键要注意熨烫的时间,不能太久,也不能时间太短,否则,太久会把铜板烫坏,不够的话墨迹覆不上去。
(3)腐蚀:
把铜板放到三氯化铁溶液中腐蚀,需注意溶液浓度要较高,最好用热水配置,这样腐蚀更快,一般3分钟即可。
如果时间过长,需剩下的铜线也可能被腐蚀。
(4)打孔:
打孔时注意钻头尺寸,本次用的钻头大小是0.712mm的,最需注意的地方是集成块的管脚,如果打孔误差大,管座就很难插上。
(5)放置元件:
放置前应先打磨一下打孔后留下的毛刺,并均匀地涂上松香水(目的是防止铜线氧化,易于焊锡覆着焊盘,但多涂会导致焊接时焊点变黑,影响美观)。
放置元件时注意集成块的管脚,二极管和电解电容的正负,这些都是平时比较容易出错的地方。
(6)焊接:
焊接技术比较难掌握,焊锡、烙铁与焊盘的位置关系,焊锡熔化时间
长短,松香水的浓度,烙铁的温度等等,都是影响焊点美观的因素。
(7)检查:
检查是否有虚焊,集成块管脚位置是否正确,电源引线位置是否恰当等。
检查完毕就能进行调试了。
5.5系统连线说明分析
在本系统中单片机的P0.0-P0.7口与八个发光二极管连接,动态亮灭。
单片机的P1.0-P1.3与四个控制按键连接。
调试过程:
1、保证电路板连接正确后,接上电源。
2、观察二极管亮灭是否与预期情况相符,如果不相符,做适当调整。
3、实际按键过程,按下按键看是否有预期的控制效果,没有则查看问题所在。
六、源程序
ORG0000H
LJMPLET
ORG003AH
LET:
MOVSP,#31H
AGAIN:
MOVP0,#0FFH;设置各灯初始为灭
MOVA,#0FFH
MOVP1,A
ACALLAN;调用按键识别函数看是否有按键按下,按键;按下则返回
JNBP1.0,START;判断是否按下开始键
JMPAGAIN;没按开始键则继续检测按键
START:
MOVA,#0FFH;向P1口写1
MOVP1,A
ACALLAN;按下开始键后继续等待时间设定键
JNBP1.1,DELAYS;设定为0.5秒
JNBP1.2,DELAY1S;设定为1秒
JMPAGAIN;误按返回
DELAYS:
MOVR1,#25;0.5秒循环点亮程序
CLRC
ACALLLIGHT
JMPDELAYS
DELAY1S:
MOVR1,#50;1秒循环点亮程序
CLRC
ACALLLIGHT
JMPDELAY1S
AN:
MOVA,P1;按键判断程序
CJNEA,#0FFH,LP0
JMPAN
LP0:
ACALLDELAY1
MOVA,P1
CJNEA,#0FFH,LP1
JMPAN
LP1:
RET
DELAY1:
MOVR3,#60;消抖延时程序
D2:
MOVR4,#248
DJNZR4,$
DJNZR3,D2
RET
LIGHT:
MOVR0,#8;循环点亮程序
MOVA,#11111111B
LOOP:
MOVB,R1
MOVR5,B
RLCA
MOVP0,A
ACALLDELAY
DJNZR0,LOOP
RET
DELAY:
MOVR6,#100;公共延时程序
DLY2:
MOVR7,#100
DJNZR7,$
DJNZR6,DLY2
DJNZR5,DELAY
MOV90H,#0FFH;判断停止键是否按下
MOVR2,90H
JNBP1.3,QUE
JMPFAN
QUE:
LCALLDELAY1;消抖延时
MOVR2,90H
JNBP1.3,EXT0
FAN:
RET
EXT0:
MOVR0,81H;停止返回程序
MOV@R0,#00H
DECR0
MOV@R0,#00H
RETI
END
七、总结
1、在设计系统过程中,学会用ProtelDXP画原理图和PCB图。
2、自己动手制作电路板,提高动手能力。
3、调试程序过程中,针对遇到的问题,寻找解决方法,同时学会利用汇编语言编制单片机程序。
4、感谢在整个设计单片机最小系统过程中给我很大帮助的导师,师兄,同学等。
八、参考文献
[1]孙安青.AT89S51单片机实验及实践教程[M].
[2]秦晓梅.育斌.单片机原理综合实验教程[M].辽宁:
大连理工大学出版社,2004.
[3]明荧.8051单片机基础教程[M].2003.
[4]黎文模.ProtelDXP电路设计与实例精解[M].北京:
人民邮电出版社,2006.