1、掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。关键词AT89S51;矩阵键盘;全加器;晶体振荡;复位;电源;数码管Abstract:The design is based on what we learn the course syllabus, according to the requirements
2、 of our first course examination, is the necessary training course of our mission, and SCM are of great help. Master microcontroller technology is one of the indispensable to our future technology, the work and the life and learning are very close connection. In recent years, with the electronic tec
3、hnology and the rapid development of the microcomputer chip, continuously improve the grade, its applications are constantly expanding in industrial control, has advanced science, intelligent instrument, electrical appliances, automobile electronic system, office automation equipment, personal infor
4、mation terminals and communication products has been widely used in modern electronic system, become the most important core components of intelligence. In this design, process and no use original learn in books, but the assembler language using C language program, using the simulation software, and
5、 popular PROTEUS keil joint simulation, convenient debug program and modify the hardware, the results show that the scheme design of hardware correct procedures also meets the requirement. Key wordsAT89S51; matrix keyboard; full adder; crystal oscillator; reset; power;nixie tube一 前言单片机自诞生以来,以其体积小,面向
6、控制,高性价比等优点,在各方各面扮演者重要的角色。本次课程设计涉及到单片机最小系统、5V稳压电源、数码管的显示、一位随机存储器、全加器几个单元,本次课程设计主要是引导我们应用理论知识做成一些实际的东西,达到将理论应用于实际的目的。同时,也重在培养我们的对电路的布局,元件的焊接,以此来培养我们的动手能力,提升对理论知识的理解。二 设计任务与要求2.1 设1. 了解并熟悉对直流电源的设计。2. 构成单片机最小系统的设计与控制方法。3. 熟悉单片机应用系统的开发过程和方法计目的1,(从网上)查找AT89S51引脚参数资料,2,规定完成基本内容:1) 1位六管静态随机存储器;2)1位全加器;(实现+、
7、-、补、与、或、非、异或、与非。)3)测量判决门限;4) 单片机系统;包括:,5V稳压电源;,上电复位;自动复位;,晶体管振荡;,33扫描键盘(或编码键盘);,四位八段数字动态显示;要求使用芯片AT89S51;看门狗。3,个人创新内容:,电机控制;,声音控制;,灯光控制;,温度控制;,电压控制;,频率控制;,汉字显示;,图象显示;机器人智能控制等。4,选做:,外部存储器扩展;,A/D、D/A转换。1. AT89S51的基本简介2.1 AT89S51主要特性与 MCS-51产品指令系统完全兼容 4k字节在系统编程(ISP)Flash闪速存储器 1000次擦写周期 4.05.5V的工作电压范围 全
8、静态工作模式:0Hz33MHz 三级程序加密锁 1288字节内部 RAM 32个可编程 IO口线 2个 16位定时计数器 6个中断源 全双工串行 UART通道 低功耗空闲和掉电模式 中断可从空闲模唤醒系统 看门狗(WDT)及双数据指针 掉电标识和快速编程特性 灵活的在系统编程(ISP字节或页写模式)2.2 AT89S51各引脚功能介绍 AT89S51 VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口
9、作原码输入口,当FIASH进行校验P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P 2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出
10、地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器
11、1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只 6有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q
12、端为0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口 89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许
13、的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。 如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE 才起作用。另 7外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/P
14、SEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。AT89SXX系列单片机实现了ISP下载功能2.整体电路设计 本次课题设计以芯片AT89S51为核心,设计出了一个包括具有数码显示功能,一位全加器,一位存储器,晶体振荡电路,复位电路的整体电路系统。下图2.1其系统
15、框图。4.1电源电路部分 电源部分包括:电源变压器、整流电路、滤波电路、稳压电路。整流电路是将工频交流电转为具有直流电成分的脉动直流电。 滤波电路是将脉动直流中的交流成分滤除,减少交流成分,增加直流成分。 稳压电路对整流后的直流电压采用负反馈技术进一步稳定直流电压 电源的原理图如下: 直流稳压电源电路图D1-D4 整流二极管(4007) C1、C3 旁路电容,抗高频干扰(104) C2、C4 电源滤波1000uf/25V 7805 稳压模块 D5 发光二极管(红色) ,电源指示灯 R1 限流电阻(1K) 5、3*3矩阵键键盘输入电路的设计 键盘输入电路分为独立式键盘输入、非编码键盘输入和硬件编
16、码键盘输入三种。此电路系统采用的事非编码键盘输入。盘其硬件电路图如下:当非编码键盘的按键较多时,若采用独立式键盘占用I/O口线太多,此时可采用矩阵式键盘,键盘上的键按行列构成矩阵,在行列的交点上都对应有一个键。行列方式是用m条I/O线组成行输入口,用n条I/O线组成列输出口,在行列线的每一个交点处,设置一个按键,组成一个mxn的矩阵,矩阵键盘所需的连线数为行数+列数,如44的16键矩阵键盘需要8条线与单片机相连,般键盘的按键越多,这种键盘占I/O口线少的优点就越明显,因此,在单片机应用系统较为常见。本系统采用的是4x4的按键电路。因为单片机P1口内有上拉电阻,故不需要外接上拉电阻。矩阵式键盘识
17、别按键的方法有两种: 一是行扫描法, 二是线反转法。 用线反转法。 这里就将一下线反转法的原理: 如图4-9,P1_0P1_3为列线,P1_4P1_7为行线。(1)、先给列线送高电平“1” ,行线送低电平“0”;若有按键按下,必有一根列线和行线导通且为低电平“0” ,故可确定这根列线;(2)、先给行线送高电平“1” ,列线送低电平“0”;若有按键按下,必有一根列线和行线导通且为低电平“0” ,故可确定这根列线;(3)、根据确定的列线与行线,即可确定按键的位置。z 关于键盘的抖动问题的分析和解决:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用
18、,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。 硬件消抖:在键数较少时可用硬件方法消除键抖动。下图所示的RS触发器为常用的硬件去抖。图中两个“与非”门构成一个
19、RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。2 软件消抖:如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才
20、能转入该键的处理程序。四位共阳数码管本次课程设计我们所用到的数码管是共阳的数码管。数码管结构数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09,字符AF、H、L、P、R、U、Y等符号及小数点“.”。数码管工作原理 共阳极数码管中8个发光二极管的阳极(二极管正端)连接一起,即为共阳极接法,简称共阳数码管。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻
21、。数码管的显示方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位数码管,通常都是采用动态扫描的方法进行显示。在动态方式中,逐个循环地点亮各位数码管。这样虽然在任意时刻只有一位数码管被点亮,但是由于人眼具有视觉残留效应和眼睛的余辉,看起来便是全部数码管持续点亮的效果。单片机通过一分8位的二进制电平信号显示出想要显示的数字或者字母。例如,点亮二极管b,c,数码管就会显示1,点亮a,b,c,d,e,f,g数码管就会显示数字0.所以,数码管的显示需要有8根连线。同理,要使用四位八段数码管,只要控制相应的位选和段选就可以自由的显示相应的数字。一位随机存储器 其原理图如下: 这次设计中的一位随机
22、存储器由NPN三极管9013,电阻和LED搭建而成,LED的亮灭用以显示出数据的存入是1还是0。理论上,由于电路的对称性,使得LED的亮灭具有随机性,左边的LED亮还是右边的LED亮事先无法预知,但是实际中由于不能做到元件的绝对对称,并且导线的长度也不能绝对相等,所以随机性并不是很好。存入数据的时候可以用一个按键开关控制,也可以直接用一根连接到了地端或者是正5V电源的导线用接触的方式进行控制。本次设计的一位全加器能实现加、减、补;与、异或、非、或等七个功能,其结果用LED的亮灭体现出来。电路是由具有4与非门的74LS00集成芯片搭建而成,74LS00的内部逻辑如下图所示:我们可以按照以下的与非
23、逻辑电路结合74LS00的内部逻辑搭建我们所需要的全加器由于是采用万用板搭建的,而这个电路所涉及到的与非门又比较多,所以在焊接之前,应该先布好局,防止在焊接的过程中将线焊错。另外要注意将每个芯片的电源端和地端都连接好,以保证芯片正常工作。复位电路的设计 复位电路主要有三种形式:上电复位,手动复位,软件控制自动复位。本设计中硬件采用了上电复位和手动复位,便于在需要复位时采取手动复位。在上电瞬间对电容充电,然后电容缓慢放电,让RST端保持在高电平(3.5 v)的时间大于10MS则可实现复位。其复位电路如图所示。振荡电路设计 设计方案:在AT89S51芯片内部有一个高增益反相放大器,其输入端芯片引脚
24、XTAL1,其输出端为引脚XTAL2,只需要在XTAL1和XTAL2引脚之间跨接晶体振荡器和微调电容,形成反馈电路,振荡器即可工作。基本设计原理图如下图5.1软件部分: 软件设计有两种方法:一种是自上而下,逐步细化;另一种是自下而上,先设计出每一个具体的模块(子程序) ,然后再慢慢扩大,最后组成一个系统。两种方法各有优缺点。对于初学者来说,而自下而上的方法是一种较为合适的方法,每设计并测试好一个模块,就能看到实际的效果,而主程序采用自上而下的方法,将它分成若干个功能相对独立的较小的程序模块。然后再采用自下而上的方法,设计一个模块,调试一个模块,加入主程序调试;再进行下一个模块设计和调试。所以在
25、这一步骤就是设计主程序的框架。根据问题的定义,确定算法,并绘制程序框图。注意必须确保程序框图的正确性。编写程序 在确保程序框图的正确性的前提下,才能开始编写程序。在编程时必须注意以下几点:一定要严格根据框图编程。一定要写注释。通过编译后,只表明语法没错,并不表明逻辑正确,一定要用同的数据对模块进行测试。完全符合预定结果,方可确认通过。将该模块加到主控模块进行测试,如果与预定结果不符,必须找原因,进行修改、调试。必须注意随时保存调试通过的副本。以便当新程序出现故障时,随时可返回前面的正确点重新开始键盘程序ORG 0000H MOV P0,#0FFH MOV P2,#00H MAI:MOV P1,
26、#00000111B ; MOV A,P1 ;00000110B CJNE A,#07H,REL AJMP MAI REL: MOV P1,#00111000B MOV R6,A ; 00000110B 00110000B ADD A ,R6 ; 00110110B 36 KK1: CJNE A,#1EH,KK2 ; 开始扫描键盘 ACALL K1 KK2: CJNE A,#1DH,KK3 ACALL K2 KK3: CJNE A,#1BH,KK4 ACALL K3 KK4: CJNE A,#2EH,KK5 ACALL K4 KK5: CJNE A,#2DH,KK6 ACALL K5 KK6:
27、 CJNE A,#2BH,KK7 ACALL K6 KK7: CJNE A,#36H,KK8 ACALL K7 KK8: CJNE A,#35H,KK9 ACALL K8 KK9:CJNE A,#33H,MAI ACALL K9 K1: MOV P0,#01H MOV P2,#10H RET K2: MOV P0,#02H K3: MOV P0,#03H K4: MOV P0,#04H K5: MOV P0,#05H K6: MOV P0,#06H MOV P2,#20H K7: MOV P0,#07H K8: MOV P0,#08H K9: MOV P0,#09H MOV P2,#40H R
28、ET End程序指示 ORG 0000H ; 伪指令 入口地址 CPL P2.0 ; MOV R0,#5 ; BBB: MOV R1,#100 ; AAA: MOV R2,#100 ; DJNZ R2,$ ; DJNZ R1,AAA ; DJNZ R0,BBB ; AJMP MAI ; END ;发 MOV P0,#11H MOV P2,#88H ACALL YS1 MOV SCON,#50H ; 串行口方式1(8位,无校验),允许接收 MOV PCON,#0 ; 取 SMOD=0 1/2分频 MOV TMOD,#20H ; 计数器T1模式2,自动重装8位计数器 MOV TH1, #0D0H ; 波特率600,fosc=11.0592MHz, 则T1 计数初值为D0 MOV TL1, #0D0H ; SETB TR1 ; 启动T1(TCON MOV A,#0FFH ; 数据准备 MOV SBUF,A ; 发射 JNB TI,$ ; 等待发射完 MOV P2,A CLR TI ; 清零 允许发射 AJMP $ ;JNB RI,$ ; 等待接收完CLR RI
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1