版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河北工程大学科信学院课程设计说明书(2012/2013学年第二学期)课程名称:单片机应用课程设计 题目:简易数字计算器专业班级: 学生姓名: 学号: 指导老师: 设计周数:二周设计成绩:2013年6月26日目录1 课程设计目的2 课程设计任务 2.1.设计题目 2.2.设计小组成员 2.3.原始数据及主要任务 2.4.技术要求3课程设计内容3.1. 方案设计3.1.1 STC90C52AD的功能参数介绍3.1.2 综合电路设计3.2单元电路设计 3.2.1动态显示驱动设计 3.2.2 时钟产生单元 3.2.3 蜂鸣器电路单元 3.2.4动态显示控制电路单元 3.2.5 按键电路单元3.3系统调
2、试 3.4系统设计3.5程序流程图3.6系统实施1、课程设计目的1.1用单片机课程及已学电子电路知识设计一简易时钟显示装置,包括电路图的设计和制版等。 1.2通过课程设计加深对单片机课程的相关知识的学习和理解。1.3初步学会一些设计思想和实践技能。提高学生综合素质。1.4让学生从设计过程中领悟到相互合作的重要性。2、课程设计任务2.1设计题目:简易数字计算器设计2.2 设计小组成员: 23原始数据及任务设计并制作出一个以单片为核心的电子锁系统:1、确定总体设计方案;2、设计键盘输入电路;3、设计显示电路;4、合理分配地址,编写系统程序;5、利用protel设计硬件电路原理图和PCB图;6、软硬
3、件联机调试2.4技术要求设计一个以MCS-51单片机为核心的简易计算器系统。能够进行两位数的简单的加、减、乘、除运算,且具备清零功能。十个数字键,六个功能键。进行除法运算时,小数点保留2位显示。如果除数为零,择清零显示,蜂鸣器响,当按下任意键后,蜂鸣器停止。课扩展计算连续功能,数据溢出清0显示,蜂鸣器响,按下任意键后,蜂鸣停止。3.1.1 STC90C52AD的功能参数介绍STC90C52AD是由宏晶公司生产的高性能八位单片机。如图一所示。该芯片采用FLASH存储技术,内部具有8KB字节快闪存存储器,采用DIP封装,是目前在中小系统中应用最为普及的单片机。 STC90C52AD可构成真正的单片
4、机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于8K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围(2.7V6V),全静态工作,工作频率宽在0Hz24MHz之间,比8751/87C51等51系列的6MHz12MHz更具有灵活性,系统能快能慢。 STC90C52AD芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。P0口是
5、三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。STC90C52AD单片机为40引脚芯片如图一所示,在本设计中,主要用到P0口、P2口、P1.0口及P3.0、P3.1、P3.2口。P0口可作为通用I/O口,但须外接上拉电阻,所以在设计显示数码管我们避免了使用P0口这样大大简化了动态显示电路。P1口:8位、双向I/0口,内部含有上拉电阻。P1口可作普通I/O口。输出缓冲器可驱动四个TTL负载;用作输入时,先将引脚置1,由片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供电流。在FLASH并行编程和校验时,P1口可输入低字节地址。在串行编程
6、和效验时,P1.5/MO-SI,P1.6/MISO和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。 P2口:具有内部上拉电阻的8位双向I/O口。P2口用做输出口时,可驱动4各TTL负载;用做输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外部输出电流。在FLASH并行编程和校验时,P2口可输入高字节地址和某些控制信号。P3口:具有内部上拉电阻的8位双向口。P3口用做输出口时,输出缓冲器可吸收4各TTL的灌电流;用做输入口时,首先将引脚置1,由内部上拉电阻抬位高电平。若外部的负载是低电平,则通过内部上拉电阻向输出电流。在本设计中,P3口作为时
7、间设置的4按键输入,因为有上拉电阻,所以可以通过按键直接接地,简化了电路。在与FLASH并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O口功能外,还有替代功能如表1所示。表1 P3口的第二功能端口引脚各个功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INT0(外部中断0请求输入端,低电平有效)P3.3INT1(外部中断1请求输入端,低电平有效)P3.4T0(定时/计数器0计数脉冲输入端)P3.5T1(定时/计数器1计数脉冲输入端)P3.6WR(外部数据存储器写选通信号输出端,低电平有效)P3.7RD(外部数据存储器读选通信号输出端,低电平有效)单片机使
8、用宏晶公司支持串口下载程序(ISP)的单片机,为STC90C52AD课程设计配发的小电路板(ISP-MCU Basic circuit)电路原理图见下图。该板作为课程设计的核心电路板使用,板上有单片机及附属电路,RS-232通信驱动电路,高低电平测试电路等。课程设计电路中需要的其他电路在此基础上扩展,通过插孔连接。课程设计配发的小电路板(ISP-MCU Basic circuit)电路原理图见下图。扩展电路在万用板上制作用四位数码管显示小时与分钟,中间那个点用来区分小时与分钟;每秒用一个LED闪烁一下;用了4个按键,一个是选择键,一个是加键,一个是减键, 一个是确认键。时间要精确,整点报时,声
9、音间隔1秒,并且可以调整时间调整位闪烁提示。 扩展电路用到得器件:共十六个按键:十个数字键,一个是加键,一个是减键,一个是除键,一个乘键,一个等键,一个清零键;六个DPY7-SEG DP共阳极动态LED;六个PNP三极管;十四个330欧姆和两个470欧的电阻;导线。每各引脚可吸收8各TTL的灌电流。作为输入时,首先应将引脚置1。P0也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。在FLASH编程时,P0口接收代码字节数据;在编程效验时,P0口输出代码字节数据(需要外接上拉电阻)。元器件清单:单片机 stc90c52ad 1晶振 1电阻
10、 510欧 10电阻 4.7千欧 4电阻 200欧 1电阻 10千欧 1电解电容10微法 1电容 22皮法 2开关 17二极管 led 1三极管 pnp 4蜂鸣器 1数码管 43.1.2综合电路设计采用单片机的TO定时器,使其工作在方式1,产生一个100ms定时中断,循环10次,到1s时,秒加1;秒到60时,分加1,秒清零;分到60时,秒清零,分清零。数码管采用动态显示,一个扫描周期共循环四次,依次显示秒的低位、秒的高位、分的低位、分的高位,每次显示延时4ms。这期间要将不同的数送到P1口,以及将P2口的不同位置1。调节时,调用相应的子程序,来完成功能。3.2单元电路设计3.2.1动态显示驱动
11、设计数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,如图三所示。图二3.2.2时钟产生单元52单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。图中,电容器Col,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6M
12、Hz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。外部振荡方式是把外部已有 的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。 图三3.2.3 蜂鸣器电路单元 如图四所示 3.2.4 动态显示控制电路单元 如图五所示另外为每个数码管的公共极COM增加图5 位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个 数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的
13、的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms。3.2.5按键电路单元如图六所示 功能分配如图七所示图六 图七3.3系统调试 硬件调试时可先检查印制板及焊接的质量情况,在检查无误后可通电检查LED显示器的点亮状况。若亮度不理想,可以调整P1口的电阻大小,一般情况下取200电阻即可获得满意的亮度效果。 实验室制作时,可结合示波器测试晶振及P1,P2端口的波形情况进行综合硬件测试分析。硬件调试:硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态
14、调试:是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值 第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试:是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去
15、掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。软件调试:软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。可以利用仿真器加以调试,对系统单个单元进行调试,当单元电路成功后,在对整个程序调试,最后在用CPU芯片调试。3.4系统设计 要用到实现要求的功能,需要16个键,0-9,+,
16、-,*,/,清零键考虑到要有两位小数显示,至少需要4个七段数码管,但设计时应用了六个数码管,倒数第二位小数点直接接地,一直显示小数点亮。3.5程序流程图如图3.6系统实施根据原理图列写原件清单,领取所需的元件,板子和工具(烙铁,钳子,万用表,螺丝刀,剪刀),去试验台焊电路板。焊完板子,通过软硬结合的方式对电路板进行硬件调试,硬件没错误之后,开始进行软件编程,直到整个功能实现,并进行优化。4. 总结通过本次课程设计我真正的自己完成了对给定要求系统的硬件设计、电路设计、电路板设计、软件设计以及对成品的调试过程。从整个过程中学习到了很多方面的知识,了解到以往学习中自己知识在某方面的不足之处,是对以往
17、学习科目的一种贯穿和承接,从而能更好的认识和学习,也对将来从事工作大有裨益。本次实验过程中,我切实体验到了,认真对待每一个细小零件的重要性。对于实验室提供的零件要具有检错能力。我做的是计算器,实验中换取了4个键盘,最后才得到正确的结果显示。此外从本次试验中我学会到了,焊接电路布局的重要性,以及在布线时,对线路的长度要有一定的冗余,以提供纠错方便。还有最重要的一点是,要学会使用万用表对电路进行检测,查出问题。从本次课设中我也看到了自身的很多不足之处,对知识的掌握不够扎实,有一知半解的现象。有时做事不够稳定,过于毛躁,不能平心静气的去分析所遇到的问题和错误。这在以后的工作和生活中是不可取的,通过对
18、自身问题的认识与改正相信再遇到同样问题时会更好的解决。以后的设计实验也会更好的完成C语言程序:/ 51单片机4*4键盘简单计算器程序 #include<reg52.h>unsigned char code tab16=0xfd,0xb7,0x0d,0x25,0xb1, 0x61,0x40,0x37,0x00,0x20, 0xa0,0x83,0xa7,0xa1,0x84, 0x8e; /段选码表unsigned int value1,value2,result;int keyt,key1,tempkey,s;sbit P0.0=P10;sbit P0.1=P11;sbit P0.2=
19、P12;sbit P0.3=P13;void delay(unsigned int z) /延时函数unsigned int x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);int getkey() /扫描键盘并获得键值 int key=0;P2=0xff;if(P2!=0xff)delay(5);while(P2!=0xff)/行扫描有低电平信号出现switch(P2)/则在P2口全输出高电平的情况下进行列扫描case 0xfe:key=7;break;/得出键值case 0xfd:key=8;break;case 0xfb:key=9;break;ca
20、se 0xf7:key=14;break;if(key) return(key);P2=0xff;while(P2!=0xff)switch(P2)case 0xfe:key=4;break;case 0xfd:key=5;break;case 0xfb:key=6;break;case 0xf7:key=13;break;if(key) return(key);P2=0xff;while(P2!=0xff)switch(P2)case 0xfe:key=1;break;case 0xfd:key=2;break;case 0xfb:key=3;break;case 0xf7:key=12;b
21、reak; if(key) return(key);P2=0xff;while(P2!=0xff)switch(P2)case 0xfe:key=16;break;case 0xfd:key=10;break;case 0xfb:key=15;break;case 0xf7:key=11;break; return(key);void display(unsigned int value) / 数码管显示函数unsigned int k4=0; k3=value/1000; /分解整数各位k2=value%1000/100;k1=value%100/10;k0=value%10while(1)
22、/分别显示各位if(value>=1000) P0.0=0;P1=k3;P0.1=0;P1=k2;P0.3=0;P1=k1;P0.4=0;P1=k0;if(value>=100) P0.1=0;P1=k2;P0.2=0;P1=k1;P0.3=0;P1=k0;if(value>=10) P0.2=0;P1=k1;P0.3=0;P1=k0;P0.1=0;P1=k0;tempkey=getkey();if(tempkey!=0)key1=tempkey;break;/有键按下,则退出循环向下执行/主函数:main()/功能:进行接收数据和命令,完成计算器计算流程/注:key=19分
23、别表示按键数字18,key=10表示按键数字0,key=1116/分别代表计算器功能键"+" "-" "*" "/" "=" "CE"(清零)main()key1=0; /读入初值getkey();reset1: s=0;/s代表是否有"上一次计算结果"reset:value1=result=0;read:if(key1<11&&key1>0)/非功能键,则从低到高依次读入整数的每一位goto reset;/任何情况下有"="按下便得出结果,返回if(key1<16&&key1>10)if(s=0)value2=value1;value1=0;keyt=key1;s=1;display(value2);if(key1=16)goto reset1;goto read;/把初值给被运算数else s=0;i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石油炼化有限空间安全应急预案
- 青少年活动总结家长发言稿
- 金华2024年08版小学3年级上册英语第六单元综合卷
- 矿山企业安全生产制度建设要点
- 新媒体环境下的学情分析方案
- 智能电网设备管理与维护方案
- 线上培训平台学员投诉应急预案
- 夜间施工安全与噪音管理方案
- 新质生产力赋能乡村治理效能提升的路径
- 教师事业单位转正个人总结
- 水系统中央空调工程材料清单
- 小学六年级数学上册口算题300道(全)
- 《干粉灭火器检查卡》
- 校园监控值班记录表(共2页)
- 试桩施工方案 (完整版)
- 走中国工业化道路的思想及成就
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- Prolog语言(耐心看完-你就入门了)
- 保霸线外加电流深井阳极地床阴极保护工程施工方案
- 蓝色商务大气感恩同行集团公司20周年庆典PPT模板
评论
0/150
提交评论