简易数字钟设计-单片机课程设计及简易直流数字电压表-单片机课程设计_第1页
简易数字钟设计-单片机课程设计及简易直流数字电压表-单片机课程设计_第2页
简易数字钟设计-单片机课程设计及简易直流数字电压表-单片机课程设计_第3页
简易数字钟设计-单片机课程设计及简易直流数字电压表-单片机课程设计_第4页
简易数字钟设计-单片机课程设计及简易直流数字电压表-单片机课程设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

信息与电气工程学院课程设计说明书(学年第2学期)课程名称:单片机课程设计题目:简易数字钟设计专业班级:自动化学生姓名:学号:指导教师:设计周数:2周设计成绩:1、课程设计目的1.进一步熟悉和掌握单片机的结构及工作原理。

2.掌握单片机的接口技术及相关外围芯片的特性及控制方法。

3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.理解键盘输入电路、数码管动态显示电路的工作原理,进一步掌握汇编语言的编程,更熟练的利用Protel99se设计电路原理图和PCB图。

6.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相关工作打下基础。2、课程设计正文2.1器件清单电阻:1K(5个)330(7个)10K(4个)按键开关:4个电容:30pF(2个)电解电容:22μF(1个)晶振:6MHZ(1个)CD4511:(1个)三极管:NPN(4个)共阴极数码管:(4个)底座:DIP40(2个)DIP16(1个)万能电路板:1个AT89S51(1片)导线若干2.2设计任务和要求:本次课程设计的任务是采用AT89S51作为控制单元,实现数字钟的设计。(1)设计键盘输入电路(2)设计显示电路(3)合理分配地址,编写系统程序(4)利用Protel设计硬件电路原理图和PCB图(5)软硬件联机调试技术要求:用p1口控制4只段码管,用2位数码管进行分针时间显示,用2位数码管进行秒针时间显示。要求(1)可以调整时间,且调整位闪烁提示。(2)设置调节切换键,确认开始键,加1键和减1键。2.3设计方案采用单片机的TO定时器,使其工作在方式1,产生一个100ms定时中断,循环10次,到1s时,秒加1;秒到60时,分加1,秒清零;分到60时,秒清零,分清零。数码管采用动态显示,一个扫描周期共循环四次,依次显示秒的低位、秒的高位、分的低位、分的高位,每次显示延时4ms。这期间要将不同的数送到P1口,以及将P2口的不同位置1。调节时,调用相应的子程序,来完成功能。2.3.1主要器件及电路设计2.3.1.1AT89S51说明图2.3-1AT89S51的引脚图AT89S51的引说明和功能说明如下:XTAL1:接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,则此引脚应接地。XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。

RST:AT89S51的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89S51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。

P0口(P0.0~P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而单片应用时,则作一般双向I/O口用。P0口每一个引脚可以推动8个LSTTL负载。P2口(P2.0~P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。外部不扩展而单片应用时,则作一般双向I/O口用。每一个引脚可以推动4个LSTL负载。P1口(P1.0~P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。仅供用户作为输入输出用的端口。P3口(P3.0~P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。2.3.1.2CD4511译码器CD4511输出端接330欧姆的保护电阻,然后并接数码管,使其显示数据。4511引脚图4511引脚图CD4511真值表CD4511真值表2.3.1.3显示电路当P2口低4位某位置1时,与其相连的三极管导通,集电极为低电平,因为是共阴极数码管,所以与该三极管相连的数码管选通,显示P1口输出的数。2.3.1.4共阴极数码管共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。2.3.1.5设计原理图及PCB图2.3.2程序流程图主程序:开始初始化设置开始初始化设置100ms到?YNK4按下?NK3按下?NK2按下?NK1按下?调用显示程序T0中断设置YTR0置1,开定时器NY调用调秒子程序100ms到?YNK4按下?NK3按下?NK2按下?NK1按下?调用显示程序T0中断设置YTR0置1,开定时器NY调用调秒子程序调用中断子程序Y返回定时Y调秒子程序清零TR0,R5清零TR0,R5显示程序R5加1R5=55?显示程序1Y显示程序R5加1R5=55?显示程序1YR5加R5加1NR5=110?NY清零R5NR5=110?NY清零R5YYK1按下?NK2按下?NK3按下?NK4按下?N调用调分子程序Y置1TR0返回Y Y秒加1Y秒减1K1按下?NK2按下?NK3按下?NK4按下?N调用调分子程序Y置1TR0返回Y Y秒加1Y秒减1T0T0中断服务子程序重置T0定时初值1s到?Y秒加11min到?Y分加1,秒清零1小时到?Y分清零,秒清零NNN返回调分子程序调分子程序和调秒子程序的流程图极为相似,原理一样,这里就不详细给出。不同的是,当R5等于55时,调用的不再是DISP1,而是DISP2。K1按下时,调用调秒子程序,K3或K4按下时,分分别加1或减1。汇编程序SPKEQU29HBUFEQU30HMINEQU34HSECEQU35HDEDAEQU36H;按键输入引脚定义K1EQUP2.4K2EQUP2.5K3EQUP2.6K4EQUP2.7;程序开始执行地址ORG0000HJMPMAINORG000BHJMPTO_INTMAIN:ACALLINITACALLINIT_TIMERMOVA,#00HMOVSEC,AMOVMIN,A;无穷循环LOOP:ACALLCONVACALLDISPJB48H,SEC1JB49H,MIN1JBK1,M1;K1按下,根据SPK的值,调节分或秒JNBK1,$INCSPKJMPLOOPSEC1:ACALLSET_SECJMPLOOPMIN1:ACALLSET_MINJMPLOOPM1:JBK2,M2;K2按下,起动定时器JNBK2,$SETBTR0JMPLOOPM2:JBK3,M3JMPLOOPM3:JBK4,M4JMPLOOPM4:JMPLOOP;使用定时器T0模式1计时INIT_TIMER:MOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBEASETBET0RET;中断服务程序TO_INT:PUSHAccMOVTL0,#0B0HMOVTH0,#3CHINCDEDAMOVA,DEDACJNEA,#10,TT1MOVDEDA,#0INCSECMOVA,SECCJNEA,#60,TT1INCMINMOVSEC,#0MOVA,MINCJNEA,#60,TT1MOVSEC,#0MOVMIN,#0TT1:POPAccRETI;存入显示数值CONV:MOVA,MINMOVB,#10DIVABMOVBUF,AMOVA,BMOVBUF+1,AMOVA,SECMOVB,#10DIVABMOVBUF+2,AMOVA,BMOVBUF+3,ARET;4ms延时DELAY:MOVR6,#10D1:MOVR7,#100DJNZR7,$DJNZR6,D1RET;初始化存储单元INIT:MOVDEDA,#0MOVSEC,#0MOVMIN,#0MOVSPK,#0RET;正常显示程序DISP:MOVR0,#BUF+3MOVR2,#4MOVA,#08HS1:MOVR3,APUSHAccMOVA,@R0MOVP1,APOPAccORLA,#0F0HMOVP2,AACALLDELAYMOVA,R3RRADECR0DJNZR2,S1RET;显示程序1,秒不显示,分显示DISP1:MOVR0,#BUF+1MOVR2,#4MOVA,#00HORLA,#0F0HS3:MOVP2,AACALLDELAYDECR2CJNER2,#2,S3ORLA,#02HS4:PUSHAccMOVA,@R0MOVP1,APOPAccMOVP2,AACALLDELAYMOVA,#0F1HDECR0DJNZR2,S4SETBF0RET;显示程序2,分不显示,秒显示DISP2:MOVR0,#BUF+3MOVR2,#4MOVA,#0F8HS5:PUSHAccMOVA,@R0MOVP1,APOPAccMOVP2,AACALLDELAYMOVA,#0F4HDECR0DECR2CJNER2,#2,S5ANLA,#0F0HS6:MOVP2,AACALLDELAYDJNZR2,S6SETBF0RET;调节秒SET_SEC:CLRTR0MOVR5,#0L0:JBF0,L01ACALLDISPINCR5CJNER5,#55,L1L01:ACALLDISP1INCR5CJNER5,#110,L1MOVR5,#0CLRF0JMPL0L1:JBK1,L2;再按调节按钮,退出秒调节JNBK1,$INCSPKCLRF0RETL2:JBK2,L3;按下确认按钮,退出调节,并且正常工作JNBK2,$MOVSPK,#0CLRF0ACALLCONVACALLDISPSETBTR0RETL3:JBK3,L4;按下增加按钮,秒数加1JNBK3,$INCSECMOVR5,#0MOVA,SECCJNEA,#60,L11MOVSEC,#0L11:ACALLCONVACALLDISPCLRF0JMPL0L4:JBK4,L0;按下减少按钮,秒数减1JNBK4,$MOVR5,#0MOVA,SECCJNEA,#0,L40ACALLCONVACALLDISPCLRF0JMPL0L40:DECSECACALLCONVACALLDISPCLRF0JMPL0;调节分SET_MIN:CLRTR0MOVR5,#0L02:JBF0,L03ACALLDISPINCR5CJNER5,#55,L5L03:ACALLDISP2INCR5CJNER5,#110,L5MOVR5,#0CLRF0JMPL02L5:JBK1,L6JNBK1,$DECSPKCLRF0RETL6:JBK2,L7JNBK2,$MOVSPK,#0CLRF0ACALLCONVACALLDISPSETBTR0RETL7:JBK3,L8JNBK3,$INCMINMOVR5,#0MOVA,MINCJNEA,#60,L12MOVMIN,#0L12:ACALLCONVACALLDISPCLRF0JMPL02L8:JBK4,L02JNBK4,$MOVR5,#0MOVA,MINCJNEA,#0,L80ACALLCONVACALLDISPCLRF0JMPL02L80:DECMINACALLCONVACALLDISPCLRF0JMPL02END2.4软件与硬件结合调试硬件调试:硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试:是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试:是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。软件调试:软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。可以利用仿真器加以调试,对系统单个单元进行调试,当单元电路成功后,在对整个程序调试,最后在用CPU芯片调试。3.总结通过这两周的课程设计,让我了解了设计电路的程序,也让我了解了数字钟的工作原理和设计理念,加强了我们动手、思考和解决问题的能力。在此次的数字钟设计过程中,我进一步熟悉了单片机芯片的硬件结构和各引脚的功能,以及其他芯片如CD4511、数码管的工作原理和使用方法,巩固和加强了理论知识。这次课程设计给我的最大感受就是仅仅学理论知识是不够的,必须将理论知识和实践结合起来,在实践中应用理论知识,从而使其得到更深刻的理解和巩固,来提高自己的实际运用能力和独立思考的能力。在设计的过程中遇到了重重困难,不过经过老师的耐心指导和同学的帮助,很多问题都解决了。最困难的就是调试调试程序,刚开始程序总是不能满足要求,不过经过多次更改,最后终于成功了。不过在硬件上,数码管显示不是令人很满意,可能是焊接的原因,多次查找也没能解决,这方面还需要多多练习。设计是一个团队的任务,我们在一起工作很愉快,互相帮助,互相学习。我感觉我和同学们的关系更近了。团结协作是成功的一项非常重要的保证,而这次课程设计也正好锻炼了这一点,这也是非常宝贵的。设计中的很多问题都是老师在老师辛勤、耐心的指导下完成的,同时,我们也从老师身上学到了很多知识,在此表示感谢!4.参考文献[1]权明富,齐佳音,舒华英.客户价值评价指标体系设计[J].南开管理评论,2004,7(3):17-18.[2]张毅刚.单片机原理及应用.高等教育出版社,2003[3]苏家键等.单片机原理及应用技术.北京:高等教育出版社,2004[4]钟睿.MCS-51

单片机原理及应用开发技术.北京:中国铁道出版社,2006[5]蓝清华等.单片机应用教程.北京:清华大学出版社,1999[6]范蟠果.工控单片机原理及应用.北京:清华大学出版社,2007[7]黄智伟.凌阳单片机课程设计指导.北京:北京航空航天大学出版社,2007课程设计评语课程设计成绩指导教师(签字)年月日信息与电气工程学院课程设计说明书(学年第2学期)课程名称:单片机应用课程设计题目:简易直流数字电压表专业班级:学生姓名:学号:指导教师:设计周数:二周设计成绩:一:课设目的用STC90C52AD单片机作为核心控制器,设计简易直流电压表。合理分配地址,编写系统程序。我们这里设计的简易直流电压表没有使用特别多的、复杂的元器件,只是一个单片机控制系统和数码管附加驱动器件,它的特点是电路简单、制作方便、操作简单、性能可靠。二:技术要求基于STC90C52AD单片机的最小系统设计,设计简易直流电压表,3位数码管显示控制方案要求:=1\*GB3①确定总体设计方案;=2\*GB3②设计显示电路;=3\*GB3③合理分配地址,编写系统程序;=4\*GB3④利用Protel设计硬件原理图;=6\*GB3⑥软硬件联机调试。<一>:开发软件KeilC51uVision3简介KeiluVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS-51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持、PLM、汇编和C语言的程序设计,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。KeilC51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。基本环境如图2-1所示:MCS-51单片机软件KeilC51开发过程为:①建立一个工程项目,选择芯片,确定选项。②建立汇编源文件或C源文件。③用项目管理器生成各种应用文件。④检查并修改源文件中的错误。上图所示即为该软件的运行界面⑤编译连接通过后进行软件模拟仿真或硬件在线仿真。上图所示即为该软件的运行界面<二>单片机程序烧写软件STC90C52AD系列单片机大部分具有在系统可编程特性,单片机在用户系统上即可现在烧录用户程序,而无需将单片机从已经生产好的产品上拆下,在用通用编程器进行烧写程序。大部分STC90C50AD系列单片机在销售给用户之前已经在单片机系统内部固化啦ISP系统引导程序配合PC端得控制程序即可将用户的程序代码下载进单片机内部,故无需编程器烧写程序。三:总体设计方案3.1数码管显示电路显示电路中单片机STC90C52AD的P2口,通过总线驱动74LS245直接驱动8段数码管,完成字形码的输出(字形选择)。而P1.0-P1.2控制3位数码管的位选信号。当P1.0-P1.2为低电平时PNP的三极管选通,通过给P2口赋不同的段选值,数码管显示不同的数字。低电平点亮数码管。由于各位的段码线并联,P2口输出的段码对各个显示位来说都是相同的,但是数字电压表要求第一位带有小数点,所以第一个数码管要对小数点显示程序进行设计。数码管动态显示,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选处于关闭状态,这样,在同一时刻,3位LED中只有选通的那一位显示出字符,而其他三位则是熄灭的。同样,虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余晖和人眼的视觉暂留作用,每位显示间隔时间较短,造成各位同时亮的假象,达到显示的效果。数码显示模块程序如下:voiddisplay(ulongi)//数码管显示函数{ uinta=0,b=0; uchartable0[10]={0X21,0X7D,0X13,0X19,0X4D, 0X89,0X81,0X3D,0X01,0X09};//0~9段码 uchartable1[3]={0XFE,0XFD,0XFB};//三个数码管的位码 uchartable2[3]={0,0,0}; table2[0]=i/100; table2[1]=i%100/10; table2[2]=i%10; for(b=0;b<50;b++) { for(a=0;a<3;a++) { P0=table1[a]; P2=table0[table2[a]]; if(a==0) P2=table0[table2[a]]-0X01;//是第一个数后面显示小数点 delay(1); } }}LED灯显示通过P1口连接,当P1口给低电平时,灯亮。3.2A/D模数转换电四:系统各部分电路的选择和设计4.1系统的工作原理本简易数字电压表的主要功能是通过将模拟量的输入通过AD转换方式,并通过数码管显示的控制方案,并附带了单片机和PC机之间通讯接口(烧写程序用的串口,与PC机实现通信实际也是经过串口来进行数据的通信)。系统结构包括单片机最小控制系统部分、驱动电路、数码管显示电路。模拟量输入STC90C52AD单片机最小控制系统AD转换数码管显示模拟量输入STC90C52AD单片机最小控制系统AD转换数码管显示对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。所以,我们选用51系列单片机STC90C52AD。STC90C52AD是中国宏晶公司生产的低功耗,高性能8位单片机,片内含8KB的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚,并集成了Flash程序存储器,既可在线编程(ISP),也可用传统方法进行编程,因此,低价位STC90C52AD单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。该单片机还内部带有8路10位的AD模数转换电路,省去本系统运用AD采集数据二需要外接专门的AD转换芯片的麻烦,是得系统设计更为简单。单片机STC90C52AD具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。利用单片机STC90C52AD设计一个数字电压表,能够测量0-5V之间的直流电压值,三位数码显示。STC90C52AD单片机是新一代的超强抗干扰/高速/低功耗的单片机,指令代码完全兼容系统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率12MHZ以下时,复位脚可直接接地。本次试验应用了该单片机的A/D转换模块和显示模块。STC90C52AD具有如下特点:(1)增强型6时钟/机器时钟,12时钟/机器时钟8051CPU;(2)工作电压:5.5V-3.8V/3.6V-2.4V;(3)工作频率范围:0-40MHZ,相当于普通8051的0-80MHZ;(4)片上集成256+4096字节RAM;(5)通用I/O口,复位后为:P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口)P0口是开端输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;(6)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3-5秒即可完成一片;(7)EEPROM功能和看门狗电路;(8)内部集成MAX810专用复位电路,时钟频率12MHZ以下时,复位脚可直接接地;(9)通用异步串行口(UART),还可用定时器软件实现多个UART;(10)工作温度范围:0-75℃/-40-+854.3STC90C52AD单片机的引脚功能以及最小控制系统图4.2单片机控制系统单片机芯片STC90C52AD为40引脚双列直插式封装。其各个引脚功能介绍如下,芯片STC90C52AD的引脚排列和逻辑符号如图4-2所示。各引脚分别为:①VCC:供电电压②GND:接地③P0口P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。要是P0口输出高电平,必须外接上拉电阻。④P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入”1”sfrP1_ADC_EN=0X97;sfrADC_CONTR=0XC5;sfrADC_DATA=0XC6;sfrADC_LOW2=0XC7;⑤P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流当P2口被写”1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址”1⑥P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入”1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。⑦⑦PSEN外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。⑧EA/VPP当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)⑨复位电路已经外部振荡电路的设计单片机的复位电路如上图所示。该复位电路采用手动复位与上电复位相结合的方式。当按下按键S1时,VCC通过R8电阻给复位输入端口一个高电平,实现复位功能,即手动复位。上电复位就是VCC通过电阻R2和电容C2构成回路,该回路是一个对电容C1充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。外部晶振电路为单片机系统提供时钟。五系统软件设计5.1编程语言选择51的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,C语言很好的结构性和模块化更容易阅读和维护,用C编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑算法而不是考虑一些细节问题这样就减少了开发和调试的时间,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。5.2主程序的设计结束开始结束开始模拟量输入单片机内部的AD转换部分动态显示结果5.3主要程序#include<reg52.h>#include<intrins.h>#include<math.h>#defineuintunsignedint //宏定义#defineucharunsignedchar#defineulongunsignedlongvoiddelay(uintz) //延时函数{

温馨提示

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

评论

0/150

提交评论