电子设计应用软件训练总结报告电子时钟课程设计_第1页
电子设计应用软件训练总结报告电子时钟课程设计_第2页
电子设计应用软件训练总结报告电子时钟课程设计_第3页
电子设计应用软件训练总结报告电子时钟课程设计_第4页
电子设计应用软件训练总结报告电子时钟课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、 沈阳航空航天大学电子信息工程学院电子设计应用软件训练总结报告学生姓名: 专 业: 班 级: 学 号: 指导教师: 训练时间:2012年 7月16日至 2012年7月20日电子信息工程学院电子设计应用软件训练任务【训练任务】:1、熟练掌握proteus软件的使用; 2、按照设计要求绘制电路原理图; 3、能够按要求对所设计的电路进行仿真;【基本要求及说明】: 1、按照设计要求自行定义电路图纸尺寸; 2、设计任务如下: 电子时钟设计要求1、时钟的“时”要求用两位显示;上、下午用发光管作为标志;2、时钟的“分”、“秒”要求各用两位显示;3、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生

2、进位;4、系统要有闹钟部分,声音要响5秒(可以是一声一声的响,也可以连续响)。3、按照设计任务在proteus 6 professional中绘制电路原理图; 4、根据设计任务的要求编写程序,在proteus下进行仿真,实现相应功能。【按照要求撰写总结报告】成绩评定表评语、建议或需要说明的问题:指导教师签字: 日期:成 绩一、任务说明 根据任务要求时钟的“时”要求用两位显示;上、下午用发光管作为标志;时钟的“分”、“秒”要求各用两位显示;整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位;系统要有闹钟部分,声音要响5秒(可以是一声一声的响,也可以连续响)。本次设计时钟电路,使用了

3、atc89c51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用c语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。本人使用proteus软件绘制硬件系统。硬件系统以at89c51单片机、显示系统、键控系统构成。晶振电路由12mhz振荡器和两个25pf电容构成。复位电路采用按键脉冲复位电路,由一个sw-spst按键、一个10k和一个1k电阻、两个22uf电容构成。显示系统由六位共阴极红色数码管进行动态扫描输出。按键部分由三个sw

4、-spst键构成。扬声器为交流sounder。如图, p0口上拉电阻为respack-8,每位均为10k欧姆。二、软件设计思路根据电路可以设计一个带整点报时、调时功能的电子钟。根据要求对硬件功能进行分配:本系统由p0口做段码口,p2口做位码口。p3.0为启停键(控制电子钟的启动和停止),p3.1,p3.2为调时键,其中p3.1为取码键(选择要调的位),p3.2为加一键(对选择的位进行加1操作)。据功能程序可以由以下几部分组成:主程序、定时器中断子程序、显示子程序、延时子程序、启停子程序、调时子程序、调时比较子程序(调表时检测所调位是否溢出,并进行清0处理)、整点报时子程序。1)主程序说明: 本

5、程序利用定时计数器t0进行定时。首先设置t0工作模式为模式1,显示缓冲区清零,设置调时取位寄存器(存储所调位的地址)初值。启动定时器。进入循环模块后先调用显示子程序,然后判断启停键是否闭合。如果闭合则调用启停子程序,如果断开就跳到下一项判断定时器是否停止,若停止则调用调时子程序,若启动则直接调用整点报时子程序。开 始t0、输出缓冲区初始化,启动定时器调用显示子程序调用启停子程序调用调时子程序启停键闭合了吗?定时器启动否调用报时子程序ynny主程序流程图2)中断子程序 先介绍一下定时器产生秒的过程:定时器在模式1时为16位计数器,记到65535才溢出,最长计时65.535ms。可以每隔50ms中

6、断一次,中断20次为1秒。计算初值由公式(216x)×12/6/106=10-1得 x=15536=3cb0h因此tho=3ch,tl0=0b0h此程序工作过程为:此程序把时分秒的个位和十位分开计算。首先要堆栈保护现场,把定时器循环次数20送入让,然后时钟运行,秒个位到10进位,秒十位到6进位,分个位到10进位,分十位到6进位,时个位到10进位,到4时检查时位是否为2,如果是就全部清零,如果不是就进位。另外分十位进位时整点报时标志位置1。并将3送入响铃延时寄存器。中断子程序流程图如下:循环次数减一保护现场秒个位加110s到否?秒个位清060s到否?秒十位加14秒十位清0yynn分个位

7、加160分到否n10分到否分十位加1nyy4时到否时十位加1时个位清0报时标志置110时到否恢复现场时个位加1分十位清0分个位清0nyyn返回yyn20时到否时个位十位清03)显示子程序:此程序把显示缓冲区内容通过查表得到段码,再把段码送到p0口并依次送入六位数码管。实现动态扫描输出。送入r0缓冲地址位码重装初值送入表头显示输出调用延时子程序位码左移位码到头否返 回ny显示子程序流程图4)延时子程序:用两个寄存器做两层嵌套循环实现延时,mov指令执行时间为1t,nop为1t,djnz指令为2t,因晶体振荡频率为fosc12mhz,则机器周期t=1us,该程序可以延时时间t =(1+ (1+1+

8、2)×200+2)×5=4015us5)启停子程序 该程序用来检查启停键的动作,如果闭合则对tr0取反,以此控制定时器的启停,进而启停时钟。6)调时子程序 调时程序是在定时器停止的时候通过p3.1口的取位键和p3.2口的加一键进行调时。在定时器暂停期间,程序反复扫描p3.1与 p3.2。这里用到了寄存器来存储所调的位地址。每按一次取位键,寄存器所存地址加一,即所调的文位左移一次。加一键闭合时对r1所存地址内的数据加一。然后调用比较子程序以确定每一位是否溢出。开 始取位键闭合否调用显示子程序左移一次左移到头否调用显示子程序加一键释放否加一调时调用比较子程序返 回取位键释放否闭

9、合加一键闭合否nyyny调时地址初始化ynynn7)调时比较子程序 此程序在调时时调用以确定所调位,再检测该位是否溢出,溢出则清0。8)整点报时程序 通过测试闹铃标志位来确定是否响铃,再对sperker电平循环取反产生方波。同时将秒个位数字与响铃延迟时间比较,时间到了就清0标志位。三、绘制原理图1.建立文件。进入isis系统,选择菜单栏中的“文件”“新建设计”新建一个文件,然后选择菜单栏中的“系统”“设置图纸大小”来设置电路图纸的尺寸为a4,如图1所示。然后将文件保存到预先建立的文件夹中。设计窗口便新建完毕,如图1所示。图1 图纸尺寸设定图2 新建的设计窗口2. 元件的查找及放置。首先点击工具

10、箱左上角的“p”按钮,如图3。出现挑选元器件对话框,如图4。图3 按钮“p”所在位置图4 挑选元器件对话框 在对话框的keywords中输入at89c51,得到以下结果(如图5),单击ok,关闭对话框,这时元件表中列出at89c51。同样找出所需的电容、开关、led数码管、crystal。最终结果:(如图6)图5 at89c51元件搜索窗口图6 所需的元件列表添加“电源”、“地”:左键选择模型选择工具栏中 图标,出现图7:图7 添加电源和地左键分别选择ground和power,并在原理编辑窗口中左击,这样“电源”和“地”就被放置到了原理图编辑窗口中了。放置元器件:在元件列表中左键选取at89c

11、51,在原理图编辑窗口中单击左键,这样at89c51就放到原理图编辑窗口中去了(如图8)。同样放置其它器件图8 放置元件at89c513.布线及调整。将鼠标移至所要连接器件的管脚处,鼠标箭头会变成可连线标示时,此时按住鼠标左键拖至对应器件管脚处,松开左键即把两器件连接。如果在连接器件时出现交叉或重叠,可以对连线或元件位置进行适当的调整。布线后电路图如图图9 布线后电路图四、仿真步骤1.首先添加源代码 选中proteu中的“源代码”中的“添加/删除源代码文件(s)”,出现添加/移除源代码的对话框同时选中对应的代码生产工具新建一个代码(如图10)。图10 新建源代码keshe.asm2.编辑源代码

12、 单击“选中源”代码下的“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

13、: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

14、 ;判断是否到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 3

15、5h,#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,#tab ;查表l1:mov a,r0movc a,a+dptrmov p0,a ;显示输出mov a,r2cpl amov p2,alcall delaymov p0,#00hinc r0mov a,r2jb acc.5,l2rl a ;

16、位码左移mov r2,asjmp l1l2:ret;延时子程序delay:mov r4,#5del2:mov r5,#200del1:nopdjnz r5,del1djnz r4,del2ret;查表tab:db 3fh,06h,5bh,4fhdb 66h,6dh,7dh,07hdb 7fh,6fh,00h;启停子程序key:lcall displayjnb p3.0,key ;等待启停键释放cpl tr0 ;启停定时器ret;调时子程序keydo:jb p3.1,tiao ;取位键是否闭合zhuan:lcall display;循环显示jnb p3.1,zhuan ;等待取位键释放inc r

17、1 ;位码左移mov a,r1cjne a,#36h,tiao ;左移是否到头mov r1,#30htiao:jb p3.2,return ;加一键是否闭合zhu:lcall display ;循环显示jnb p3.2,zhu ;等待释放 inc r1 ;加一调时lcall bijiao ;显示是否越位(过10或过6)return:ret;调时比较子程序bijiao:cjne r1,#30h,miaoshi;是否为秒个位cjne r1,#0ah,retu ;是否到10mov 30h,#0ljmp retumiaoshi:cjne r1,#31h,fenge;是否为秒十位cjne r1,#06h

18、,retu ;是否到6mov 31h,#0ljmp retufenge:cjne r1,#32h,fenshi;是否为分个位cjne r1,#0ah,retu ;是否到10mov 32h,#0ljmp retufenshi:cjne r1,#33h,shige;是否为分十位cjne r1,#06h,retu ;是否到6 mov 33h,#0ljmp retushige:cjne r1,#34h,shishi;是否为时个位cjne r1,#0ah,shishi ;是否到10mov 34h,#0ljmp retushishi:cjne r1,#03h,retu;是否到3mov 35h,#0retu:ret;整点报时子程序baoshi:j

温馨提示

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

评论

0/150

提交评论