51单片机六路抢答器课程设计专业通过版.doc_第1页
51单片机六路抢答器课程设计专业通过版.doc_第2页
51单片机六路抢答器课程设计专业通过版.doc_第3页
51单片机六路抢答器课程设计专业通过版.doc_第4页
51单片机六路抢答器课程设计专业通过版.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与应用课程设计报告题 目: 6路抢答器的设计报告 专 业: 计算机工程系 班 级: 07计科2班 学 号: 姓 名: 天津理工大学中环信息学院计算机工程系2007年 6 月 30 日一 设计目的1.熟悉单片机控制系统,并了解系统设计的一般规律。2.掌握8255芯片的结构及编程方法。3.熟悉模拟用于娱乐或比赛抢答器的实现方法。二 设计要求 当主持人宣布开始以后,6个参赛队员可以按自己面前的抢答键进行抢答。要求用数码管显示抢答队员编号,且蜂鸣器发出提示音;一个队员抢答后,在主持人按复位键之前,其他队员不能再次抢答。设计电路时,要考虑主持人用按键来控制抢答开始,开始按钮可兼作复位用。三 设计使用的仪器和设备 Dais MS-51设计软件、Dais-PG系列嵌入式MCS-51教学实验平台、8255芯片、PC 51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为OOH7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。 对周围的其他位不会产生影响。 有的单片机并不能直接对RAM单元中的位进行操作,如AVR系列单片机中,若想对RAM中的某位置位时,必须通过状态寄存器SREG的T位进行中转。 51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令就行了,即MuL AB(两个乘数分别在累加器A和寄存器B中。积的低位字节在累加器A中,高位字节在寄存器B中)。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。 在51系列中,还有一条二进制一十进制调整指令DA,能将二进制变为BCD码,这对于十进制的计量十分方便。而在其他的单片机中,则也需调用专用的子程序才行。 Intel公司51系列的典型产品是8051,片内有4K字节的一次性程序存储器(OTP)。Atmel公司就将其改为电可改写的闪速存储器(Flash),容许改写1000次以上,这给编程和调试带来极大的便利,其产品AT89C51、AT89C52等成为了当今最流行的八位单片机。 51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十A甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。其原因是高电平时该脚也同时作输入脚使用,而输入脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。作输出脚使用,欲进行高电平驱动时,得利用外电路来实现(见附图),I/O脚不通,电流 经R驱动LED发光;低电平时,I/O脚导通,电流由该脚入地,LED灭(I/O脚导通时对地的电压降小于1V,LED的域值1.5-1.8V)。 5l系列I/O脚使用简单,但高电平时无输出能力,可谓有利有弊。故其他系列的单片机(如PIC系列、AVR系列等)对I/O口进行了改进,增加了方向寄存器以确定输入或输出,但使用也变得复杂。 一些简装的5l产品也相应出现,如Atmel公司的AT89C1051、AT89c2051、AT89C405l等(闪速存储器分别为1K、2K、4K等,但不能外接数据存储器),指令系统与AT89C5 l完全兼容,但引脚均为20脚,不光体积小,而且价格低廉,这使得其他的公司竞相仿照。 不过,原51系列也有许多值得改进之处,如运行速度过慢等。当晶振频率为12MHz时,机器周期达1s,显然适应不了现代高速运行的需要。华邦公司(Winbond)生产的产品型号为W77系列和W78系列,W78系列与AT89C系列完全兼容。W77系列为增强型,对原有的8051的时序作了改进,每个机器周期从12个时钟周期改为4个周期,使速度提高了三倍,同时,晶振频率最高可达40MHz。W77系列还增加了看门狗WatchDog、两组uART、两组DVTR数据指针、ISP等多种功能。 特别是双数据指针,能给编程带来很大的便利。在51系列中,数据指针DPTR是片内与片外的数据存储器打交道的主要途径(由片外数据存储器读入片内累加器A或由片内累加器A写入片外数据存储器),也是程序存储器与累加器A之间的数据传送的必由之路。由于频繁的数据交换,特别是数据块的搬运和比较,数据指针非常吃紧,它需要不断地实施现场保护与还原,不光编程变得复杂,而且运行速度也减慢。而当采用两个数据指针时,可以各负其责,互不相扰,轻松地完成上述过程。两个数据指针的选取取决于特殊功能寄存器AuxR 1的第DO位DPS。当DPS为0时,选中数据指针DVTRO(复位时DPS也为0);DPS为1时,选中数据指针DPTRl。DPS位不能位寻址,故不能进行布尔操作,但由于AUXRl的D1位被强制为逻辑“0”,不可能发生由DO位向Dl位进位之可能,因而可以通过对AuXRl进行增1来使DO位由O变为l或由1变为0,从而达到双数据指针的快速切换的目的,如: ISP功能能实现在系统可编程,可以省去通用的编程器,单片机在用户板上即可下载和烧录用户程序,而无需将单片机从生产好的产品上取下。未定型的程序还可以边生产边完善,加快了产品的开发速度,减少了新产品因软件缺陷带来的风险。由于可以将程序下载并观看运行结果,故也可以不用仿真器。 单片机的提速运行、双数据指针及ISP功能并非是W77系列所特有的,一些新的型号的51系列产品大都有该功能,如Philips的51LPC系列、AT89系列中的某些型号、STC89C系列等等。有的单片机还附有A/D、D/A转换、片内EEPROM数据存储器、PWM输出、I2C总线、上电复位检测、欠压复位检测等等,这些新系列的单片机,它们都兼容8051的指令系统。增强功能的实现,大都是由片内新增的特殊功能寄存器来进行设置,这些寄存器被安排在片内特殊功能寄存器区间(80-FFH)的预留地址上。四 系统硬件设计方案为使硬件电路设计尽可能合理,应注意以下几方面:(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3) 程序空间,选用片内程序空间足够大的单片机,本设计采用Dais MCS-51单片机。(4)I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。1.总体原理图 图1.系统原理图2.外部震荡电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度 图 2 外部振荡源电路3.复位电路的设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图 图 3 复位电路4.显示电路的设计显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。5. 键盘扫描电路的设计键盘是人与微机系统打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。 图 4 独立键盘它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺” 现象。6 发声我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。7 系统复位使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程。有的编程人员用020000(LJMP 0000H)作为软件陷阱,认为直接转向0000H地址就完成了软件复位,就是这类错误的典型代表。软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。五 系统软件设计方案 1.主程序系统结构图系统初始化模块按键模块 抢答模块数码显示模块 图5 软件系统结构图2.程序流程图 初始化 显示000000按键抢答 显示抢答号 复位 图6 程序设计流程图3.系统程序cs8255 equ 0ffffh ;8255命令控制口outseg equ 0fffch ;字形控制口outbit equ 0fffdh ;字位/键扫控制口 org 0Start: mov sp,#40h mov dptr,#CS8255 mov a,#88h ;命令字:A,B口输出 movx dptr,a ;8255初始化clrcst0:jb p3.0,st1 setbc ;setb p1.4 ;setb p1.5 ; setb p1.6 ; setb p1.7 mov r0,#0 call DisplayLED0 ;显示st1:jnc st0jb p1.0,st2clr cmov r0,#1;clr p1.4 ;setb p1.5 ;setb p1.6 ;setb p1.7call DisplayLED1;显示st2:jnc st0jb p1.1,st3clr cmov r0,#2;clr p1.5 ;setb p1.4 ;setb p1.6 ;setb p1.7call DisplayLED2;显示st3:jnc st0jb p1.2,st4clr cmov r0,#3;clr p1.6 ;setb p1.4 ; setb p1.5 ;setb p1.7call DisplayLED3 ;显示st4:jnc st0jb p1.3,st5clr cmov r0,#4;clr p1.7 ;setb p1.4 ;setb p1.5 ; setb p1.6call DisplayLED4;显示 st5:jnc st0jb p1.4,st6clr cmov r0,#5;clr p1.7 ;setb p1.4 ;setb p1.5 ; setb p1.6call DisplayLED5;显示 st6:jnc st0jb p1.5,st0clr cmov r0,#6;clr p1.7 ;setb p1.4 ;setb p1.5 ; setb p1.6call DisplayLED6;显示 ljmp st0Delay: ;延时子程序 mov r7,#0DelayLoop: djnz r7,DelayLoop djnz r6,DelayLoop retDisplayLED0: mov r2,#11111100b;从左边开始显示Loop: mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay retDisplayLED1: mov r2,#10000000b;左边第一位开始显示 mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay retDisplayLED2: mov r2,#01000000b;从左边开始显示 mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay retDisplayLED3: mov r2,#00100000b;从左边开始显示 mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay retDisplayLED4: mov r2,#00010000b;从左边开始显示 mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay retDisplayLED5: mov r2,#00001000b;从左边开始显示 mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay retDisplayLED6: mov r2,#00000100b;从左边开始显示 mov dptr,#OUTBIT clr a movx dptr,a ;关所有八段管 mov dptr,#LedMap mov a,r0 movc a,a+dptr ;数字转换成显示码 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#01 call Delay ret发声程序:BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING; 按键发声 RETLedMap: ;八段管显示码 db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh end六 调试及验证1 调试步骤1.打开Dais MCS-51设计软件2.打开 实验指导-硬件实验-P1口转弯灯控制3.连线如图7 图7 连线图4.编写程序5.编译装载程序,如图8 图 8 程序装载6.运行程序2 整体设计验证1.具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。2.主持人说开始并扳动控制开关。3.主持人宣布开始后选手开始按动按钮抢答,当有选手抢答成功后,程序锁存该选手信息并在LED显示屏上显示该选手编号,其他抢答无效。4.回答完毕后主持人复位程序,准备下一轮抢答。七 课程设计小结单片机课程设计是一门很实用,很难的设计。这个设计用到了单片机,电路等方面的知识,通过这次课程设计,使我对单片机及其附属电路有了一定的了解,对课本上的知识有了近一步的掌握,也深刻明白了自己的不足。完成本次课程设计的过程,是一个从无到有的过程,经历了兴奋、自信、失落、奋发、所悟、完成几个过程。刚做做课程设计时,仔细阅读设计的题目和要求,以为没什么困难的,所用的知识书上都有。可是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论