ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:164.46KB ,
资源ID:8178715      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8178715.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(九九乘法表判断器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

九九乘法表判断器.docx

1、九九乘法表判断器河北工程大学科信学院课程设计说明书(2012 /2013学年第二学期)课程名称 : 单片机原理及应用 题 目 : 九九乘法表判断器 专业班级 : 自动化3班 学生姓名 : 吕雪敏 学 号 : 090412111 指导教师 : 韩昱 王静爽 王立国设计周数 : 2 周 设计成绩 : 2013年6月27日目录1. 课程设计任务及目的 -21.1课程设计任务 -2 1.1.1技术要求 -21.1.2原始数据及主要任务 -2 1.2 课程设计目的 -22. 课程设计正文 -32.1 硬件设计 -3 2.1.1 硬件方案设计 -3 2.1.2 单元电路设计 -5 2.1.3软件与硬件结合

2、调试 -82.2 软件设计 -9 2.2.1 系统分析 -9 2.2.2 系统设计 -10 2.2.3 系统实施 -173. 课程设计总结 -174. 参考文献 -18 5. 教师评语 -19 1. 课程设计任务及目的 1.1 课程设计任务 1.1.1 技术要求:以MCS-51单片机为核心,设计出一个九九乘法表判断器。2个数码管显示输入答案;一个数字加1循环按键,一个乘按键,一个输入答案按键,一个清零按键。若输入正确,蜂鸣器鸣响2秒;答案错误,则清零重新输入。 1.1.2 原始数据及主要任务:a、确定总体设计法案;b、设计键盘输入电路;c、设计显示电路;d、编写系统程序;e、利用Protel设

3、计硬件电路原理图和PCB 图;f、软硬件联机调试。1.2 课程设计目的(1) 通过九九乘法表判断器的设计,掌握数码管动态显示的原理;(2) 通过单片机课程设计,熟练掌握软件编程的方法,将理论知识联系到实践中去,提高我们的动脑动手能力;(3) 完成系统的硬件设计、软件设计、仿真调试,学会将硬件知识和软件知识结合起来,使两者相互补充,共同实现一个系统的功能;(4) 通过课程设计加深理解课堂教学内容,掌握单片机的基本应用方法。通过实验熟悉微机基本接口芯片的外型、引脚、编程结构。掌握程序设计和单片机基本接口电路的设计、应用方法,做到理论联系实际2、课程设计正文2.1 硬件设计2.1.1 总体设计方案(

4、电路原理图如下)系统组成: 该系统由单片机基本电路、数码管显示电路,按键输入电路以及蜂鸣器电路组成。其中单片机基本电路已在课程设计专用单片机基本电路给出。系统工作原理: 系统通过键盘输入模块向单片机输入数据,经过单片机的计算按条件再向数码管显示模块和蜂鸣器输出指令,使之执行相应的动作。各个模块的工作原理将在下文做具体介绍。STC90C52AD说明STC90C52AD的引脚说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。采用外部振荡器时,此引脚应接地。 XTAL2 :接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端

5、和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。 RST :AT89C51的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89C51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。 P0口(P0.0P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而单片应用时,则作一般双向IO口 用。P0口每一个引脚可以推动8个LSTTL负载。 P2口(P2.0P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当

6、访问外部程序存储器时,它是高8位地址。外部不扩展而单片应用时,则作一般双向IO口用。每一个引脚可以推动4个LSTL负载。 P1口(P1.0P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。仅供用户作为输入输出用的端口。 P3口(P3.0P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。 2.1.2单元电路设计(一)单片机基本系统1、电路说明课程设计配发的小电路板(ISP-MCU Basic circuit)电路原理图。该

7、板作为课程设计的核心电路板使用,板上有单片机及附属电路,RS-232通信驱动电路,高低电平测试电路等。课程设计电路中需要的其他电路在此基础上扩展,通过插孔连接。扩展电路在万用板上制作。2、器件安装PCB板上画成熔断器的器件“W1W4”安装导线短接,最先安装。然后依次安装电阻、插孔座、DIP插座、发光二极管、瓷片电容、独石电容、电解电容、按钮,最后安装接线端子和DB9插座。注意所有插座、插孔座、按钮及接线端子一定要安装牢靠。晶体谐振器处安装插孔座,以便更换晶振。3、使用说明基本电路板上的单片机使用宏晶公司支持串口下载程序(ISP)的单片机,如STC90C52AD。单片机的技术资料和用于下载程序的

8、软件可从宏晶公司网站上下载,也可向指导老师所要。需要阅读理解单片机资料中“在系统可编程使用”,用到模数转换功能的组还要阅读“A/D转换寄存器及应用”。调试程序时建议充分利用程序下载方便的有利条件,先编一些短小的程序验证硬件电路的正确性和使用方法的正确性。完整程序复杂时建议使用单片机仿真软件帮助排除错误。也可利用下载软件自带的串口工具帮助调试,通过单片机把运行状态和重要数据送到PC机。扩展电路尽量不要再使用P3.0和P3.1口,必须使用时可作为单片机的输出口使用。(二)按键输入单元设计1、电路说明 按键输入单元的电路图如图。该单元作为系统的输入,采用了四个独立按键,分别为数字加一循环按键S1(接

9、P1.0口)、乘按键S2(接P1.1口)、答案输入按键S3(接P1.2键)、清零按键S4按键(接P1.3口)。当按键按下,电源与地短路,使单片机端口电平被拉低,从而检测出一个输入。各个接口通过插针与单片机相连。2、器件安装 按钮顺向相对引脚为一对,每个钮有两对引脚,安装的时候要注意将同极性的两个引脚接到一起,以提高可靠性。上拉电阻为470K。(三)数码管显示单元 1、电路说明 数码管显示单元的电路原理图如图。 该单元作为系统的输出显示,采用两个共阳极数码管动态显示。两数码管段选信号引脚并联通过1K的限流电阻接到单片机的P2口,从P2.0到P2.7一次接数码管的adp脚。由于采用了共阳极的数码管

10、,因此不需要驱动芯片来驱动数码管显示,只需单片机引脚给出低电平相应断即可点亮。两个数码管的片选端分别接两个PNP型三级管的集电极,三级管的射极接电源,基极接单片机P1.5、P1.6端。该三极管起到了控制以及放大电流的作用,使得单片机可以通过给相应端口送低电平而使数码管点亮。 2.器件安装 通过查询得到数码管的引脚排序,找出响应的引脚。在单片机端口外接1K的限流电阻,以防止电流过大损坏数码管。两个数码管的片选端分别接两个PNP型三级管的集电极,三级管的射极接电源,基极接单片机。注意数码管、三极管的引脚不能接错。(三)蜂鸣器输出单元 1.电路说明 蜂鸣器输出单元的电路图如图。该单元作为系统的输出,

11、在计算结果正确时鸣响。蜂鸣器通过一个PNP型三极管与电源和单片机P1.4口相连。三极管的放大作用避免了蜂鸣器驱动电流的不足,也使得单片机可以通过给P1.4口低电平使蜂鸣器鸣响。2.器件安装注意三级管的极性,以及限流电阻的接法。 (四)附加电路器件表标识符器件名规格型号数量U1单片机STC90C52AD1DS1DS2共阳极数码管LG5611BH2R1R7电阻470k7R8R10电阻1k3R11电阻10k1Q1Q3PNP型三级管90123X1晶振60HZ1C1C2电容30pf2C3电解电容10uf1S1S5按键5LS1蜂鸣器12.1.3软件与硬件结合调试硬件调试:硬件调试是利用DVCC实验与开发系

12、统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试:是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值 第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试:是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分

13、到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。软件调试:软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。可以利用仿真器加以调试,对系统单个单元进行调试,当单元电路

14、成功后,在对整个程序调试,最后在用功CPU芯片调试。系统调试 在焊接完毕附加电路以后,可通过肉眼做初步的观察,看是否存在虚焊、漏焊等明显缺陷,确认没有以后,可以通电对蜂鸣器单元、数码管显示单元进行调试:将蜂鸣器的使能端接到5V电源负极,正常鸣响则该单元合格。再将每个数码管的使能端和段选端接到电源负极,如果每段都正常点亮则该单元合格。若某单元不正常,则需找出错误改正后在调试,直到合格为止。对于按键单元则可以通过万用表测其通态与断态的电阻来确定其实否合格。合格时,通态电阻接近0,断态电阻接近无穷。 至此,硬件电路设计完毕。2.2 软件设计2.2. 1 系统分析 该系统为一个九九乘法表判断器,故需要

15、有乘数及答案的输入。在硬件电路中设置了4个按键,S1、S2、S3、S4分别作为数字加一循环、乘、答案输入、清零按键。两个数码管显示输入的数字。而蜂鸣器则在答案正确的时候作提示用。在按方面,由于只有一个数字循环键,所以,将乘按键和答案输入键设置为多功能按键。在第一次按下S2时再按S1则可输入第一个乘数,第二次按下S2键的时候按K1键可以输入第二个乘数。在S3第一次按下后,按S1输入答案的十位数,S3第二次按下后输入答案的个位数,S3第三次按下则判断并显示结果:正确则蜂鸣2秒,错误则清零重来。这样就减少了S1键的按键次数。同时,在乘数没有输入完毕,即S2键按下少于2次时,答案输入按键是无效的;在输

16、入答案时,S2是无效的。这样避免了误操作。在此技术要求下,程序流程图如下:2.2.2 系统设计 根据系统流程图编写系统程序如下:#include /头文件#define uint unsigned int /宏定义#define uchar unsigned charuchar shu1,shu2,shu3,shu31,shu32,i,flag1,num,shu4,aa;sbit key1=P10; /按键1 加1按键sbit key2=P11; /按键2 乘法按键sbit key3=P12; /按键3 输入按键sbit key4=P13; /按键4 清零按键sbit D1=P15; /数码管

17、1 sbit D2=P16; /数码管2sbit FM=P14; /蜂鸣器uchar code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void delay(uint z); /延时子函数void display(uchar shu); /数码管显示子函数void scan(); /键盘扫描按键void unit();/定时器初始化void dd();/*主函数*/void main() unit(); FM=1; while(1) / FM=0; scan

18、(); void delay(uint z) uint x,y; for(x=110;x0;x-) for(y=z;y0;y-);void dd() num=1; shu1=0; shu2=0; shu32=0; shu31=0; shu3=0; shu4=0; FM=1; EA=0; void display(uchar shu) D1=1;D2=0; P2=tableshu/10; delay(5);D1=0;D2=1; P2=tableshu%10; delay(5);void scan()/键盘扫描 if(key4=0) delay(5); if(key4=0) dd(); while

19、(!key4); if(key3=0) delay(5); if(key3=0) num+; if(num=5) num=0; while(!key3); switch(num) case 1: if(num!=0) if(key1=0) delay(5); if(key1=0) shu1+; if(shu1=10) shu1=0; while(!key1); display(shu1); if(key2=0) delay(5); if(key2=0) num=2; while(!key2); break; case 2: if(num!=0) if(key1=0) delay(5); if(

20、key1=0) shu2+; if(shu2=10) shu2=0; while(!key1); display(shu2); break; case 3: if(num!=0) if(key1=0) delay(5); if(key1=0) shu31+; if(shu31=10) shu31=0; while(!key1); if(key2=0) delay(5); if(key2=0) shu32+; if(shu32=10) shu32=0; while(!key2); shu3=shu31*10+shu32; display(shu3); break; case 4: if(num!

21、=0)/判断是否正确 对 蜂鸣器2秒 错 清零 shu4=(shu1*shu2); display(shu4); if(shu3=shu4) / delay(5); FM=0; EA=1; if(aa=40) aa=0; dd(); / FM=1; / delay(1000); / FM=0; / delay(5); / break; break; void unit() TMOD=0x01;/定时器模式的初始化 TH0=(65536-50000)/256; /装初值 TL0=(65536-50000)%256;/ EA=1; /开总中断 ET0=1;/开定时器0中断 TR0=1;/开启中断/

22、 FM=0; void temer0() interrupt 1 /定时符程序 TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa+;2.2.3 系统实施 将程序下载到单片机中,给电路上电。此时,数码管显示一个“0”,加一按键、答案输入按键皆为无效。按一次乘按键,加一键生效,可按加一键输入第一个乘数,数码管显示输入值;再按一次乘按键后,该键失效,答案输入按键生效,数码管显示“0”,按加一键输入第二个乘数。按一次答案输入按键,数码管显示“00”,此时可按加一键输入答案的十位数,第一个数码管显示输入数值,第二个数码管显示“0”;再按一次答案输入按键,数

23、码管显示“x0”(x为此前输入的答案十位数),按加一键可以输入答案的个位,第二个数码管显示输入值;第三次按下答案输入按键判断答案是否正确,如果正确,则蜂鸣器响2秒数码管显示正确答案,否则数码管显示“0”,从新输入数据;在整个过程中,都可以按清零键重新输入数据。 据实测,所设计的硬件电路及程序可以实现任务要求。3、课程设计总结经过两周的课程设计,我深刻了解到单片机的重要性。单片机是我们专业的主要专业课之一,虽然在学期初我对这门课程没有什么兴趣,觉得那些程序枯燥无味,但是经过这次课程设计,我发现其实单片机还是一门很有趣的课程。电路图设计阶段使我熟练掌握了protel软件的应用,同时也锻炼了我们对于

24、所学电路的熟练程度。在焊接过程中由于引线比较多所以合理同时又不失美观的排线 成为一个难题,由于焊点与焊点之间的距离比较近所以在焊接的过程中出现了一些虚焊点和短路,整体上焊完后又对有毛病的焊点进行了进一步的修整和改正 ,通过我们四个人一上午的努力最后完成了任务。在程序设计和调试阶段由于对程序的编写不是很熟练就找了别的同学帮忙,最后对程序有了大体上的了解不过以后在程序设计方面还得需要继续的努力。电路板调试过程中,我们认识到此阶段前的准备活动是很重要的,尤其是焊接过程,注意不要虚焊,短接电路器件。通过这次课程设计我了解了单片机应用对我们专业的重要性,也看到了小组同学合作的重要性。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1