【训练任务】:
1、熟练掌握PROTEUS软件的使用; 2、按照设计要求绘制电路原理图; 3、能够按要求对所设计的电路进行仿真; 【基本要求及说明】:
1、按照设计要求自行定义电路图纸尺寸; 2、设计任务如下:
利用51单片机、BCD译码芯片和两位LED构成一个数码管扫描显示系统,两个数码管同时循环显示0~9。
3、按照设计任务在Proteus 6 Professional中绘制电路原理图;
4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。 【按照要求撰写总结报告】
指导教师 年 月 日
负责教师 年 月 日 学生签字 年 月 日
成绩评定表
评语、建议或需要说明的问题: 指导教师签字: 日期: 成 绩 I / 22
摘 要
该专业是前沿学科,现代社会的各个领域及人们日常生活等都与电子信息技术有着紧密的联系。全国各地从事电子技术产品的生产、开发、销售和应用的企事业单位很多,随着改革步伐的加快,这样的企事业单位会越来越多。为促进市场经济的发展,培养一大批具有大专层次学历,能综合运用所学知识和技能,适应现代电子技术发展的要求,从事企事业单位与本专业相关的产品及设备的生产、安装调试、运行维护、销售及售后服务、新产品技术开发等应用型技术人才和管理人才是社会发展和经济建设的客观需要,市场对该类人才的需求越来越大。为此电子信息工程专业的人才有着广泛的就业前景,毕业生可从事电子设备、信息系统和通信系统的研究、设计、制造、应用和开发工作。
II / 22
目 录
一、任务说明 ............................................................................................................... 1
1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 3.4 3.5 4.1 4.2
专业介绍 ...................................................................................................................... 1 专业背景与市场预测 ................................................................................................... 1 本课题分析 .................................................................................................................. 1 Proteus软件介绍 .......................................................................................................... 2 原理图绘制说明........................................................................................................... 2 原理图绘制步骤........................................................................................................... 3 Main程序说明 ............................................................................................................. 6 初始化子程序说明 ....................................................................................................... 6 display(uchar tmp)子程序说明 .................................................................................... 7 延时子程序说明........................................................................................................... 8 中断子程序说明........................................................................................................... 9 导入仿真文件............................................................................................................. 11 进行仿真 .................................................................................................................... 12
二、绘制原理图 ........................................................................................................... 2
三、程序编译说明及程序流程图 ............................................................................... 6
四、Proteus仿真说明 ................................................................................................ 11
五、课程设计体会及合理化建议 ............................................................................. 14 致 谢 ..................................................................................................................... 16
III / 22
一、任务说明
1.1 专业介绍
电子信息工程是一门应用计算机等现代化技术进行电子信息控制和信息处理的学科,主要研究信息的获取与处理,电子设备与信息系统的设计、开发、应用和集成。现在,电子信息工程已经涵盖了社会的诸多方面,像电话交换局里怎么处理各种电话信号,手机是怎样传递我们的声音甚至图像的,我们周围的网络怎样传递数据,甚至信息化时代军队的信息传递中如何保密等都要涉及电子信息工程的应用技术。我们可以通过一些基础知识的学习认识这些东西,并能够应用更先进的技术进行新产品的研究和电子信息工程专业是集现代电子技术、信息技术、通信技术于一体的专业。
1.2 专业背景与市场预测
该专业是前沿学科,现代社会的各个领域及人们日常生活等都与电子信息技术有着紧密的联系。全国各地从事电子技术产品的生产、开发、销售和应用的企事业单位很多,随着改革步伐的加快,这样的企事业单位会越来越多。为促进市场经济的发展,培养一大批具有大专层次学历,能综合运用所学知识和技能,适应现代电子技术发展的要求,从事企事业单位与本专业相关的产品及设备的生产、安装调试、运行维护、销售及售后服务、新产品技术开发等应用型技术人才和管理人才是社会发展和经济建设的客观需要,市场对该类人才的需求越来越大。为此电子信息工程专业的人才有着广泛的就业前景,毕业生可从事电子设备、信息系统和通信系统的研究、设计、制造、应用和开发工作。
1.3 本课题分析
本次课程设计任务为:利用51单片机、BCD译码芯片和两位LED构成一个数码管扫描显示系统,两个数码管同时循环显示0~9。并根据设计任务的要
1 / 22
求编写程序,在Proteus下进行仿真,实现相应功能。然后在Proteus 6 Professional中绘制电路原理图。
二、绘制原理图
2.1 Proteus软件介绍
Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
2.2 原理图绘制说明
本次设计的数码管0~9循环系统是以80C51单片机为中心器件,利用74HC4511进行BCD译码,后由两个LED显示数字循环,以致达到任务要求。
电路原理图的设计与绘制是整个电路设计的基础。电路原理图的设计包括:设置电路图的图纸大小;规划电路图的总体布局;在图纸上放置元器件,进行布局和布线;根据需要添加注释并进行检查与修改,最后保存。
2 / 22
2.3 原理图绘制步骤
1.建立文件。进入ISIS系统,选择菜单栏中的“文件”“新建设计”新建一个文件,然后选择菜单栏中的“系统”“设置图纸大小”来设置电路图纸的尺寸为A4,如图1所示。然后将文件保存到预先建立的文件夹中。设计窗口便新建完毕,如图2所示。
图1 图纸尺寸设定
图2 新建的设计窗口
2. 元件的查找及放置。首先点击工具箱左上角的“P”按钮,如图3。弹出“Pick Devices”操作界面,如图4。在关键字窗口输入所需器件名称,如80C51,系统会自动搜索到此元件,如图5所示。将所有元件搜索到以后按相应位置在图
3 / 22
纸上放置好。本实验所需的元器件如表1。
图3 按钮“P”所在位置
图4 “Pick Devices”操作界面
4 / 22
图5 80C51元件搜索窗口
表1:元件清单
元件 51单片机 BCD译码器 LED数码管
库 80C51 74HC4511 7SEG-MPX1-CC 件数 1 2 2 3.布线及调整。将鼠标移至所要连接器件的管脚处,鼠标箭头会变成图6的样式,此时按住鼠标左键拖至对应器件管脚处,松开左键即把两器件连接。如果在连接器件时出现交叉或重叠,可以对连线或元件位置进行适当的调整。布线后电路图如图7所示。
图6 可连线标示
图7 电路原理图
5 / 22
三、程序编译说明及程序流程图
3.1 Main程序说明
主程序先执行System_Init()子程序,然后执行while(1)判断,再进行display(sec)子程序的执行,来实现程序设计的要求。主程序流程图如图8所示。
开始System_Init();1YNdisplay(sec);结束
图8 主程序流程图
3.2 初始化子程序说明
初始化System_Init(void)子程序是主程序第一个调用的子程序,初始化System_Init(void)子程序将TMOD、TH0、TL0、ET0、EA、TR0分别进行赋值操作。TMOD=0X01;语句将定时器0的工作方式设置为方式1。System_Init(void)
6 / 22
子程序流程图如图9所示。
开始TMOD=0X01;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;TR0=1;返回图9 System_Init(void)子程序流程图
3.3 display(uchar tmp)子程序说明
display(uchar tmp)子程序由主程序进行while(1)判断后执行的程序。程序先对P3、P2进行赋值,后执行delay(1)延时子程序调用,之后再对P3、P2进行赋值,然后继续delay(1)延时子程序的调用。display(uchar tmp)子程序流程图如图10所示。
7 / 22
图10 display(uchar tmp)子程序流程图
3.4 延时子程序说明
延时delay(uint i)子程序由display(uchar tmp)子程序调用。先进行i判断,大于0则执行for循环,进行下一个for判断,循环125次后,返回到第一个for循环中,直至i大于0后跳出。延时delay(uint i)子程序流程图如图11所示。
8 / 22
开始uint j;;i>0;Yj=0;j<125;YNNj++i--返回图11 延时delay(uint i)子程序流程图
3.5 中断子程序说明
中断Time(void) interrupt 1子程序先对TH0、TL0进行赋值。然后count自加,判断count是否等于20,若等于20,则对count清零。再讲sec自加,后
9 / 22
判断sec是否等于10,若等于10,则将sec清零。中断Time(void) interrupt 1子程序流程图如图12所示。
开始TH0=0X3C;TL0=0XB0;count++;count==20Ycount=0;sec++;sec==10YNsec=0;N返回
图12 中断Time(void) interrupt 1子程序流程图
10 / 22
四、Proteus仿真说明
使用Proteus 软件进行单片机系统仿真设计, 是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于我们的电路设计能力及仿真软件的操作能力。Proteus 软件不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。因此,Proteus 软件会茯得愈来愈广泛的应用。
4.1 导入仿真文件
原理图绘制好后,先右键点击元件80C51,再点击左键,自动弹出编译话框,如图13所示。选择保存好的后缀为“.hex”的文件,导入单片机内。
11 / 22
图13 单片机导入文件对话框
4.2 进行仿真
单击左下角开始仿真按钮,如图14所示,开始进行仿真。两个LED数码管一同循环显示0~9。如图15~17所示。
图14 开始仿真按钮
图15 仿真进行4显示
12 / 22
图16 仿真进行8显示
图17 仿真进行9显示
13 / 22
五、课程设计体会及合理化建议
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,因为只有都明白了要做什么,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。然后就是要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
在这次难得的课程设计过程中,使我对Proteus的使用和仿真电路有了一定的了解和体会,对单片机的C语言编程和电路设计也有了新的认识,并且还锻炼了自己的思考能力和动手能力。通过设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力、动手能力、发现问题、解决问题的能力。通过老师和同学的帮助,我终于完成了课设任务。
本次课设的题目并不复杂,老师对总体也没有提出什么太难的要求,而且所用到的也都是刚学完的单片机基础知识,所以本以为会没什么难度,但当我自己亲身投入进去之后,才发现自己平时所学只是浅显的不能再浅显的皮毛。但我并没有灰心,反而同学之间互相分享心得的经历让我很感动,同学一起努力的结果是伟大的,我们都找到了合适的方法,来设计自己的课题。经过比较,我们各自的不足都得到了巨大的改善。从这次课设,我体会到了互相帮助的乐趣,分享的确是一个好的行为,也因为如此我对单片机的兴趣得到了提升。我相信通过本次课程设计我能对所学所用有巨大的提高。
14 / 22
参考文献
【1】. 张毅刚,刘杰.单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,
2008.
【2】. 郭天祥. 新概念51单片机C语言教程:入门、提高、开发、拓展全攻略
[M].北京:电子工业出版社,2009.
【3】. 王静霞. 单片机应用技术(C语言版)[M].北京:电子工业出版社,2009. 【4】. 王东锋. 单片机C语言应用100例[M].北京:电子工业出版社,2009. 【5】. 李学礼. 基于Proteus的8051单片机实例教程[M].北京:电子工业出版
社,2008.6.
【6】. 李洪军. 如何设计数码管显示电路来节约输入输出口资源[J]. 煤矿现代
化,2010(3).
15 / 22
致 谢
本文是在张**老师的悉心指导下完成的。承蒙张老师的亲切关怀和精心指导,虽然有繁忙的工作,但仍抽出时间给予我课设上的指导和帮助,特别是给我提供了良好的学习环境,使我从中获益不浅。张老师认真务实的治学态度、严谨的科学研究方法、敏锐的学术洞察力、勤勉的工作作风以及勇于创新、勇于开拓的精神是我永远学习的榜样。在此,谨向张老师致以深深的敬意和由衷的感谢。
还要感谢所有关心我、支持我和帮助过我的同学、朋友、老师和亲人。在这里,我仅用一句话来表明我无法言语的心情:感谢你们!
16 / 22
附录Ⅰ 电路原理图
17 / 22
附录Ⅱ 源程序代码 #include uchar sec=0;//***********初始化时间值 uchar count; //***************************延时子程序*************************** void delay(uint i) { uint j; for(;i>0;i--) for(j=0;j<125;j++); } //***************************初始化子程序*************************** void System_Init(void) { TMOD=0X01;//*************定时器0的工作方式1 TH0=0X3C; TL0=0XB0; ET0=1; EA=1; TR0=1; } void display(uchar tmp) { P3=0xfe; P2=tmp; delay(1); 18 / 22 } void main(void) { System_Init(); while(1) { display(sec); P3=0xfd; P2=tmp<<4; delay(1); } } //***************************中断子程序***************************** void Time(void) interrupt 1 { TH0=0X3C; TL0=0XB0; count++; if(count==20) { count=0; sec++; if(sec==10) sec=0; } } //***************************END************************************ 19 / 22 因篇幅问题不能全部显示,请点此查看更多更全内容