目录1设计要求..……………………………………………………..12设计方案及实现……………………………………………….12.1系统功能分析…………………………………………….....12.2功能实现方案……………………………………………….13使用的元件及功能…………………………………………….33.189c51引脚图与功能说明…………………………………..33.2LED数码管…………………………………………………64实现电路图及调试……………………………………………64.1实现电路图………………………………………………….64.2调试及问题解决……………………………………………74.3仿真结果……………………………………………………75心得体会……………………………………………………….86参考文献………………………………………………………97附录……………………………………………………………9武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书1电子跑秒表的设计内容提要:本次课程设计通过电子秒表的设计与制作,学到了单片机最小系统的概念与设计,对单片机调用、定时等功能模块有了进一步的了解,并利用这个设计对单片机的编程方法有了一定程度的深入了解,并对51单片机有了深入的了解。关键字:89c51单片机、键控、中断、数码管显示1设计要求以89s51单片机为核心芯片,设计一个模拟电子跑秒表,要求如下:A、利用LED显示秒表的计时过程;B、可以对秒表进行初始时间设置;C、可以调整秒表的时间。2设计方案及实现2.1系统功能分析本次课设设计电路通过以下四个按键实现要求功能:Start键实现秒表的启动计时;Stop实现秒表的清零;Pause键实现计时的停止;Set键实现对秒表的时间预置。同时以上各键按下后能在数码管上清晰显示时间的改变,以供使用者操作以及测试。2.2功能实现方案由系统的功能分析可以得到,功能的实现是通过对按键的控制得到,在源代码的编写中则可以通过对各个按键的调用实现键控功能,同时显示在数码管上。设计语言采用汇编语言,通过对按键的判断(JNB语句)以及调用(DISP,INC等),完成键控数码武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书2管显示。实现方案流程图如下所示:图1程序流程图开始定时器计数器2初始化显示缓冲区初始化开中断按键扫描是否有按键输入?判断是否为start键判断是否为stop键判断是否为set键判断是否为pause键定时计数器中断清零暂停计时查看数据预置时间显示显示Y开始设置堆栈指针8279芯片初始化定时器/计数器1初始化显示缓冲区初始化开中断键盘扫描是否有键按下键号送A累加器判是否为C键判是否为A键判是否为D键判是否为B键显示调设置时钟初值子程序调停止计时子程序调启动计时子程序调时钟清零子程序NNNNYYYYNY开始设置堆栈指针8279芯片初始化定时器/计数器1初始化显示缓冲区初始化开中断键盘扫描是否有键按下键号送A累加器判是否为C键判是否为A键判是否为D键判是否为B键显示调设置时钟初值子程序调停止计时子程序调启动计时子程序调时钟清零子程序NNNNYYYYNYYYYNNNN武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书33使用的元件及功能3.189c51引脚图与功能说明AT89c51是一个40引脚的芯片,其中继承了运算器、控制器、存储器,是一个高度集成的芯片,可将编写编译后的程序载入到芯片中,进而实现能够达到要求的功能。其管脚图如下:图289c51管脚图管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书4P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书5P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书6(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2LED数码管数码管管脚图如下所示图3LED数码管管脚图LED数码管采用的是有发光二极管按一定的结构组合起来的显示器件。课设中使用的显示数码管为共阳极数码管,A-G脚因输入不同的二进制编码可以显示不同的数字。在实验中则为高低电平的判断显示。4实现电路图及调试4.1实现电路图武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书7图4电子跑秒表实现电路图4.2调试及问题解决将所编写的电子秒表的程序下载到芯片中,调试程序。遇到的问题就是数码管不能正确的显示。没有正确编写数码管的显示程序,将小数点的显示位置改正,同时实验的数码管采用的是共阳的数码管显示,因为0亮1不亮,必须严格按照这个来编写程序。反复进行测试,对四个按键分别进行测试,检查是否完成预定的四个功能:启动、暂停、预置时间、停止。是否实现了定时/计数器中断。4.3仿真结果程序成功运行仿真结果如下图所示:武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书8图5仿真结果图5心得体会通过这个为期二周的单片机课程设计使我对AT89C51单片机有了更一层深入的了解,同时加强了动手实践能力。在这次课程设计中虽然也遇到了各种困难,但通过资料书以及求解于同学都解决了问题。同时结合实践进一步巩固了课本上的理论知识,将学习的理论基础知识又加深了一遍。认识到我们所学的知识还是远远不够的,我们需要不断学习提升自己的能力,不仅仅是动手能力,还有编程能力和考虑问题的全面性。单片机在日常生活中应用广泛,结合这学期在学的嵌入式系统原理,我们更多的了解了单片机的发展现状和发展趋势,以及在生活中的广泛应用,其实80C51只是我们所接触的一种简单的单片机,在实际应用中,有各个公司生产的不同型号的、针对不同武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书9功能设计的、以及根据用户的需要和发展自主研发设计的单片机还有很多,由此设计出来的嵌入式系统更是数不胜数。能够亲身的进行自我实践,并进行实际的应用,其实使我们对现行单片机的一次深入的了解,并能够提升我们将来在学习工作遇到的单片机设计问题。6参考文献[1].林土胜.《单片机技术及工程实践》.机械工业出版社.2010[2].李群芳张士军.《单片微型计算机与接口技术》.电子工业出版社.7附录汇编语言程序源代码ORG0000HAJMPMAINORG0003HRETIORG0013HRETIORG000BHLJMPT100MSORG001BHRETIORG0100HMAIN:MOVP2,#0FFHMOVP0,#00H武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书10MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVDPTR,#TABMOVR0,#00HMOVR1,#00HMOVR2,#00HMOVR3,#00HMOVR5,#02HSETBEASETBET0START0:JNBP1.1,START1JNBP1.3,STOPJNBP1.5,PAUSEJNBP1.7,SET1LCALLDISPLJMPSTART0DISP:MOVA,R3MOVCA,@A+DPTRMOVP0,ASETBP2.0LCALLDELAYCLRP2.0武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书11MOVA,R2MOVCA,@A+DPTRMOVP0,ASETBP2.1LCALLDELAYCLRP2.1MOVA,R1MOVCA,@A+DPTRMOVP0,ASETBP2.2CLRP0.7LCALLDELAYCLRP2.2SETBP0.7MOVA,R0MOVCA,@A+DPTRMOVP0,ASETBP2.3LCALLDELAYCLRP2.3RETTAB:DB0Xc0,0Xf9,0Xa4,0Xb0,0X99DB0X92,0X82,0Xf8,0X80,0X90DELAY:MOVR6,#20武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书12D1:MOVR4,#248DJNZR4,$DJNZR6,D1RETSET1:JNBP1.7,SET1INCR3LCALLDISPLJMPSTART0START1:SETBTR0LJMPSTART0RETISTOP:CLRTR0MOVR0,#00HMOVR1,#00HMOVR2,#00HMOVR3,#00HLCALLDISPLJMPSTART0PAUSE:CLRTR0LCALLDISPLJMPSTART0RETIT100MS:CLRTR0MOVTH0,#3CH武汉理工大学《专业课程设计3(微处理器与微控制器应用)》课程设计说明书13MOVTL0,#0B0HDJNZR5,EXITMOVR5,#02HINCR0CS1:CJNER0,#0AH,CS2