收藏 分销(赏)

基于c语言单片机位竞赛抢答器设计课程设计doc.doc

上传人:二*** 文档编号:4535630 上传时间:2024-09-27 格式:DOC 页数:110 大小:3.39MB
下载 相关 举报
基于c语言单片机位竞赛抢答器设计课程设计doc.doc_第1页
第1页 / 共110页
本文档共110页,全文阅读请下载到手机保存,查看更方便
资源描述
基于c语言单片机位竞赛抢答器设计课程设计【实用文档】doc 文档可直接使用可编辑,欢迎下载 课程设计报告 课程名称:单片机课程设计 报告题目:8位竞赛抢答器的设计 学生姓名: 所在学院:信息科学与工程学院 专业班级: 学生学号: 指导教师: 2013 年12月25日 课程设计任务书 报告题目 8位竞赛抢答器的设计 完成时间 12.15-12.29 学生姓名 专业班级 指导教师 职称 讲师 总体设计要求和技术要点 设计一个数字式电容测量仪电路,要求如下: 以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。 设置一个系统清除和抢答控制开关S,开关由主持人控制. 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止.当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0。5s左右. 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00 工作内容及时间进度安排 第17周: 周一、周二:选题,明确任务,指导教师对课题进行讲解,资料检索 周三:硬件设计,硬件仿真 周四、周五:软件设计 第18周: 周一:综合调试 周二、周三、周四:书写课程设计报告 周五:答辩评分 课程设计成果 1.与设计内容对应的软件程序 2.课程设计总结报告 摘要 抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低.作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器. 本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1—30s设定;可以显示是哪位选手有效抢答,正确按键后有5s的音乐提示(即扬声器发出响声);抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。 关键词:89c52;电路;显示;按键 目录 一、概述…………………………………………………………………………1 二、方案设计………………………………………………………………1 三、硬件电路设计…………………………………………………………2 1、抢答器的电路框图…………………………………………………………2 2、单元电路………………………………………………………………………………3 2。1、抢答器电路………………………………………………………………………3 2.2、时序控制电路……………………………………………………………………3 2.3、复位电路…………………………………………………………………………3     3、时钟震荡电路………………………………………………………………3 4、报警电路…………………………………………………………………3 四、软件设计………………………………………………………………4 1、系统主程序…………………………………………………………4 2、系统程序…………………………………………………………5 五、结论与心得………………………………………………………………………10 六、参考文献……………………………………………………………………10 一、概述 本实验电路由抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路组成.通过复位按键FW,电路进入准备就绪状态。将抢答时间设定在30S,然后按下开始键开始抢答.,在电路中“S0-S7”为8路抢答器的8个按键,当有键按下,程序锁定信号,从P2口输出抢答者号码的七段码值,送到数码管显示,并封锁按键,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。当设定的抢答时间结束,仍然没有抢答键被按下,则产生已经超时的报警信号,结束抢答。当要进行下一次的抢答时,首先按一下复位按键,电路复位. 该设计是以MCS51为基础,结合单片机汇编语言知识,设计而成的8位竞赛抢答器。在伟福试验箱上实现仿真. 主持人按下“开始抢答键"既单脉冲键后,喇叭响0。5秒给出提示信号,并立刻进入抢答倒计时(预设30秒抢答时间)此时,数码显示管上显示倒计时时间:有选手抢答,停止计时,八段数码显示抢答时间和选手号;无选手抢答,倒计时30秒后,显示00。然后选手等待主持人按下按钮开始新一轮抢答。 注意: (1)由于设计的局限性,如果在无人抢答期间,30秒还未到,主持人不能按下重新下一轮抢答按钮。 (2)由于试验箱上按钮数量有限,故选用开关代替按钮,供8位选手抢答使用。鉴于开关与按钮动作过程的差异,所以每次当选手抢答,拨下开关时必须将开关复位。 (3)当系统出现错误的时候,停止操作,重新编译开始。 二、方案设计 方案:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现.由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改.MCS-51单片机特点如下: 〈1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。 <2〉单片机有一般电脑所必须的器件. <3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令. 三、硬件电路设计 1、抢答器的电路框图     如图3。1。1所示为电路框图。其工作原理为:接通电源后,主持人按下开关即为“开始”状态,宣布“开始”抢答器工作。编号显示器灭灯,定时器显示设定时间。定时器倒计时,扬声器给出5s声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作"开始、停止”状态按键。 抢答按扭 优先编 码电路 锁存器 译码电路 译码显示 主持人控制开关 控制电路 报警电路 秒脉冲产生电路 定时电路 译码电路 显示电路 图3.1。1电路框图 2、单元电路 3。2。1、抢答器电路 该电路完成两个功能:一是判断出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除"然后再进行下一次抢答。 3.2。2、时序控制电路 时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到"开始”位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。        b。当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。 3.2.3、复位电路设计 外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。 3、时钟震荡电路 时钟震荡电路单片机必须在89C52驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元。 4、报警电路 报警电路用于报警,当遇到报警信号时,发出警报。8952动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻. 图3硬件电路图 四、软件设计 1、系统主程序 为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下s1按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。 以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示. 设置一个系统清除和抢答控制开关S,开关由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 主程序 设置抢答时间和回答问题时间 定时器及并行口初始化 将时间计数器及启动标志值1 开中断 采并行口数据为0吗? 启动标志=1吗? 判断抢答组号 将抢答组发光二极管点亮 判断哪一组为抢答组 将抢答组号送显示 抢答时间到了吗? 输出响铃信号提示超时 N Y N Y Y Y N 抢答时间到了吗? 继续抢答比赛吗? 系统返回 N Y Y Y N Y N 图4.1主程序方框图 2、系统程序 #include〈reg52.h〉 #define uint unsigned int #define uchar unsigned char sbit s1=P3^0; sbit we=P3^6; uchar h[]={0xe0,0xd0,0xb0,0x70}; uchar code table[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar num,count; uchar a=0,c=0,t,bb=0,t1; void delay(uint z) { uint x,y;      for(x=110;x〉0;x-—) for(y=z;y〉0;y--); } void write_sx() {    P2=0xdf; P0=0x08;   P2=0x00;   P0=0xff;   P2=0xff; P0=table[t1];    P2=0x00; P0=0x00;   delay(5);    P2=0xdf;   P0=0x40; P2=0x00;    P0=0xff;   P2=0xff;  P0=table[(t/10)%10];    P2=0x00; P0=0x00; delay(5);  P2=0xdf;   P0=0x80;   P2=0x00;   P0=0xff;   P2=0xff; P0=table[t%10]; P2=0x00;   P0=0x00;   delay(5);   } void init() {  P2=0xbf;P0=0xbf;   TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=0; ET0=1; TR0=1; } void keyscan() {  we=0;     if(s1==0)  {   delay(5);      if(s1==0)   {         while(!s1);   EA=1; P2=0xbf;P0=0xff; t=30; a=1;   t1=10; c=0; }     }     if(c==0) {   P3=0xfd; num=P3; num=num&0xf0; if(num!=0xf0)   {   delay(5); if(num!=0xf0) { while(P3!=0xfd); c=1; EA=0; if(num==h[3]) t1=1; if(num==h[2])  t1=2; if(num==h[1]) t1=3; if(num==h[0]) t1=4; }   }   P3=0xfb; num=P3;  num=num&0xf0;   if(num!=0xf0) {   delay(5);  if(num!=0xf0)  { while(P3!=0xfb); c=1;  EA=0; if(num==h[3]) t1=5;  if(num==h[2]) t1=6;  if(num==h[1]) t1=7;     if(num==h[0]) t1=8; }   }  }  }  void main() {   init();   while(1)    { keyscan();  if((a==1)&&((t〉0)&&(t〈=30))) {   write_sx();  }     if(t==0)   {     EA=0; t=0; t1=10;   } } } void timer0() interrupt 1 {   TH0=(65536—50000)/256; TL0=(65536-50000)%256; count++;  if(count==10) {   P2=0xbf;P0=0xbf; }   if(count==20) { count=0; t--; } } 五、结论与心得 通过这次课程设计,我深刻的认识到自己在许多方面的不足。通过编程,我学会了如何独立的写出程序,提高了自己的分析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。 在刚开始的时候无从下手,感觉有些茫然,但同学和老师给予我很大的帮助,每当设计过程中遇到困难时,老师都会细心的教导我,耐心的为我讲解,同学也热心帮助我,为我排忧解难,让我深深的体会到了团队的力量和重要性。 通过设计,我也学到了很多书本上没有的知识。在设计当中遇到了很多问题,但通过查找资料,克服了这些问题,提高了自己在实际当中解决问题的能力。 在此我感谢学校给了我们的这次实践机会。在这里为奔波劳累在这次设计中老师便是感谢,老师们不辞劳苦,不在乎身体的不适认真为我们讲解并为我们知道实际操作过程中的问题。让我们一步一步有序完成此次课程设计。在这里对我们的廖老师、曹老师说声谢谢,谢谢你们,你们辛苦了!也祝你们身体健康工作顺利 六、参考文献 [1] 张毅刚。《单片机原理及应用》.高等教育出版社,2009 [2] 谭浩强.《C程序设计教程》.清华大学出版社 [3] 周兴华.《单片机C程序设计》.北京航空航天大学出版社 教师评语及设计成绩 教师评语: 课程设计成绩: 指导教师:(签名) 日期:年月日 摘要 近年来,随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新.在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,正在不断的应用到实际生活中,并且根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS-51系列单片机STC89C51为中心器件来设计交通灯控制器,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。 关键词:交通灯 单片机 数码管 一 .总体设计思路 1.1设计目的及思路 设计目的 了解交通灯管理的基本工作原理,熟练掌握STC89C51的工作原理和应用编程,熟悉STC89C51单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式和应用编程外部中断的方法,掌握多位LED显示问题的解决。 设计思路 (1)分析目前交通路口的基本控制技术,提出自己的交通控制的初步方案. (2)确定系统交通控制的总体设计,增加了倒计时显示提示。 (3)进行显示电路. (4)进行软件系统的设计。 1.2 实际交通灯显示时序及状态转换的理论分析 图1所示为红绿灯转换的状态图。 S2 S1 S4 S3 图1 红绿灯状态转换图 状态 S1 S2 S3 S4 时间 30s 5s 30s 5s 东西道 红灯亮 红灯亮 绿灯亮 黄灯亮 南北道 绿灯亮 黄灯亮 红灯亮 红灯亮 表1 十字路口指示灯燃亮方案 说明: (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为60秒。 (2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换.   (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。   时间为80秒. 东西方向车流大 通行时间长。 (4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。  (5)此表可根据车流量动态设定红绿灯初始值。 共四种状态,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行如下图所示: 图2 交通灯状态循环图 程序就是在上述四种状态下循环转化的。一个周期四个状态,在正常模式下共花费1分10秒。 二.具体设计方案 2.1方案要求: 本设计要求与交通信号实际控制一致,采用LED模拟信号灯,信号灯分东西、南北二组,分别有红、黄、绿三色。其工作状态由程序控制,启动、停止按钮分别控制信号灯的启动与停止。白天/黑夜转换开关可对信号进行控制转换。并且要求能用两位数码管(或者一位数码管)来显示红灯或者绿灯等待的时间,在黄灯的时候数码管不显示。信号灯的控制要求如下: ⑴假设东西方向交通繁忙为主干道,车流量为南北交通的两倍.因此东西方向的绿灯通行时间为是南北方向上的两倍。 ⑵开始时东西方向绿灯先亮,南北为红灯。 ⑶按下启动按钮开始工作,,按下停止按钮,停止工作.白天/黑夜转换开关闭合时为黑夜工作状态,这时只有黄灯来回闪烁,断开为白天工作状态。白天工作状态要求:东西方向绿灯亮40s,然后黄灯闪三下(1下/秒,共5秒),然后红灯亮20s,而南北方向为红灯亮40s然后绿灯亮20s,然后黄灯也闪三下;如此周期循环下去。 示意图 2。2方案分析 根据十字路口交通灯的要求,可将本系统分为三个模块,第一模块是控制模块,主要负责整个系统的控制和运算,从而使各模块正常工作,第二个模块式显示模块包括LED灯和数码管;第三是电源模块,给各模块提供电源,让各模块工作。其系统设计结构如图: 图3.系统设计结构图 2。3 89C51单片机引脚功能说明 89C51外部引脚图:(可以直接拷入ASM程序文件中,作注释使用,十分方便)                             ┏━┓┏━┓             P1.0        ┫1 ┗┛40┣        Vcc ﻫ            P1.1        ┫2       39┣        P0.0                P1.2        ┫3       38┣        P0.1    ﻫ            P1。3        ┫4       37┣        P0。2                 P1.4        ┫5       36┣        P0.3                P1.5        ┫6       35┣        P0.4                P1.6        ┫7       34┣        P0.5    ﻫ           P1。7        ┫8       33┣        P0。6    ﻫ        RST/Vpd     ┫9       32┣        P0.7    ﻫ     RXD P3.0         ┫10     31┣        —EA/Vpp(内1/外0 程序地址选择)ﻫ    TXD P3.1         ┫11     30┣        ALE/—P(地址锁存输出)ﻫ -INT0 P3.2          ┫12      29┣        -PSEN      (外部程序读选通输出)  -INT1 P3。3          ┫13      28┣        P2。7    ﻫ      T0      P3.4     ┫14      27┣        P2。6          T1      P3.5     ┫15      26┣        P2.5         —WR P3。6        ┫16      25┣        P2。4    ﻫ     -RD P3.7        ┫17      24┣        P2。3    ﻫ             X2          ┫18      23┣        P2。2    ﻫ              X1         ┫19      22┣        P2.1              GND          ┫20       21┣        P2.0    ﻫ                           ┗━━━━┛引脚说明:ﻫ        ①电源引脚ﻫ          Vcc(40脚):典型值+5V.           Vss(20脚):接低电平.ﻫ        ②外部晶振ﻫ      X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地         ③输入输出口引脚:           P0口:I/O双向口。作输入口时,应先软件置“ 1”。           P1口:I/O双向口。作输入口时,应先软件置“ 1”。ﻫ          P2口:I/O双向口。作输入口时,应先软件置“ 1"。           P3口:I/O双向口.作输入口时,应先软件置“ 1”。         ④控制引脚:ﻫ          RST/Vpd、ALE/—PROG、—PSEN、-EA/Vpp组成了MSC-51的控制总线。           RST/Vpd(9脚):复位信号输入端(高电平有效).           第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ﻫ          ALE/-PROG(30脚):地址锁存信号输出端。           第二功能:编程脉冲输入.ﻫ          —PSEN(29脚):外部程序存储器读选通信号.ﻫ          —EA/Vpp(31脚):外部程序存储器使能端。 ﻫ          第二功能:编程电压输入端(+21V). 图6. 单片机8051的内部结构 2.4单片机最小系统 时钟电路 图7. 时钟电路 XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空.内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz.晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右.系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中.对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF.在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。 复位电路 在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位.复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零.当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序.复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。复位操作不会对内部RAM有所影响. 常用的复位电路如下图所示: 图8. 复位电路图 显示电路 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED数码管是现在最常用的显示器之一。发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或号。LED数码管有共阳、共阴之分。本系统采用的是两位共阴极数码管 三.电路图和程序 图10. 交通灯电路图 具体程序: #include <REG51.H> #define uchar unsigned char #define uint unsigned int uint num,shi,ge; sbit red=P1^0; sbit yel=P1^1; sbit gre=P1^2; ﻩ void delay() {     uint a;    for(a=500;a〉0;a-—);ﻩ } uchar code arry_duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void initial() { EA=1; ET0=1; TMOD=0x01; TH0=0x4c; TL0=0xd0; } void display(int Y) { shi=Y/10; ge=Y%10; TR0=1; while(shi|ge!=0) { P2=0xfe; P3=arry_duan[shi]; delay(); P2=0xfd; P3=ﻩarry_duan[ge]; delay(); } TR0=0; } void timer0() interrupt 1 { TH0=0x4c; TL0=0xd0; num++; if(num==20) { num=0; ge-—; if(ge==-1) { ge=9; shi—-; } } } main() { initial(); while(1) { red=0; yel=0; gre=1; display(40); red=0; yel=1; gre=0; display(3); red=1; yel=0; gre=0; display(20); red=0; yel=1; gre=0; display(3); } } 程序编译和。hex文件创建截图 仿真截图          四.实验心得体会 通过本次试验我复习了单片机程序的编写,电路的连接以及程序的调试仿真,更加深刻的感受到了单片机的强大功能,通过实验也加强了动手操作的能力,和同学一起更加懂得了相互合作的重要性,以后我会更加努力的把本专业知识学好学精,争取为国家做到属于自己应做的奉献。           五.课程设计参考资料 1.《电子系统综合设计》 郭勇北京大学出版社 2.《数字电子技术基础》 阎石 高教出版社 3.《模拟电子技术基础》 童诗白 高教出版社 4. 《单片机原理及应用》 张毅刚  高等教育出版社 单片机技术课程设计 数字电子钟 学院: 班级: 姓名: 学号: 教师: 摘 要 电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点.具有极高的推广应用价值. 关键词: 电子钟 AT89C52 硬件设计 软件设计 目  录 一、数字电子钟设计任务、功能要求说明及方案介绍4 1.1 设计课题设计任务4 1。2 设计课题的功能要求说明4 1.3  设计课的设计总体方案介绍及工作原理说明4 二、设计课题的硬件系统的设计5 2。1硬件系统各模块功能简要介绍5 2.1.1 AT89C52简介5 2.1。2 按键电路6 三、设计课题的软件系统的设计6 3。1 使用单片机资源的情况6 3.2  软件系统个模块功能简要介绍7 3.3 软件系统程序流程框图7 3。4 软件系统程序清单7 四、设计课题的设计结论、仿真结果、误差分析9 4.1  设计结论及使用说明9 4。2  仿真结果10 结 束 语12 参考文献12 附  录13 附录A:程序清单13 一、数字电子钟设计任务、功能要求说明及方案介绍 1.1 设计课题设计任务 设计一个具有特定功能的电子钟。具有时间显示,并有时间设定,时间调整 功能。 1。2 设计课题的功能要求说明 设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“d.1004—22”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态. 1。3 设计课的设计总体方案介绍及工作原理说明 本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示: 图1—1总体设计方案图 本电子钟的所有的软件、参数均存放在AT89C52的FlashROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。 二、设计课题的硬件系统的设计 2.1硬件系统各模块功能简要介绍 2.1。1 AT89C52简介 (1) 兼容MCS51指令系统; (2)8kB可反复擦写(大于1000次)Flash ROM; (3)32个双向I/O口; (4)256x8bit内部RAM; (5)3个16位可编程定时/计数器中断; (6)时钟频率0-24MHz; (7)2个串行中断,可编程UART串行通道; (8)2个外部中断源,共8个中断源; (9)2个读写中断口线,3级加密位; (10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; (11)有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。 它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。其芯片引脚图如图2-1所示。 图2-1 单片机AT89S52引脚图 2。1.2按键电路 图2—2 按键图 三、设计课题的软件系统的设计 3.1 使用单片机资源的情况 设计课题使用单片机资源的情况如下: P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz;调整选择键KEY1:P1.0;通过选择键选择调整位,选中位闪烁;增加键KEY2:P1.1;按一次使选中位加1;减少键KEY3:P1.2;按一次使选中位减1;此数字钟可实现基本的走时和显示时间时、分、秒;时间的调整;闹钟的设定和调整;闹钟的开启和关闭功能,具体如下: (1)实现基本的走时和显示时间的时、分、
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服