按键状态显示_第1页
按键状态显示_第2页
按键状态显示_第3页
按键状态显示_第4页
按键状态显示_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课题:K1-K4按键控制显示摘要:单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。本次课程设计是通过控制P0口的四个LED灯来显示接在P1口的四个按键K1-K4的状态。通过绘制原理图,软件编程及调试仿真,面包板组装实物调试等一系列任务,掌握单片机知识应用,巩固单片机的学习课程。关键词:单片机,领域,原理图,实物调试目录TOC\o"1-5"\h\z\o"CurrentDocument"一、 绪论 1\o"CurrentDocument"1.1、 引言 1\o"CurrentDocument"1.2、 设计目的 1\o"CurrentDocument"1.3、 设计步骤工作过程安排 1\o"CurrentDocument"1.4、 课题要求 11.5、 设计步骤 1二、 硬件设计 3\o"CurrentDocument"2.1、 系统简介 3\o"CurrentDocument"2.2、 系统元件统计 3\o"CurrentDocument"2.3、 设计系统中主要元件简述 4\o"CurrentDocument"2.3.1、 TC89C52RC单片机的简介 42.3.2、 发光二极管LED的简介 6\o"CurrentDocument"2.4、 设计系统中主要电路的简介 62.4.1、 复位电路 62.4.2、 时钟电路 7\o"CurrentDocument"2.5、 系统结构图设计 8\o"CurrentDocument"2.6、 原理图的设计 8\o"CurrentDocument"三、 程序的设计 10\o"CurrentDocument"3.1、 程序流程图的设计 10\o"CurrentDocument"3.2、 、程序设计 103.2.1、 C语言编程 11\o"CurrentDocument"3.2.2、 汇编语言编程 123.2.3、 两种程序的比较 13\o"CurrentDocument"四、 系统调试 14\o"CurrentDocument"4.1、 仿真调试 144.1.1、 汇编语言调试的步骤和注意事项 144.1.2、 汇编语言调试效果图 144.1.3、 C语言调试步骤 164.2、 、实物调试 174.3、 调试中出现的问题以及解决方法 19五、 总结体会 20参考文献 21一、绪论1.1、 引言随着超大规模集成电路技术的发展,单片机微型计算机也随之有了很大发展,各种新的单片机成出不穷,并已广泛地应用到人类生活的各个领域,成为当今科学技术现代化不可缺少的重要工具。作为当代大学生,我们应该将理论与实践相结合。通过本次课程设计加以应用,从而达到一个对所学知识的应用和巩固、更进一步的理解。1.2、 设计目的本次课程设计其主要目的如下:1) 熟悉汇编语言程序设计的基本概念和原理;2) 加强自身汇编语言编程能力及单片机知识的实际应用能力;3) 学会使用proteus绘制原理图和仿真;4) 通过在面包板上组装电路和调试效果,进一步深刻了解单片机;5) 加强自己的动手能力。1.3、 工作过程安排根据时间和要求过程安排如下:1) 第一周:安装软件和系统,并学会使用软件,根据设计任务,绘制电路原理图;2) 第二周:编写汇编语言并进行调试;3) 第三周:在面包板上组装电路并进行调试;4) 第四周:编写说明书。1.4、 课题要求课题要求如下:1) KI、K2按下对应LED灯DI、D2亮,释放时DI、D2熄灭;2)K3、K4按下并释放时对应LED灯D3、D4亮,再次按下K3、D4并释放时D3、D4熄灭。

1.5、设计步骤根据课题要求,设计步骤如下:1) 用PROTUSE软件绘制电路原理图;2) 根据电路原理图用汇编语言写出程序;3) 利用PROTUSE软件进行仿真,并观察仿真结果;4) 根据原理图在面包板上组装电路进行调试;5) 完成实验报告。工作顺序如图1-1所示:图1-1、设计工作流程图二、硬件设计2.1、系统简介K1-K4按键控制显示是由一个单片机的最小系统,四个按键,4个LED二极管和4个220欧电阻组成。其中,KI、K2分别接在P1.0、P1.1,分别控制LED灯DI、D2的明灭;K3、K4分别接在Pl.2、P1.3,分别控制LED灯D3、D4的明灭。2.2、系统元件统计通过该设计实现功能分析分析可得到其元件数量、种类。如表2-1:表2-1元件详细表序号元件功能备注数量1STC89C51RC芯片可编程芯片8位单片机1个2LED灯D1〜D4显示按键状态4个3电阻限流2204个4石英晶振X1产生一定的时钟信号12M1个5电容C2,C3帮助起振及微调晶振频率20pF2个6电阻R1控制复位时间10K1个7电解电容C1上电复位10uF1个8按键K1〜K4控制复位4个注:所谓复位就是RES端有5个以上的机器周期(不同的单片机不同)维持高电平,所以即使RESET按下,RES端也得不到高电平(=1/200*UCC)。RESET按下就是要C放电,使电源电压直接加到RES端,所以C与R1取值一般为(10UF,10K)。2.3、设计系统中主要元件简述2.3.1、TC89C52RC单片机的简介STC89C52是STC公司生产的一种低功耗、高性能CM0S8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供咼灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至OHz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz。1、TC89C52RC单片机的特性TC89C52单片的一些在设计中要了解的特性:可带可带H串口下载存储空间2、TC89C52RC单片机的参数对TC89C51单片机的参数做一个简单的介绍增强型8051单片机,6始终/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统5051;工作电压:5.5V〜3.3V(5V单片机)/3.8V〜2.0V(3V单片机);工作频率范围:0〜40MHZ,相当于普通8051的0〜80MHZ,实际工作频率48MHZ;用户应用程序空间为8K字节;片上集成512字节RAM;通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向/弱上拉,P0口是漏极开路输出,作为总线扩展使用时,不用加上拉电阻,作为I/O用时,需加上拉电阻。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成;具有EEPROM功能;共3个16位定时器/计时器,即定时器T0、T1、T2;外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中

断方式唤醒;11工作温度范围:-40〜+80°C(工业级)/0〜75°C(商业级);12PDIP封装。3、STC89C52RC单片机的管脚说明就本次课程设计中所用到的引脚做个简单的介绍。VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。STC89C52RC单片机的管脚分布如图2-1:T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.5P1.6IP1.7RSTRXD/P3.0'TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3・6:RD/P3・7'XTAL2XTAL1VSS01234T—s911111PDIP—404-321o98_vl3333322215 262524图2-1、STC89C52引22第5页21却图VCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA ALE/PR0GPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/AUP2.2/A10P2.1/A9P2.0/A82.3.2、发光二极管LED的简介它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。发光二极管的两根引线中较长的一根为正极,应接电源正极。有的发光二极管的两根引线一样长,但管壳上有一凸起的小舌,靠近小舌的引线是正极。与小白炽灯泡和氖灯相比,发光二极管的特点是:工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。图2-2是本次课程设计LED的两种接线方式:Vcc1K接法二Vcc1K接法二图2-2、LED接线图2.4、设计系统中主要电路的简介2.4.1、复位电路复位电路,就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,当你进行完了一个题目的计算后肯定是要清零的是吧!或者你输入错误,计算失误时都要进行清零操作。以便回到原始状态,重新进行计算。和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。复位电路都是比较简单的大都是只有电阻和电容组合就可以办到了。再复杂点就有三极管等等配合程序来进行了。下面是两种复位电路的介绍:1、手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc

之间接一个按钮。当人为按下按钮时,贝I」Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如图2-3所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。+5VO-nRSTVcc+5VO-nRSTVcc一接地图2-3、手动按钮复位2、上电复位上电复位电路如图2-4所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至luF。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。RST VccGNDV+5V图2-4、上电复位2.4.2、时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图2-5所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2〜12MHz之间选择,电容值在5〜30pF之间选择,电容值的大小2.5、系统结构图设计按键设定部分比较简单,因为本系统按键少,所以在设计上采用了独立按键方式,程序的编制上也采用了简单的扫描方式。根据课题要求和实际材料器件设计系统结构如图2-6:图2-6、K1-K4按键控制状态显示系统结构图2.6、原理图的设计根据课题要求要实现的基本功能、需要的硬件材料和系统结构图设计了原理图。

第8页原理图有两个部分组成:单片机最小系统、LED控制电路。单片机最小系统包括单片机、5V电源、晶振电路、复位电路。LED控制电路包括四盏LED灯、四个220Q电阻。电路原理图具体如图2-7:U1AT89C519341310k10uF-2L-2Z二_2±二二二二—' 22pFi—iU1AT89C519341310k10uF-2L-2Z二_2±二二二二—' 22pFi—iX1C-2工II.22pFC34XTAL1XTAL2RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7PSENP2.0/A8P2.1/A9P2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/A13F'1.0P2.6/A14P2.7/A15P3.0/RXDP1.1P3.1JTXDF'1.2P3.2/1NT0PI.3P3.3/1NT1F'1.4P3.4.'T0PI.5P3.5/T1F'1.6P3.6/WRP1.7P3.7/RD18图2-7、电路原理图三、程序的设计3.1、程序流程图的设计根据一系列的资料和课题的要求,我认为我这个课题程序的设计思路是:单片机以2ms到5ms的周期,对所有开关进行扫描,单片机扫描到各个开关的状态以后,进行保存,然后得到每一个开关的前一状态和当前状态,再根据具体的逻辑要求,让LED亮或者灭。根据这个思路我设计了程序流程图如图3-1:图3T、程序流程图3.2、、程序设计根据程序流程图以及原理图各个引脚布置进行程序设计。3.2.1、C语言编程下面是C语言编程及部分注释:#include〈reg51.h〉#defineucharunsignedchar#defineuintunsignedintsbitLED1=PO'O;对开关和灯与对应的触角进行定义sbitLED2=P0'l;sbitLED3=P0"2;sbitLED4=P0'3;sbitK1=P「O;sbitK2二P「l;sbitK3=P「2;sbitK4=P「3;//延时voidDelayMS(uintx);这是一个延时函数,延时毫秒级{uchari;while(x—)for(i=0;i〈120;i++);}//主程序voidmain(){P0=0xff;51单片机为准双向口,读入前先写1P1=0xff;while(1){LED1=K1;K1、K2按下时对应灯亮,松开则灭LED2=K2;if(K3==0){while(K3==0);等待按键释放LED3=~LED3;灯取反,实现按一次键亮再按一次灭依次反复}if(K4==0);同K3{while(K4==0);LED4=~LED4;}DelayMS(lO);延时十毫秒,和去抖动}}3.2.2、汇编语言编程对所有开关进行扫描,单片机扫描到各个开关的状态以后,进行保存,然后得到每一个开关的前一状态和当前状态,再根据具体的逻辑要求,让LED亮或者灭。根据以上思路进行汇编语言编程。ORG0000HK3:CALLK12 ;处理KI、K2JBPl.2,K4;K3没有按键,转移CALLDELAY;延时JBP1.2,K4;消抖JNBP1.2,$ ;等待释放CPL20H.2 ;状态翻转MOVC,20H.2MOVP0.2,C;输出K4:JBP1.3,K3;同K3CALLDELAYJBP1.3,K3JNBP1.3,$CPL20H.3MOVC,20H.3MOVP0.3,CK12:MOV C,P1.0MOV P0.0,CMOV C,P1.1MOV P0.1,CRETDELAY:CALLK12DJNZR7,DELAYRETEND3.2.3、两种程序的比较这两种程序各有各的优缺点,他们的指令集,寻址方式不同,相当于两个机器各有各的操作方式,汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言而C语言是高级语言,可以实现跨平台。表3-1是两种程序的比较。表3-1程序比较表汇编语言C语言容量175个字节269个字节复杂程度复杂简单编程思想直接扫描各个开关状态对K3、K4按键取反功能LED显示开关状态开关控制LED灯的亮或灭查阅单片机课程可知,JBP1.3K3占用三个字节,CPL20H.2占用占用一个字节,以此类计算得出汇编语言占用175个字节。C语言占用字节是根据不同变量、不同函数所占字节不同全体相加得来共占用269个字节。四、系统调试本次课程设计老师要求使用Proteus仿真软件进行绘制原理图和进行仿真实验。4.1、 仿真调试本次课程设计仿真调试采用的是Proteus软件和Keil软件。4.1.1、 汇编语言调试的步骤和注意事项下面是仿真调试的步骤和一些易出错的注意事项:因为Proteus软件中自带的汇编编译器都是使用命令行命令进行编译。在菜单Source-〉Definecodegenerationtools打开的对话框中,有一项参数是 CommandLine,对于代码:%1/INCLUDES:C:\ProgramFiles\LabcenterElectronics\Proteus7Professional\T00LS\ASEM51,其中%1代表的是源代码,/INCLUDES:后面跟着的是包含路径,该路径下的*.mcu文件即是通常的SFR定义文件。其实这一参数并不需要设置,通常我们的CommandLine参数设置为%1即可。这个/INCLUDES:的路径参数设置也是有问题的。因为它的中间包含了空格,ASEM51汇编器会把它认为是几个参数,因而会出现toomanyparameters的错误。同样的道理,如果你的汇编程序存储的路径或文件名中包含了空格或一些其它有可能使用命令行出现错误的字符,编译时也会出现错误。另外需要注意的是ASER5不支持$符号,即不能使用类似JMP$的命令。文件名不能太长。4.1.2、 汇编语言调试效果图下面是具体的操作步骤:首先绘制所需要的电路图,编辑好源文件以后,在Proteus软件中编译;链接并生成工程代码(.HEX文件);然后将生成的源代码装入上面电路图里面的单片机中;最后进行仿真调试。图4-1为部分步骤:添加HEX文件,图3-2为仿真初始状态,图4-2、图4-3是调试效果图。U1D1okHI>XTAL1PO.OAADOpn1/arHllrl AR2__■■■ ■22Q••••• •AEditComponentExcludefromSimulationExcludefromPCBLayout|~Attachhierarchymodule|—Hidecommonpins图4-1、添加HEX文件当按键K3、K4按下并释放时,LED灯D3、D4亮,如图4-2。_r一;PF222一pFCT22口丄•1M_r一;PF222一pFCT22口丄•1MX-12okPO.O/ADO>XTAL1P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5RSTP0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10ALEEAP2.4/A12JP2.6/A14P2.7/A15P1.0P1.1PJ.U/raUP3.1/TXDP1.2P3.2/1NT0HI.JP1.4PJ.JflN11P3.4.'T0P1.5P3.5JT1P1.6P3.6/WRP1.7P3.7/RDATS9C51R4图4-2、K3、K4按下并释放时,LED灯的状态当KI、K2按键按下时,LED灯DI、D2亮,如图4-3。C1-i-22p舌工•1MX12-HokU1>XTAL1XTAL2RSTF'SENALEEAPI.0P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3PU.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0^RXDPI.1PI.2PI.4PI.5PI.6393837••D1---■(S)R2-220--R4F'3.1/TXDP3.2/1NTCTP3.3/1NT1P3.4.-T0P3.5O1_P3.6/WR"P3.7/RD图4-3、KI、K2按键按下时,LED灯的状态4.1.3、C语言调试步骤下面是C语言调试的一些步骤,其中部分步骤如图4-4、4-5所示。进入KeilC程序,新建一个工程,并为该工程选择一个合适的CPU(如AT89C51),加入源程序。注意:KeilC的工程文件一定要与Proteus的图形文件放在同一个文件夹内。点击工具栏的“optionfortarget”按钮,或者单击“Project菜单—OptionsforTarget”选项。在弹出的窗口中,点击“Debug”按钮。然后在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMMonitor—51Driver”。并且还要点击一下“Use”前面的小圆点,表明选中该项。如果不是在同一台电脑上进行仿真,则需要设置通信接口:点击旁边的“etting”按钮,在弹出的窗口中“Host”后面添上另一台电脑的IP地址,在“Port”后面添加“8000”。设置好后点击“OK”按钮即可。进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useromotedebugermonitor”项。打开与KeilC的工程文件所对应的图形文件。最后,将KeilC中的工程编译,进入调试状态,再看看Proteus,已经发生变化了。这时再执行KeilC中的程序,Proteus已经在进行仿真了。下面是C语言调试的部分步骤如图4-4、图4-5。BlFiles审]BlFiles审]也1Bocks图4-4、C语言调试HEX文件生成VU±UHid±111}{c|Fl=0xzz;

RELAY=1;

while(1)

Lt…Buildtarget1Target11compilingTextCR.C...linking...ProgramSize:data=9.0xdata=0Gode=59creatinghexfilefrom1136911...图粋皆语言调试完成42、实物调试根据原理图与单片机引脚图,将实物在面包板上进行布线组装。组装结果如图4-6、图4-7所示:

第17页

K1按下时DI亮,其状态如图4-6所示:■i1B■*■«•*畳D1灯亮K1按图4-6、——K3按下并释放时D3亮其状态如图4-7所示■K1按下时DI亮,其状态如图4-6所示:■i1B■*■«•*畳D1灯亮K1按图4-6、——K3按下并释放时D3亮其状态如图4-7所示■亠!"■I■«■rlD3亮K3按下并释放图4-7、i18第页>总%■*44.3、调试中出现的问题以及解决方法本次课程设计是对我自己动手能力和学习到的理论知识的一种考验。在实物调试以及之前步骤中出现过好多问题,在老师指导下,我们一次次找到症结,最终成功完成实物调试。下面我来简述几个我的课程设计中的问题:课程设计开始时,对于Proteus软件没有任何概念,对于这个不熟悉的软件束手无策,第一步的原理图都无法完成。然后我们就开始查资料和网上教程就这样一步步完成了原理图和仿真调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论