资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
沈阳航空航天大学电子信息工程学院电子设计应用软件训练总结报告学生姓名: 专 业: 班 级: 学 号: 指导教师: 训练时间:2012 年 7 月 16 日至 2012 年 7 月 20 日电子信息工程学院电子设计应用软件训练任务【训练任务】:1、熟练掌握 PROTEUS 软件的使用;2、按照设计要求绘制电路原理图;3、能够按要求对所设计的电路进行仿真;【基本要求及说明】:1、按照设计要求自行定义电路图纸尺寸;2、设计任务如下:电子时钟设计要求1、时钟的“时”要求用两位显示;上、下午用发光管作为标志;2、时钟的“分”、“秒”要求各用两位显示;3、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位;4、系统要有闹钟部分,声音要响 5 秒(可以是一声一声的响,也可以连续响)。3、按照设计任务在 Proteus 6 Professional 中绘制电路原理图;4、根据设计任务的要求编写程序,在 Proteus 下进行仿真,实现相应功能。【按照要求撰写总结报告】成绩评定表成 绩评语、建议或需要说明的问题:指导教师签字: 日期:一、任务说明根据任务要求时钟的“ 时 ”要求用两位显示;上、下午用发光管作为标志;时钟的“分”、 “秒 ”要求各用两位显示;整个系统要有校时部分(可以手动,也可以自动) ,校时时不能产生进位;系统要有闹钟部分,声音要响 5 秒(可以是一声一声的响,也可以连续响) 。本次设计时钟电路,使用了 ATC89C51 单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用 C 语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。本人使用Proteus 软件绘制硬件系统。硬件系统以 AT89C51 单片机、显示系统、键控系统构成。晶振电路由 12MHz 振荡器和两个 25pF 电容构成。复位电路采用按键脉冲复位电路,由一个 SW-SPST 按键、一个 10k 和一个 1k 电阻、两个 22uf 电容构成。显示系统由六位共阴极红色数码管进行动态扫描输出。按键部分由三个 SW-SPST 键构成。扬声器为交流 SOUNDER。如图, P0 口上拉电阻为RESPACK-8,每位均为 10k 欧姆。二、软件设计思路根据电路可以设计一个带整点报时、调时功能的电子钟。根据要求对硬件功能进行分配:本系统由 P0 口做段码口,P2 口做位码口。 P3.0 为启停键(控制电子钟的启动和停止) ,P3.1,P3.2 为调时键,其中 P3.1 为取码键(选择要调的位) ,P3.2 为加一键(对选择的位进行加 1 操作) 。据功能程序可以由以下几部分组成:主程序、定时器中断子程序、显示子程序、延时子程序、启停子程序、调时子程序、调时比较子程序(调表时检测所调位是否溢出,并进行清 0 处理) 、整点报时子程序。1)主程序说明:本程序利用定时计数器 T0 进行定时。首先设置 T0 工作模式为模式 1,显示缓冲区清零,设置调时取位寄存器(存储所调位的地址)初值。启动定时器。进入循环模块后先调用显示子程序,然后判断启停键是否闭合。如果闭合则调用启停子程序,如果断开就跳到下一项判断定时器是否停止,若停止则调用调时子程序,若启动则直接调用整点报时子程序。开 始T0、输出缓冲区初始化,启动定时器调用显示子程序调用启停子程序调用调时子程序启停键闭合了吗?定时器启动否调用报时子程序YNNY主程序流程图2)中断子程序先介绍一下定时器产生秒的过程:定时器在模式 1 时为 16 位计数器,记到65535 才溢出,最长计时 65.535ms。可以每隔 50ms 中断一次,中断 20 次为 1秒。计算初值由公式(2 16X)12/6/10 6=10-1得 X=15536=3CB0H因此 THO=3CH,TL0=0B0H此程序工作过程为:此程序把时分秒的个位和十位分开计算。首先要堆栈保护现场,把定时器循环次数 20 送入让,然后时钟运行,秒个位到 10 进位,秒十位到 6 进位,分个位到 10 进位,分十位到 6 进位,时个位到 10 进位,到4 时检查时位是否为 2,如果是就全部清零,如果不是就进位。另外分十位进位时整点报时标志位置 1。并将 3 送入响铃延时寄存器。中断子程序流程图如下:循环次数减一保护现场秒个位加 110S 到否?秒个位清 060S 到否?秒十位加 14秒十位清 0YYNN分个位加 1分十位加 1NYYNYY10 分到否分个位清 060 分到否分十位清 0时个位加 110 时到否时个位清 0时十位加 14 时到否20 时到否时个位十位清 0恢复现场报时标志置 1NNNYY返回3)显示子程序:此程序把显示缓冲区内容通过查表得到段码,再把段码送到 P0口并依次送入六位数码管。实现动态扫描输出。送入 R0 缓冲地址位码重装初值送入表头显示输出调用延时子程序位码左移位码到头否返 回NY显示子程序流程图4)延时子程序:用两个寄存器做两层嵌套循环实现延时,MOV 指令执行时间为 1T,NOP 为 1T,DJNZ 指令为 2T,因晶体振荡频率为 fosc12MHz,则机器周期T=1us,该程序可以延时时间t =(1+ (1+1+2)200+2)5=4015us5)启停子程序该程序用来检查启停键的动作,如果闭合则对 TR0 取反,以此控制定时器的启停,进而启停时钟。6)调时子程序 调时程序是在定时器停止的时候通过 P3.1 口的取位键和 P3.2 口的加一键进行调时。在定时器暂停期间,程序反复扫描 P3.1 与 P3.2。这里用到了寄存器来存储所调的位地址。每按一次取位键,寄存器所存地址加一,即所调的文位左移一次。加一键闭合时对 R1 所存地址内的数据加一。然后调用比较子程序以确定每一位是否溢出。开 始取位键闭合否调用显示子程序左移一次左移到头否调用显示子程序加一键释放否加一调时调用比较子程序返 回取位键释放否闭合加一键闭合否NYYNY调时地址初始化YNYNN7)调时比较子程序 此程序在调时时调用以确定所调位,再检测该位是否溢出,溢出则清 0。8)整点报时程序通过测试闹铃标志位来确定是否响铃,再对 SPERKER 电平循环取反产生方波。同时将秒个位数字与响铃延迟时间比较,时间到了就清 0 标志位。三、绘制原理图1.建立文件。进入 ISIS 系统,选择菜单栏中的“文件” “新建设计”新建一个文件,然后选择菜单栏中的“系统” “设置图纸大小”来设置电路图纸的尺寸为 A4,如图 1 所示。然后将文件保存到预先建立的文件夹中。设计窗口便新建完毕,如图 1 所示。图 1 图纸尺寸设定图 2 新建的设计窗口2. 元件的查找及放置。首先点击工具箱左上角的“P”按钮,如图 3。出现挑选元器件对话框,如图 4。图 3 按钮“P”所在位置图 4 挑选元器件对话框在对话框的 KEYWORDS 中输入 AT89C51,得到以下结果(如图 5) ,单击 OK,关闭对话框,这时元件表中列出 AT89C51。同样找出所需的电容、开关、LED数码管、CRYSTAL 。最终结果:(如图 6)图 5 AT89C51 元件搜索窗口图 6 所需的元件列表添加“电源” 、 “地”:左键选择模型选择工具栏中 图标,出现图 7:图 7 添加电源和地左键分别选择 GROUND 和 POWER,并在原理编辑窗口中左击,这样“电源”和“地”就被放置到了原理图编辑窗口中了。放置元器件:在元件列表中左键选取 AT89C51,在原理图编辑窗口中单击左键,这样 AT89C51 就放到原理图编辑窗口中去了(如图 8) 。同样放置其它器件图 8 放置元件 AT89C513.布线及调整。将鼠标移至所要连接器件的管脚处,鼠标箭头会变成可连线标示时,此时按住鼠标左键拖至对应器件管脚处,松开左键即把两器件连接。如果在连接器件时出现交叉或重叠,可以对连线或元件位置进行适当的调整。布线后电路图如图图 9 布线后电路图四、仿真步骤1.首先添加源代码 选中 proteu 中的“源代码”中的“添加/删除源代码文件(s) ”,出现添加/移除源代码的对话框同时选中对应的代码生产工具新建一个代码(如图 10) 。图 10 新建源代码 keshe.asm2.编辑源代码 单击“选中源”代码下的“1.keshe.asm”并在里面写入你的汇编程序程序如下:ORG 0000HLJMP MAINORG 000BHLJMP CTC0ORG 0030HMAIN:SETB EA ;开中断SETB ET0 ;开定时器中断MOV TMOD,#01H ;设置定时器工作模式MOV TH0,#3CH ;设置定时器初值MOV TL0,#0B0H MOV 30H,#0 ;设置显示初值MOV 31H,#0MOV 32H,#0MOV 33H,#0MOV 34H,#0MOV 35H,#0MOV R7,#20MOV R1,#30H ;设置取位寄存器初值 SETB TR0 ;启动定时器LOOP:LCALL DISPLAY;调用显示子程序JB P3.0,KEY1 ;启停键是否闭合LCALL KEY ;调用启停子程序KEY1:JB TR0,XIANG ;判断启动或停止LCALL KEYDO ;调用调时子程序XIANG:LCALL BAOSHI;调用报时子程序LJMP LOOP ;定时器中断子程序CTC0:PUSH ACC ;保护现场PUSH PSWDJNZ R7,BACKMOV R7,#20INC 30H ;秒个位加一MOV A,30HCJNE A,#0AH,BACK ;秒十位是否到 10MOV 30H,#0 INC 31H 秒十位加 1MOV A,31HCJNE A,#06H,BACK ;判断是否到 6MOV 31H,#0INC 32H ;分个位加 1MOV A,32H CJNE A,#0AH,BACK ;分个位是否到 10MOV 32H,#0INC 33H ;分十位加 1MOV A ,33HCJNE A,#06H,BACK ;分十位是否到 6MOV 33H,#0INC 34H ;时个位加 1SETB B.1 ;整点报时标志置 1MOV A,30H ADD A,#03H ;定时闹铃 3 秒MOV R3,A ;送入报时定时寄存器MOV A,35HCJNE A,#02H,NEXT ;时十位是否到 2MOV A,34HCJNE A,#04H,BACK ;时个位是否到 4 MOV 34H,#0MOV 35H,#0NEXT:MOV A,34HCJNE A,#0AH,BACK ;时个位是否到 10INC 35HBACK:MOV TH0,#3CH ;重装初值,校正时间MOV TL0,#0B0HPOP PSW ;恢复现场POP ACCRETI;显示子程序DISPLAY:MOV R0,#30H;显示取位寄存器赋初值MOV R2,#01H ;位码取初值MOV DPTR,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号