万历和跑马灯的设计.doc

上传人:laozhun 文档编号:4146998 上传时间:2023-04-07 格式:DOC 页数:26 大小:797.50KB
返回 下载 相关 举报
万历和跑马灯的设计.doc_第1页
第1页 / 共26页
万历和跑马灯的设计.doc_第2页
第2页 / 共26页
万历和跑马灯的设计.doc_第3页
第3页 / 共26页
万历和跑马灯的设计.doc_第4页
第4页 / 共26页
万历和跑马灯的设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《万历和跑马灯的设计.doc》由会员分享,可在线阅读,更多相关《万历和跑马灯的设计.doc(26页珍藏版)》请在三一办公上搜索。

1、摘 要目前各高校都建立了单片机实验室,并且基本上都采用相应的硬件仿真设备。由于单片机的种类繁多,再加上资金的限制,不可能在一个实验室中包括所有种类的单片机仿真设备。本文提出基于Proteus 软件的单片机实验室建设方案,它能很好的解决上述问题。数字单片机实验室是采用Proteus 和Keil 仿真软件为核心来构建的。该数字实验室能完成中断、定时、单片机扩展、串行口通信和A/D 转换等教学实验。并给出相应的小实例说明Proteus 的基本使用方法、仿真实验的一般流程,并在此基础上实现复杂的Proteus仿真实验项目。该方案以软件为核心,通过配置有限的硬件设备,很好地解决了传统单片机实验室资金和设

2、备维护问题,学生通过仿真实验,可以熟悉单片机系统的开发方法,对进一步培养学生的综合分析能力、排除故障能力和开发、创新能力具有重要的意义。关键词:单片机; Proteus 软件;数字实验室;KeilAbstractAt present,colleges and universities have established single-chip microcomputerlaboratories.They are most of simulation equipment based on the corresponding hardware. it isimpossible including a

3、ll types of single-chip simulation equipment in a laboratory,because ofthe wide variety of single-chip, combined with funding constraints. The Researching AndRealization of Single-chip Microcomputer Digital Laboratory Construction Based on ProteusSoftware will be easy to slove the problem.In this pa

4、per, The single-chip digital laboratory isbuilt using simulation software based on Proteus and Keil.It is able to complete the teaching experimentes such as single-chip interrupt, timing,single-chip expansion, serial communication and A / D converter.The general process and thecomplexity item of Pro

5、teus simulation are realized according to the examples of the basicuses.It is a good solution to the problem of traditional single-chipmicrocomputer laboratory and equipment maintenance funds, through the allocation of limited hardware equipment and sofeware.Students can also be familiar with the de

6、velopment of methods through the simulation experiments, which is of great innovation significance to help students a comprehensiveanalysis capabilities.Keywords:MCU; Proteus software; digital laboratory; keil目录摘 要- 1 -引言- 4 -课题的研究目的与意义- 4 -课题解决的主要内容- 4 -第一部分 万年历的设计- 5 -第一章 设计方案论证- 5 -1.1显示部分的方案选择-

7、5 -1.2系统基本方案选择和论证- 5 -1.3 系统方案的构想与确定- 5 -第二章 硬件电路的设计- 6 -2.1总体方案论述- 6 -2.2系统原理图- 8 -第三章 系统的软件设计- 8 -3.1 主程序- 9 -3.2读取日期和时间程序- 9 -第四章 仿真与编程- 10 -4.1编程环境PROTEUS- 10 -4.2用PROTEUS ISIS对电子万年历的硬件电路设计- 10 -4.3 KEIL的使用- 10 -4.4 文件的加载- 10 -4.5仿真测试- 11 -第二部分 跑马灯的设计- 12 -第一章 硬件电路的设计- 12 -基础性实验-跑马灯设计- 12 -跑马灯的硬

8、件设计- 12 -跑马灯的软件设计- 16 -结论- 19 -参考文献- 20 -附录:- 20 -附录1- 20 -附录2- 26 -引言课题的研究目的与意义随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对

9、单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。 所以,电子万年历无论作为比赛题目还是练习题目都是很有价值。课题解决的主要内容容包括以下几个方面:(1)根据选用的芯片设计外围电路和单片机的接口电路。(2)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。(3)根据硬件电路图,在开发板上完成器件

10、的焊接。(4)根据设计的硬件电路,编写控制AT89C51和PIC16F877A芯片的单片机程序。(5)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。(6)软件设计时必须要有完善的思路,要做到程序简单,调试方便。第一部分 万年历的设计第一章 设计方案论证1.1显示部分的方案选择a)液晶显示方式。液晶显示相比8本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内段数码管可以简化Protues电路的设计,而且显示的要美观。b)相比液晶显示,采用8段数码管,操作比较液晶显示来说显粉繁琐,加大设计难度,但总体也还可以做到比较人性化。所以,最后选择LED液晶显示方案。1

11、.2系统基本方案选择和论证传统的频率测量方法有两种:一是测周期求频率,这样对被测频率信号的信噪比要求高,否则就会产生较大的误差;另一种是计算单位时间内所产生脉冲数量,虽然这种方法对信噪比要求不高,但是显示分辨率受到限制,并且会产生1的误差。在本方案中,CPU接外频标(如图2所示),测量误差仅为时基误差,而较好的外频标的误差一般小于10-9,因而测量结果的有效数字最少可达8位以上,使得低频测量与高频测量的有效位数一致。1.3 系统方案的构想与确定系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机P

12、IC16F877A进行供电,时间芯片DS1302连接单片机AT89C51。从而实现电子万年历的功能第二章 硬件电路的设计2.1总体方案论述 按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示模块和键盘接口模块共四个模块组成。如图1所示。图1系统模块图2.1.1主控部分主控芯片采用51系列AT89C51单片机 ,接线方式如图1 所示。图2 主控部分接线图2.1.2时控模块 时钟芯片使用DALLAS公司的一种高性能、低功耗、带RAM的实时时钟DS1302作为计时芯片,可以做到计时准确。时钟电路连接图如1所示。图3 DS1302时钟控制电路2.1.3显示模块 本系统采用Proteus仿真

13、库有的液晶显示模块LGM12641BS1R,为8192(128*64)像素的单色LCD。显示模块电路如下图3-16所示。P1口与数据总线对应连接进行数据交换,使能端E与P3.2相连,读写端R/W与P3.1相连,DI与P3.1相连,片选信号端CS1、CS2分别与P3.6、 P3.7相连,复位端/RST外接电源。 图4 显示模块2.1.4按键电路 按键电路采用独立键盘设计,本系统设置4个按键,分别与P0.0、P0.1、P0.2、P0.3口相连。因P0口无内置电阻,故P0口当做一般的I/O口用时,需外接10K的上拉电阻,才能输出高电平。具体接线如图5示。图5 按键电路2.2系统原理图系统原理图如下图

14、6所示。图6 系统原理图第三章 系统的软件设计电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性3.1 主程序图7 主程序流图3.2读取日期和时间程序图8 读取程序第四章 仿真与编程4.1编程环境PROTEUSPROTEUS软件是由英国LabCenter Electronics 公司开发的EDA工具软件,由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件,它集成了高级

15、原理布线图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整的电子设计。4.2用PROTEUS ISIS对电子万年历的硬件电路设计通过PROTEUS ISIS软件的VSM(虚拟仿真技术),用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。4.3 KEIL的使用根据流程图,在keil中编写C程序,因为DS1302的数据形式为BCD码,所以程序中所有的字符全部用BCD码形式表示。因此,在程序的编写过程中需注意计算时数据进制形式的转换,并在编写过程中定义芯片管脚的分配。 编写好后,编译无误后生成目标文件hex,软件编写便完成了。4.

16、4 文件的加载设置使单片机的运行频率为4MHz 。图9 文件的加载4.5仿真测试单击按钮,进行对电子万年历的仿真测试,运行结果如图10所示第二部分 跑马灯的设计第一章 硬件电路的设计基础性实验-跑马灯设计 设计8个led在AT89C51单片机p1端口点亮,点亮顺序为P1.0到P1.7,P1.7到P1.0,然后重复循环,并具体介绍Proteus和Keil软件的操作步骤。跑马灯的硬件设计Proteus ISIS的工作界面是一种标准的Windows界面,如下图所示,包括标题栏、主菜单、绘图工具栏,对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、图形编辑窗口。 首先点击启动界面区域中对

17、象选择“P”按钮(用于拾取元器件)来打开“Pick Devices”对话框从元件库拾取所需的元器件 在对话框中的“Keyword”里面输入要检索的元器件的关键词,在跑马灯是课程设计中,需要用到89C51单片机,因此在对话框中输入AT89C51,输入完成后能够在中间的“Result”结果栏页面看到搜索的元器件的结果。在对话框的右侧,还能够看到选择的元器件的仿真模型引脚以及PCB的参数。如果所选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。 搜索到所需的元器件以后,可以双击元器件名来将相应的元器件加入到文档中,接下 来还可以用相

18、同的方法来搜索并加入其他的元器件。当已经将所需的元器全部加入到文档 中时,可以点击OK按钮来完成元器件的添加。添加好元器件以后,下面所需要做的就 是将元器件按照需要连接成电路。首先在对象选择器窗口中点击需要添加到文档中的元器 件,这时就可以在预览窗口看到所选择。元器件的形状与方向,如果其方向不符合的要求,可以通过点击预览对象方位控制按 钮中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。 接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上 PROTEUS 的自动 布线功能非常方便。布线时只需要单击选择起点,然后在需要转弯的地方单击一下 图画好以后要好好检查

19、一下,注意电阻的阻值不要太大了。修改好各组件属性以后就要将程序(HEX 文件)载入单片机了14。首先双击单片机 图标,系统同样会弹出“Edit Component”对话框,如图 3-4。在这个对话框中点击“Program files”框右侧的 ,来打开选择程序代码窗口,选中相应的 HEX 文件后返回,这时按钮左 装载好程序,就可以进行仿真了,仿真需要通过仿真进程控制按钮来进行。工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。点击“Play” 按钮来仿真运行15,效果如图 3-5 所示,可以看到系统按照编写的程序运行,而且还能通 过 P

20、ROTEUS 的图形显示功能形象直观的看到高低电平的实时变化。已经观察到了结果就 可以点击“Stop”来停止运行。 跑马灯的软件设计KEIL 可以编辑、编译汇编语言,C51语言,连接定位目标文件和库文件,创建hex文件,调试目标程序等。KEIL 软件功能强大,包含很多部分,本文我们主要 使用 KEIL uVision 来开发项目、调试程序并生成 HEX 文件来用于 PROTEU 中单片机程序 的开发和仿真。在 Windows 中安装了 KEIL 公司的 PK51 软件包之后,会自动在桌面和开始菜单中生 成KEIL uVision2图标。安装完成后,运行软件,可以看到其界面,包括标题栏、下 拉菜

21、单、快捷工具条按钮、项目窗口、文件编辑窗口、输出窗口以及状态栏 用 KEIL 软件开发项目的流程,点击“Project”,新建一个工程。软件弹出“Create New Project”(创建新工程)窗口。 为工程输入文件名后,点击保存按钮,软件将弹出Select Device for Target窗口,如下图所示。根据工程的需要选择相应的 MCU,然后点击“确定”。 在工具中选择生成hex文件现在可以输入程序了结论跑马灯的设计则是我们对两个软件的初步了解认识所实践的产物,为后面学习设计万年历提供和基础保障。万年历从理论到实际应用,用PIC16F877A1单片机与其他芯片等一些电路的组合,成功的

22、设计出了一个电子万年历。而且所设计的电子万年历设计也按当初要求的能够在PROTEUS中进行仿真,并且能够很精确的显示年历。可以说该电子万年历具有很高的实用价值。在软件设计的过程中,利用了Keil这个软件在程序录入和调试的时候的优越性,让我能够在编写软件的时候很方便的发现软件中的错误,现在已经能够使用Keil对所设计的程序进行调试。对于PROTEUS这款软件,也能熟练掌握电路设计仿真。由于平时没有接触过这两个软件,加上毕业设计的时间有限,对于他们的连接调试程序,未能熟练掌握,但以后有机会的话会再好好学习的。参考文献1 赵长德.微型计算机原理与接口技术M.北京:机械工业出版社,1999:98-35

23、0.2 苏平.单片机的原理与接口技术M.北京:电子工业出版社,2006:1-113.3 王忠民.微型计算机原理M.西安:西安科技大学出版社,2003:15-55.4 胡戴明.计算机组成原理M.北京:经济科学出版社,2005:43-56.5 纪宗南.单片机外围器件使用手册M.北京:北京航空航天大学出版社,622-655.6 周雪.模拟电子技术M西安: 西安电子科技大学出版社,2005:81-95.7 左金生.电子与模拟电子技术M.北京:电子工业出版社,2004:105-131.8 尹勇.单片机开发环境Vision2的开发指南M. 北京:北京航空航天大学出版社,2004:173-199.9 张斌武

24、.单片机系统Proteus设计与仿真M. 北京:电子工业出版社,附录:附录11.万年历的编程程序#include #include ziku.h#include lcd_init.h#include ds1302.h#include ds18b20.h#include keyscan.h#include yinli.huch jj,ii;/子程序/LCD显示空白边框子程序void LCDShowTable()uch i;SlectScreen(1); /写左半屏SetLine(0); /起使页SetColumn(0); /起使列for(i=0;i64;i+)if(i=0)|(i=63)Writ

25、eData(0xff);/第1、63列竖线else WriteData(0x01); /最上面一行线for(i=1;i7;i+)SetLine(i);SetColumn(0);WriteData(0xff); /竖线SetColumn(63);WriteData(0xff); /竖线SetLine(7);SetColumn(0);for(i=0;i64;i+)if(i=0)|(i=63)WriteData(0xff);else WriteData(0x80); /最下面的横线SlectScreen(2);/写右半屏SetLine(0);SetColumn(0);for(i=0;i64;i+)i

26、f(i=63)WriteData(0xff);else WriteData(0x01);SetLine(4);SetColumn(0);for(i=0;i64;i+)if(i=63)WriteData(0xff);else WriteData(0x01);for(i=1;i7;i+)SetLine(i);SetColumn(63);WriteData(0xff);SetLine(7);SetColumn(0);for(i=0;i64;i+)if(i=63)WriteData(0xff);else WriteData(0x80);/*-*/显示固定字符子程序void LCDShowGudingW

27、ord()Show8X16(0,80,maohao,1);Show8X16(0,104,maohao,1);Show16X16(6,80,yue,2);Show16X16(0,40,nian,1);Show16X16(4,2,yue,0);Show16X16(6,8,xing,2);Show16X16(6,24,qi,2);Show16X16(2,96,danwei1,0);Show8X16(0,8,s2,1);Show8X16(0,16,s0,1);/*-*/void TMR0init()T0CS=0;PSA=0;PS2=1;PS1=1;PS0=1;TMR0=0x80;T0IE=1;T0IF

28、=0;/冒号闪烁子程序void FlashMaohao()static uch timecount1;static int timecount2;if(TMR0IF=1)TMR0=0x80;TMR0IF=0;timecount1+;timecount2+;if(timecount1=10)flag+; flag=flag%2; /闪烁标志在0-1间翻转 timecount1=0;if(timecount2=1200)/1分钟采样一次温度timecount2=0;get_temp(); /温度转换子程序if(flag=0)Show8X16(0,80,maohao,1);Show8X16(0,10

29、4,maohao,1);if(flag=1)Show8X16(0,80,noshu,1);/清除Show8X16(0,104,noshu,1);void Naoling()if(kk=1)if(RD3=0)jj+;jj=jj%4;while(1)if(RD3=1)break;if(jj=1)Naoling_hour_1=Naoling_hour;Naoling_minute_1=Naoling_minute;RC4=1;RC6=0;RC7=0;if(jj=2)Naoling_hour_2=Naoling_hour;Naoling_minute_2=Naoling_minute;RC4=0;RC

30、6=1;RC7=0;if(jj=3)Naoling_hour_3=Naoling_hour;Naoling_minute_3=Naoling_minute;RC4=0;RC6=0;RC7=1;void NaolingXiang()int i;if(kk=1)&(Naoling_hour_1=clock2)&(Naoling_minute_1=clock1)RC5=1;for(i=0;i100;i+);RC5=0;for(i=0;i500;i+);if(kk=1)&(Naoling_hour_2=clock2)&(Naoling_minute_2=clock1)RC5=1;for(i=0;i10

31、0;i+);RC5=0;for(i=0;i200;i+);if(kk=1)&(Naoling_hour_3=clock2)&(Naoling_minute_3=clock1)RC5=1;for(i=0;i200;i+);RC5=0;for(i=0;i500;i+);/查询子程序void chaxun()if(RD3=0)ii+;ii=ii%2;while(1)if(RD3=1)break;if(ii=1)KeyScan();/主程序void main()keyinit(); /键盘初始化LCDinit(); /LCD操作初始化LCDShowTable(); /显示空白表格LCDShowGudi

32、ngWord(); /显示固定字符get_temp(); /读取温度TMR0init();while(1)v_Get1302(clock); /读取时间、日历display();FlashMaohao(); /冒号闪烁KeyScan(); /键盘扫描GetWeek(clock6+2000,clock4,clock3);GetChinaCalendar(clock6+2000,clock4,clock3);/Naoling();/NaolingXiang();chaxun();附录22.跑马灯的编程程序 ORG 0000H LJMP MAIN ORG 0013H LJMP INT1_INT;外部

33、中断服务程序,按键触发 ORG 001BH LJMP T1_INT ;定时器中断,1秒中断一次 ORG 0100HMAIN: MOV R0,#20 ;软计数器计数次数 MOV TMOD,#10H ;定时器1方式1 MOV P1,#0FFH ;熄灭所有LED MOV A,#0FEH ;点亮第一个LED MOV TH1,#3CH MOV TL1,#0B0H ;定时器赋初值 SETBIT1 ;外中断1采用下降沿触发 SETBEX1 ;允许外部中断1 SETB ET1 ;允许定时器中断 SETB EA ;开中断 SETB TR1 ;启动定时器1 SJMP $ ;等待中断T1_INT: MOV TH1,#3CH MOV TL1,#0B0H ;定时器赋初值 DEC R0 ;软计数 CJNE R0,#00H,LP ;判断计数次数是否达到,是则跳转 RL A ;灯移位 MOV P1,A ;灯改变 MOV R0,#20 ;软计数器初值LP: RETIINT1_INT: MOV A,#0FFH ;按键按下,LED熄灭 MOV P1,A ;灯改变 CPL TR1 ;定时器改变开关状态 MOV A,#0FEH ;点亮第一个LED RETI ;中断返回

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号