河北建筑工程学院单片机原理及应用课程设计1前言单片机的应用介绍单片机全称叫单片微型计算机(SingleChipMicrocomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用,例如精密的测量设备2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。6.在各种大型电器中的模块化应用如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。河北建筑工程学院单片机原理及应用课程设计2目录前言...........................................................................................................1一.课程设计的目的和要求..................................................................3二.总体设计思路..................................................................................3三.硬件设计..........................................................................................6四.软件设计..........................................................................................9五.使用Keil、preoteus软件调试仿真说明..................................10六.结束语.............................................................................................11七.参考文献.........................................................................................11河北建筑工程学院单片机原理及应用课程设计3一.课程设计的目的和要求1、设计目的1)学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。2)掌握汇编语言程序设计方法。3)培养实践技能,提高分析和解决实际问题的能力。2、课程设计题目:00-99加计数器3、设计任务及要求1)上电时,数码管显示为00。2)利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,作为手动计数的按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。3)计数器计数到99后,再按计数按钮,则数码管从00重新开始计数。二.总体设计思路1.硬件设计思路及系统框图1)硬件设计思路:00-99加计数器硬件系统主要由AT89S51单片机,数码管,电容,电源等元件组成,利用单片机的P0口、P1口作为输出端,来控制数码管的显示,通过单片中烧入程序,然后利用P3.7口作为输入端,通过点动控制实现开关量的控制和计数,然后再通过数码显示器显示出来。通过调试仿真从而实现00-99加计数。元件名称型号数量/个用途单片机AT89S511控制核心晶振12MHZ1晶振电路河北建筑工程学院单片机原理及应用课程设计42)原器件清单3)系统框图系统框图2.软件设计思路及程序流程框图1)软件设计思路:实现00-99计数功能,子程序实现将高低电位转化为数码管的十进制数字,实现手动开关计数。通过手动给脉冲信号,实现计数,再加到99时,在手动给脉冲时,回到初始状态00,从而实现00到99加计数。2)对照表电容30uF2晶振电路排阻Respack82上位电阻电阻10k1复位电路电源+5v1提供电源拨码开关BUTTON_11发出信号数码管7SEG-MPX1-CC2显示电路“0”3FH“8”7FH单片机数码管开关电子电路河北建筑工程学院单片机原理及应用课程设计53)程序流程图“1”06H“9”6FH“2”5BH“A”77H“”4FH“b”7CH“4”66H“C”39H“5”6DH“d”5EH“6”7DH“E”79H“7”07H“F”71H开始河北建筑工程学院单片机原理及应用课程设计6程序框图三.硬件设计1.芯片由UNTITLED—ISISPROFESSIONAL实验系统提供(AT89C51)1)主要特性:与MCS-51兼容4K字节可编程闪烁存储器Count初始为0数码显示“00”按键识别成功吗?Count=Count+1Count=100吗?显示Count计数器YNNY河北建筑工程学院单片机原理及应用课程设计7寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz—24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内震荡器和时钟电路2)管脚说明:①电源引脚Vcc(40脚):典型值+5V。Vss(20脚):接低电平。②外部晶振XTAL1、XTAL2分别与晶振两端相连接。③输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“1”。P1口:I/O双向口。作输入口时,应先软件置“1”。P2口:I/O双向口。作输入口时,应先软件置“1”。P3口:I/O双向口。作输入口时,应先软件置“1”。④控制引脚:RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST(9脚):复位信号输入端(高电平有效)。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。AT89C51单片机的P口特点:P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,河北建筑工程学院单片机原理及应用课程设计8又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX@RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。(2)排阻的作用所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。它在排阻上一般用一个色点标出来。排阻一般应用在数字电路上,比如:作为某个并行口的上拉或者下拉电阻用。使用排阻比用若干只固定电阻更方便。排阻有a型和b型的区别。a型排阻的引脚总是奇数的。它的左端有一个公共端(用白色的圆点表示),常见的河北建筑工程学院单片机原理及应用课程设计9排阻有4、7、8个电阻,所以引脚共有5或8或9个。B型排阻的引脚总是偶数的。它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。排阻的阻值读法如下:“103”表示:10kΩ,“510”表示:51Ω。以此类推常用于显示数码管。3)原理图00-99手动加计数器设计原理图四.软件设计汇编源程序CountEQU30H;EQU——标号赋值伪指令SP1BITP3.7ORG0A1B1C1D1E1F1G1H1A2B2C2D2E2F2G2H2B1C1D1E1F1G1H1A2C2B2D2E2F2G2A1XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C130pFC230pFX112MHzR110kC310u234567891RP1RESPACK-8234567891RP2RESPACK-8VCCVCC00-99手动加法计数器河北建筑工程学院单片机原理及应用课程设计10START:MOVCount,#00HNEXT:MOVA,CountMOVB,#10DIVAB;A除以B,商(存于)A余(下)BMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,BMOVCA,@A+DPTRMOVP2,AWT:JNBSP1,WT;SP为0转移//中断程序WAIT:JBSP1,WAIT;SP为1转移LCALLDELY10MS;调用显示子程序JBSP1,WAITINCCount;Count加1MOVA,CountCJNEA,#100,NEXT;累加器与立即数不等转移LJMPSTART;返回初始值DELY10MS:MOVR6,#20