单片机课程设计5.doc

上传人:文库蛋蛋多 文档编号:4147579 上传时间:2023-04-07 格式:DOC 页数:10 大小:399.50KB
返回 下载 相关 举报
单片机课程设计5.doc_第1页
第1页 / 共10页
单片机课程设计5.doc_第2页
第2页 / 共10页
单片机课程设计5.doc_第3页
第3页 / 共10页
单片机课程设计5.doc_第4页
第4页 / 共10页
单片机课程设计5.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机课程设计5.doc》由会员分享,可在线阅读,更多相关《单片机课程设计5.doc(10页珍藏版)》请在三一办公上搜索。

1、单片机课程设 计*目的:1、通过课程设计,加深对单片机技术与应用知识理解,巩固和提高学过的理论与专业知识,并予以适当的深化。2、进一步掌握定时器的使用和编程方法及中断处理程序的编程方法。3、学会如何编制含定时器中断、独立键盘检测、LED显示等多种功能的综合程序。4、掌握单片机控制系统设计的一般方法,包括硬、软件设计、调试等。5学会查阅有关专业资料及设计手册。设计要求:(1)搭建单片机最小系统 :软件要求:能通过AVR_fighter下载程序;提示:最小系统包括时钟电路,复位电路,EA引脚的接法,IO口的输出引脚(可通过杜邦都头线与Led灯、数码管相连)。(2)在(1)的基础上外接一个LED灯。

2、软件要求:编程使其闪烁,闪烁频率由慢变快,再由快变慢。提示:延时可以用带参数的延迟子程序。(3)再增加一个LED数码:共阳极级接法软件要求:编程实现秒表,从0到9之间循环显示。(4)增加一个按键:可通过(3)的数码管实现按键计数软件要求:按键去抖,按键释放,按键显示从0-9显示元器件:单片机最小系统的构成只需要复位电路、电源电路、一个单片机(AT89S52)、一个USB接口、下载器、12M晶振、电容、电阻、开关一、AT89C51单片机的结构原理与引脚功能AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read

3、 Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示引脚功能VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I

4、/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL

5、门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(I

6、LL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址

7、的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/V

8、PP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉

9、宽无任何要求,但必须保证脉冲的高低电平要求的宽度。二、原理图1、复位电路复位电路工作原理如上图所示,VCC上电时,C4充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C4充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下S,C4放电。S松手,C4又充电,在10K电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。2、按键部分单片机可根据需要安装在主机内部的接口板上,按键则安装在产品的面板等易操作的地方。当按下某按键时,单片机控制系统将产生的CLOCK信号与按键信号经INT0口送给主机。此硬件电路简单,可充分利用软件编程来模拟按键波形,实现键盘

10、功能。系统要判断某一按键是否按下,可以利用软件逐一查询,然后输出相应的按键模拟波形,从而实现按键功能。采用小型一体化专用键盘不但可完成按键的功能,而且要求根据仪器外形进行一体化优化设计,使产品外型美观、布局合理。3、晶振部分合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12MHZ无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振4、数码管部分LED数码管显示是利用半导体发光制成条形的发光二极管,封装在一起组成数字或其他符号形状。根据设计需要,本次选用共阴极数码管。单片机供电采用7805三端线性稳压芯片配合直流稳压电源构成。直流输入低于18V的直流电,输出为5V

11、(误差小于5%),完全满足单片机及其他芯片的要求程序的理解:a、 LED闪烁由快到慢,再由慢到快ORG 0000HMOV A,#10;循环10次S1: MOV P1,#00H;把00送给p1,LED亮LCALL DELAY;延时MOV P1,#0FFH;把0FF送给P1,LED暗LCALL DELAYDEC A;A减1JZ S2;A为0时跳到S2,不为0执行下一条LJMP S1;跳到S1S2:MOV A,#1;把数字1送给AS3:MOV P1,#00HLCALL DELAYMOV P1,#0FFHLCALL DELAYINC A;A加1CJNE A,#10,S3;A和数字10相比较不相等则跳到

12、S3,相等时则执行下一条LJMP S1DELAY:MOV R1,A;带参数的延时程序DEL3: MOV R2,#200DEL2: MOV R3,#250DEL1:NOPNOPDJNZ R3,DEL1DJNZ R2,DEL2DJNZ R1,DEL3RETEND延时计算:Y=*Ab、 数码管由09自动显示ORG0000HAJMPMAINORG0030HMAIN:MOVTMOD,#10H;启动定时器1的方式1MOVTH1,#3CH;计时器从50000开始计时,高八位送给TH1,第八位送给TL1MOVTL1,#0B0HSATRT:MOVR1,#00HMOVDPTR,#TABDISP:MOVA,R1MO

13、VCA,A+DPTR;查询指令MOVP0,AACALLDEALY_1SINCR1;R1加1CJNER1,#10,DISP;判断R1和数字10是否相等,不相等跳到DISPMOVR1,#00HSJMPDISPTAB:DB0C0H,0F9H,0A4H;查询的内容DB0B0H,99H,92HDB82H,0F8H,80HDB90HC、数码管按键显示09 ORG 0000H AJMP LOOP ORG 0100H LOOP: MOV R4,#0H ;;显示计数器清0 MOV A,R4AGAIN:MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A JB P3.2,$ S1: MOV R

14、5,#1 ;延时10MS ACALL DELAY JNB P3.2,S1 ;等待按键放开 INC R4 ;计数加1 MOV A,R4 CJNE A,#10,AGAIN ;比较跳转 JMP LOOP ;再执行循环一次总结我把程序先下载到我买的学习板上运行,一切正常。但放到我做的的最小系统上却没反应。就那么点线路查来查去还是没问题呀! 是晶振不起振?在学习板上用手拿着改锥分别碰18脚(XTAL2)和19脚(XTAL1)。发现当人体碰到19脚时程序会乱掉,就是说 可能会停振。于是又把我的系统板上晶振位置的电路重焊一遍,尽量缩短了19脚处线的长度。C4、C5又分别换了15PF、20PF、 30PF的电容试试。故障依然,没办法,得静一静,看书!在看到介绍第31脚(EA/VPP)时猛然想到31脚没有接到电源正啊! 起来立即把31脚接到电源正,红色发光管立即闪烁起来。此时的高兴真不能说清楚的啊!总结:除了在焊接时要仔细外,先画好电路图也是很重要的。像上面的电路图在89S51的31脚上就只写了Vcc的字样,因此 焊接时就被忽视了。应该先画出一张完整的图才行。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号