当前位置:文档之家› 单片机课程设计

单片机课程设计

浙江工业大学之江学院题目:数字时钟逻辑电路课程设计班级:测控901学号:200920540104姓名:侯晓明指导老师:刘勤贤时间:2011年12月26日-2012年1月3日设计课题:电子时钟课程设计设计任务与要求根据应用电路的功能,确定封面上的题目,然后完成以下任务:1、分析电路由几个部分组成,并用方框图对它进行整体描述;2、对电路的每个部分分别进行单独说明,画出对应的单元电路,分析电路原理、元件参数、所起的作用、以及与其他部分电路的关系等等;3、用简单的电路图绘图软件绘出整体电路图,在电路图中加上自己的班级名称、学号、姓名等信息;4、对整体电路原理进行完整功能描述;设计步骤1、查阅相关资料,开始撰写设计;2、先给出总体方案并对工作原理进行大致的说明;3、依次对各部分分别给出单元电路,并进行相应的原理、参数分析计算、功能以及与其他部分电路的关系等等说明;4.总体电路的绘制及总体电路原理相关说明;5、列出设计中所涉及的所有参考文献资料。

设计说明书字数不得少于3000字。

参考文献【1】单片微型计算机原理与应用蔡菲娜浙江大学出版社2009年【2】数字电子技术2黄瑞浙江大学出版社2008年【3】单片机课程设计指导楼然苗,李光飞北京航空航天大学出版社2007年设计背景数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

89C51及各管脚介绍:带4K字节闪烁可编程可擦除只读存储器低电压、高性能CMOS8位微处理器VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

P1口:一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P2口:一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

P3口:管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

74LS273相关介绍:带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。

CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。

1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

计时方案利用AT89S51单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。

该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。

控制方案AT89S51的P0口和P2口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P2口作八个LED数码管的位控输出线,P1口外接四个按键A、B、C构成键盘电路。

AT89S51 是一种低功耗,高性能的CMOS 8位微型计算机。

它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。

简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本设计中采用此的设计方案。

系统硬件电路设计根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路所示。

硬件电路方框图要求1).时制式为24小时制。

2),准确计时,具有“时”(00~23)、“分”(00~59)、“秒”(00~59)数字显示。

3),秒、分、时的显示分别用两个数码管,分别显示各自的个位和十位,该LED数码管可采取带译码功能的七段数码管。

4).计时稳定度高,可精确校正计时精度。

实现时钟计时的基本方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。

(1) 计数初值计算:把定时器设为工作方式1,定时时间为100ms,则计数溢出10次即得时钟计时最小单位秒,而100次计数可用软件方法实现。

假设使用T/C0,方式1,100ms定时,fosc=6MHz。

则初值X满足(2^16-X)×1/6MHz×12μs =100000μsX=15536→0011110010110000→3CB0H(2) 采用中断方式进行溢出次数累计,计满10次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。

电子钟的时间显示电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。

LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED137H 36H 35H 34H 33H 32H 31H 30H时十位时个位分隔分十位分个位分隔秒十位秒个位一、 振荡电路根据需求可以用晶体频率Hz Hz f 327682150==,选用图2所以石英晶体振荡器作为数字钟的振荡器。

振荡器电路由石英晶体、电阻、电容和反相器等元件组成。

图2 石英晶体振荡器图中,门1、门2是反相器,门1用于振荡,门2用于缓冲整形。

R为反馈电阻(10--100MΩ),反馈电阻的作用是为CMOS反相器提供f偏置,使其工作在放大状态。

C是频率微调电容,改变1C可对振荡器1频率作微量调整,C一般采用5--35pF半可调电容。

2C是温度特性校1正用的电容,一般取20--405pF,电容C、2C与晶体共同构成π型网络,1完成对振荡频率的控制,并提供必要的0180相移。

数码显示模块设计系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。

动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。

时、分、秒计数电路有了秒脉冲信号,则可以按照60s为1min,60min为1h,24h为一天来设定时,分,秒计数电路。

分和秒计数器都是模为60的计数器,采用中规模集成电路十进制计数器至少需要两片。

“秒”个位计时器的时钟CP信号是由分频器提供的周期为1s的脉冲信号,“分”个位计数器的CP信号是由秒计数器提供的进位信号,“分”计数器的进位信号送至“时”个位计数器的CP端。

它们的个位是十进制计数器,而十位则是六进制计数器,当记满60时产生一个进位信号。

89C51的引脚排列图如图4(a)所示,采用反馈清零的方法实现六十进制计数器二、译码显示电路译码显示电路的功能是将“时”、“分”、“秒”计数器输出的4位二进制代码翻译并显示相应的十进制数的状态,通常译码器和显示器是配套使用的,选用共阴极发光二极管数码显示器BS201/202,则译码显示电路可采用七段译码驱动器。

源程序清单ORG 0000HMOV 30H,#1 设置时钟的起始时间12.00.00,分配显示数据内存MOV 31H,#2MOV 32H,#0MOV 33H,#0MOV 34H,#0MOV TMOD,#01 启动计数器XS0: SETB TR0 使TRO位置1MOV TH0,#00H 计数器置零MOV TL0,#00HXS:MOV 40H,#0FEH 扫描控制字初值MOV DPTR,#TAB 取段码表地址MOV P2,40H 从P2口输出MOV A,30H 取显示数据到AMOVC A,@A+DPTR 查显示数据对应段码MOV P0,A 段码放入P0中LCALL YS1MS 显示1MSMOV P0,#0FFH PO端口清零MOV A,40H 取扫描控制字放入A中RL A A中数据循环左移MOV 40H,A 放回40H地址段内MOV A,31HADD A,#10 进位显示MOVC A,@A+DPTRMOV P0,ALCALL YS1MSMOV P0,#0FFHMOV A,40HRL AMOV 40H,AMOV P2,40HMOV A,32HMOVC A,@A+DPTRMOV P0,ALCALL YS1MSMOV P0,#0FFHMOV A,40HRL AMOV P2,40HMOV A,33HADD A,#10MOVC A,@A+DPTR MOV P0,ALCALL YS1MS MOV P0,#0FFH MOV A,40HRL AMOV 40H,AMOV P2,40HMOV A,34HMOVC A,@A+DPTR MOV P0,ALCALL YS1MS MOV P0,#0FFH MOV A,40HRL AMOV 40H,AMOV P2,40HMOV A,35HMOVC A,@A+DPTRMOV P0,ALCALL YS1MSMOV P0,#0FFHMOV A,40HRL AMOV 40H,AJB TF0,JIA 如果TF0为1时,则执行JIA,否则顺序执行JNB P1.0,P100 为0则转移到P100JNB P1.1,P1000 为0则转移到P1000JNB P1.2,P10000 为0则转移到P10000AJMP XS 跳转到XSP100: MOV 30H,#0 清零程序MOV 31H,#0MOV 32H,#0MOV 33H,#0MOV 34H,#0MOV 35H,#0JIA: CLR TF0 TF0清零MOV A,35H 秒单位数据到ACJNE A,#9,JIA1 与9进行比较,大于9就转移到JIA1MOV 35H,0 秒个位清零MOV A,34H 秒十位数据到ACJNE A,#5,JIA10 与5进行比较,大于5就转移到JIA10MOV 34H,#0 秒十位清零P10000: JNB P1.2,P10000 为0则转移到P10000MOV A,33H 取分的个位到ACJNE A,#9,JIA100 与9进行比较,大于9就转移到JIA100MOV 33H,#0 分的个位清零MOV A,32H 分十位数据到ACJNE A,#5,JIA1000 与5进行比较,大于5就转移到JIA1000MOV 32H,#0 分的十位清零P1000: JNB P1.1,P1000 为0则转移到P1000MOV A,31H 时个位数据到ACJNE A,#9,JIA10000 与9进行比较,大于9就转移到JIA10000MOV 31H,#0 时的个位清零MOV A,30H 时十位数据到ACJNE A,#2,JIA100000 与2进行比较,大于5就转移到JIA100000MOV 30H,#0 时的十位清零AJMP XS0 转移到XSOJIA100000:INC 30H 加1AJMP XS0 跳转到XS0JIA10000:CJNE A,#3,JIAJIA 与3进行比较,大于则转移到JIAJIAMOV A,30H 将时的十位放到ACJNE A,#02,JIAJIA 与2进行比较,大于则转移到JIAJIAMOV 30H,#0 时段清零MOV 31H,#0AJMP XS0 跳转到XSO JIAJIA:INC 31H 加一AJMP XS0JIA1000:INC 32HAJMP XS0JIA100: INC 33HAJMP XS0JIA10: INC 34HAJMP XS0JIA1: INC 35HAJMP XS0RET 返回YS1MS: MOV R6,#9H 延时程序YL1: MOV R7,#19HDJNZ R7,$DJNZ R6,YL1RETTAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H 共阳段码表DB 040H,079H,024H,030H,019H,012H,002H,078H,000H,010HEND系统仿真运用伟福软件进行仿真,建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。

相关主题