




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 硬件设计 -32.1.1 硬件方案设计 -32.1.2 单元电路设计 -52.1.3软件与硬件结合调试 -82.2 软件设
2、计 -92.2.1 系统分析 -92.2.2 系统设计 -102.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设计硬件电路原理图和PCB 图;f、软硬件
3、联机调试。1.2 课程设计目的(1) 通过九九乘法表判断器的设计,掌握数码管动态显示的原理;(2) 通过单片机课程设计,熟练掌握软件编程的方法,将理论知识联系到实践中去,提高我们的动脑动手能力;(3) 完成系统的硬件设计、软件设计、仿真调试,学会将硬件知识和软件知识结合起来,使两者相互补充,共同实现一个系统的功能;(4) 通过课程设计加深理解课堂教学内容,掌握单片机的基本应用方法。通过实验熟悉微机基本接口芯片的外型、引脚、编程结构。掌握程序设计和单片机基本接口电路的设计、应用方法,做到理论联系实际2、课程设计正文2.1 硬件设计2.1.1 总体设计方案(电路原理图如下)系统组成:该系统由单片机
4、基本电路、数码管显示电路,按键输入电路以及蜂鸣器电路组成。其中单片机基本电路已在课程设计专用单片机基本电路给出。系统工作原理:键盘输入单片机数码管显示蜂鸣器系统通过键盘输入模块向单片机输入数据,经过单片机的计算按条件再向数码管显示模块和蜂鸣器输出指令,使之执行相应的动作。各个模块的工作原理将在下文做具体介绍。STC90C52AD说明 STC90C52AD的引脚图STC90C52AD的引脚说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。采用外部振荡器时,此引脚应接地。 XTAL2 :接外部晶振的一个引脚。在片内接至振荡器的
5、反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。 RST :AT89C51的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89C51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。 P0口(P0.0P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而单片应用时,则作一般双向IO口 用。P0口每一个引脚可以推动8个LSTTL负载。 P2口(P2.0P2.7)口是具有内部提升电路的双向I/0端口(准双向并
6、行I/O口),当访问外部程序存储器时,它是高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、电路说明按键输入单元的电路图如图。该单元作为系统的输入,采用了四个独立按键,分别为数字加一循
9、环按键S1(接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是无效的。这样避免了误操作。在此技术要求下,程序流程图如下:N开始初始化S2(乘)按键功能子程序S4(清零)按键子程序乘数输入子程序答案输入子程序S3是否按下S4是否按下S3(答案输入)按键功能子程序S2键是否按下YYNYN2.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
17、;/按键2 乘法按键sbit key3=P12;/按键3 输入按键sbit key4=P13;/按键4 清零按键sbit D1=P15; /数码管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(
18、);/定时器初始化void dd();/*主函数*/void main()unit();FM=1;while(1)/FM=0;scan();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()
19、/键盘扫描 if(key4=0)delay(5);if(key4=0)dd();while(!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!=
20、0)if(key1=0)delay(5);if(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: i
21、f(num!=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;/开启中断/FM=0;void temer0()
22、 interrupt 1 /定时符程序TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;2.2.3 系统实施将程序下载到单片机中,给电路上电。此时,数码管显示一个“0”,加一按键、答案输入按键皆为无效。按一次乘按键,加一键生效,可按加一键输入第一个乘数,数码管显示输入值;再按一次乘按键后,该键失效,答案输入按键生效,数码管显示“0”,按加一键输入第二个乘数。按一次答案输入按键,数码管显示“00”,此时可按加一键输入答案的十位数,第一个数码管显示输入数值,第二个数码管显示“0”;再按一次答案输入按键,数码管显示“x0”(x为此前输入的答案十位数),按加一键可以输入答案的个位,第二个数码管显示输入值;第三次按下答案输入按键判断答案是否正确,如果正确,则蜂鸣器响2秒数码管显示正确答案,否则数码管显示“0”,从新输入数据;在整个过程中,都可以按清零键重新输入数据。据实测,所设计的硬件电路及程序可以实现任务要求。3、课程设计总结经过两周的课程设计,我深刻了解到单片机的重要性。单片机是我们专业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宝鸡三和职业学院《清洁生产与循环经济》2023-2024学年第二学期期末试卷
- 河北劳动关系职业学院《古典园林设计》2023-2024学年第二学期期末试卷
- 北京外国语大学《生物育种综合实验技术》2023-2024学年第二学期期末试卷
- 赣州职业技术学院《突发公共卫生事件应急管理》2023-2024学年第二学期期末试卷
- 长沙师范学院《计算机辅助绘图基础》2023-2024学年第二学期期末试卷
- 大兴安岭职业学院《医学信息导论》2023-2024学年第二学期期末试卷
- 巴中职业技术学院《信息安全技术》2023-2024学年第二学期期末试卷
- 昆明理工大学津桥学院《固体表面物理化学》2023-2024学年第二学期期末试卷
- 武汉商学院《国际贸易实务英语(一)》2023-2024学年第二学期期末试卷
- 喀什理工职业技术学院《江南丝竹》2023-2024学年第二学期期末试卷
- GB∕T 17466.1-2019 家用和类似用途固定式电气装置的电器附件安装盒和外壳 第1部分:通用要求
- 钻探设备工具材料共12
- 得到上市招股书:北京思维造物信息科技股份有限公司
- 机动车检测站授权签字人内部培训考题(含答案)
- 2022年浙江省小升初语文试卷(含答案)
- Q∕GDW 12158-2021 国家电网有限公司重大活动电力安全保障工作规范
- 我把没有送给你(课堂版)(1)
- 刘半农雨散文的特点
- 南靖和溪各姓氏源流
- 智能PID算法在液位控制系统中的应用毕业论
- 肾病及生活质量KDQOL-SF
评论
0/150
提交评论