单片机 四人抢答器 课程设计4

四人抢答器模拟实验报告

一、目的与要求

1. 目的:

(1)培养学生综合利用MCS-51单片机的软硬件知识进行程序设计的能力,解决一些实际问题。

(2)进一步加深对MCS-51单片机内部结构和程序设计方法的理解。

(3)提高学生建立程序文档、归纳总结的能力。

2. 基本要求:

(1)要求用MCS-51单片机知识完成程序的设计;

(2)源代码程序要求必要的注释。

3. 创新要求

在基本要求达到后,可以进行创新设计,如更加完善程序功能。

二、系统总体设计

基于MCS-51单片机的智能抢答器的设计,主要要实现以下几种功能:

(1)当主持人按下他的按键时,抢答开始,LED 显示器开始从0到20的定时记数。

(2)在20秒定时的时间内,如果有竞赛者要回答问题,那么按下自己的按键,此时,与该竞赛者对应的显示灯亮,并且LED 显示器的计时停止。先按键的竞赛者可屏蔽其他人的抢答信号。

(3)如果在20秒定时结束后,即LED 显示器显示20时,仍然没竞赛者按下按键回答问题,那么报警信号灯亮

(4)在20秒内,可以进行累加计时

三、硬件系统设计

该抢答器的设计是基于MCS-51单片机的,使用到的硬件主要有8051的P1口和P3口,LED 显示器,8155芯片及单片机内部的定时器/计数器T/C。

如图示(图1):

图1

1.使用4个开关分别代表4个选手控制号,用P1口中的P1.0,P1.1,P1.2,

P1.3表示四个选手

2.用P1.7(X6)表示红灯,P3口中的P3.2与外来脉冲连接,控制继续计时。

3. 资源分配:在设计过程中,用到了8051的P1口和P3口,主要是/INT0和/INT1,用竞赛者的按键X0、X2、X3、X4控制/INT1。当程序运行时,启动T/C计数,用8155芯片使LED 显示计;当/INT1产生有效信号时,停止T/C计数,LED 计时停止。

四、程序流程图(如图2) :

图2

五:系统软件设计

1. 主程序

主程序功能:完成单片机MCS-51的初始化操作;定时器初始化;等待定时器中断的发生;发生中断,则转入相应的中断服务程序,执行相应功能的子程序。主程序流程图如下(图3) :

图3

2. 子程序

子程序主要包括LED 显示的程序,定时器/计数器T/C程序,抢答的中断服务程序。

2.1 LED 显示程序

LED 计数的启动受到/INT0、/INT1、T/C0、T/C1的控制。

LED 显示程序的功能是:

a. 当/INT0产生有效信号,T/C0和T/C1启动后,LED 开始显示计数(从0到20)。

b. 当/ INT1产生有效信号后,使T/C0和T/C1停止工作,此时LED 停止在当时的计数值。这也就是说一轮抢答结束。

LED 显示程序的流程图如图(图4):

图4

2.2 定时器/计数器T/C程序

首先设置T/C0输出方波,且定时50ms ,再经过反向脉冲后为100ms , T/C1计数为20(工作方式已在主程序设置),这样1秒产生,LED20秒定时可以开始,接着判断LED 是否显示到20。如果到20,则报警。如果没显示到20,LED 继续计数。

T/C程序流程图如图(图5):

图5 2.3 抢答的子程序

抢答的子程序所完成的主要功能是:当主持人宣布抢答开始,并按下按键LED 开始计数后,竞赛者才能抢答。有竞赛者按下按键后,显示与之相对应的选手号,同时LED 计数停止。

抢答程序在抢答开始的20秒内,查询是否有人按键。也就是进入一段查询程序,其流程图如图6所示。

先读P1口,查询P1.0、P1.1、P1.2、P1.3的状态,判断几号竞赛者按下按键,根据查询结果转向各自的中断服务程序:使LED 显示的计数停止,与各按键相对应的号码被显示。

图6

六:程序

org 0000h

ajmp main

org 0003h

ajmp start

org 000bh

ajmp time

org 0030h

main: mov tmod,#1 ; 置T/C0为方式1、定时, 置T/C1为方式1、计数

mov th0,#0b1h ; 送T/C0定时初值

mov tl0,#0e0h

mov ie, #83h ; 设置中断

setb tr0 ; 启动T/C0定时

mov r3,#0

mov r4,#0

mov 30h,#0 ; 记时的个位显示

mov 31h,#0 ; 记时的十位显示

mov 32h,#0 ; 选手号

disp: mov sp,5fh

mov a,#03h ; 对8155初始化

mov dptr,#0ff20h

movx @dptr,a

loop: mov r5,#1

mov r0,#30h

mov a,r5

loop1: mov dptr,#0ff21h

movx @dptr,a

mov dptr,#0ff22h

mov a,@r0

add a,#0eh

movc a,@a+pc ; 查地址低字节

movx @dptr,a

acall dlay ; 调用延时子程序

inc r0

mov a,r5

jb acc.2,ld ; 判别a

rl a

mov r5,a

ajmp loop1

ld: sjmp loop

table: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c8h

dlay: mov r7,#02h

dl1: mov r6,#0ffh

dl2: djnz r6,dl2

djnz r7,dl1

ret

time: mov th0,#0b1h

mov tl0,#0e0h

push psw

push acc

mov a,#0fh

orl p1,a

mov a,p1

anl a,#0fh

cjne a,#0,go_on ; 判断有无人进行抢答

inc r3

cjne r3,#25,back ; 判别时间

mov r3,#0

inc r4

mov a,r4

mov b,#10

div ab ; 到10秒后进位

mov 31h,a

mov 30h,b

cjne r4,#20,back ; 判断是否到20秒

cpl p1.7 ;20秒到,红灯亮

mov 32h,#10

clr tr0 ; 停止T/C0定时

sjmp back

go_on: clr tr0

jnb acc.0,two ; 判断 大于0转two

mov 32h,#01h ;1号选手抢答

sjmp back

two: jnb acc.1,three ; 判断大于0 转three

mov 32h,#02h

sjmp back

three: jnb acc.2,four ; 判断 大于0转four

mov 32h,#03h

sjmp back

four: mov 32h,#04h ;4号选手抢答

back: pop acc ; 出栈,即时间继续

pop psw

reti

start: setb tr0

reti

end

七: 各功能模块的调试

该抢答器系统主要包括定时器/计数器T/C的计数模块、LED 显示的模块、抢答中断服务程序模块。

设置T/C的工作方式、定时或计数初值,就可以使T/C工作了。由于最初对T/C的定时、计数初值的计算不是很理解,所以定时、计数初值计算了多次才得出正确的值。T/C0是定时功能,定时50ms ,T/C1是计数功能,计数到20。 LED 的显示程序为实验书上的原程序,运行一切正常,没遇到什么难题。 抢答中断服务程序模块可以说是该抢答器系统的核心部分。在这个模块遇到的问题是如何使INT1与4个竞赛者的按键(X0、X2、X3、X4)相连,并受这4个

按键的控制;设置/INT1的优先级最高,这样做使竞赛者按键以后,可以中断LED 的计数。

八:问题的不足:

我们所设计的抢答器可实现基本的操作功能, 可是还存在许多不足之处, 如计数器在时间到达20秒时不能自动终止而是继续记时; 还有当抢答时, 如果前一位选手抢答错误而继续抢答时, 前一个选手的号码不能自动被清除等等. 我们曾尝试改进可是没有什么成效.

结论

通过此次单片机设计实习,我学会了观察问题和搜集资料的方法;把自己在学校学到的知识转化为实验成果,积累了一定的经验,提高了分析问题和解决问题的实际能力。我体会到课程设计的各个环节,不是孤立的,每个环节都是必不可少的。在该课程设计的过程中,我深刻体会到了计算机研究工作的艰辛。自己觉得理论上可行的方法,在实验的过程中却不一定行得通。经过了一次又一次地修改程序和检查电路,终于完成了自己的课程设计。虽然它有许多的不完善,可我却有一种无法言表的喜悦与成就感。我明白了课程设计的过程,就是不断地改进与完善的过程。面对设计中遇到的问题,不要轻言放弃。通过自己的努力和虚心地向老师和同学请教和探讨,一定能将问题解决。

在开发设计过程中,由于知识有限,经验不足,课程设计时间短,难免有很多的不足,敬请老师指教,以待日后加以改进。

四人抢答器模拟实验报告

一、目的与要求

1. 目的:

(1)培养学生综合利用MCS-51单片机的软硬件知识进行程序设计的能力,解决一些实际问题。

(2)进一步加深对MCS-51单片机内部结构和程序设计方法的理解。

(3)提高学生建立程序文档、归纳总结的能力。

2. 基本要求:

(1)要求用MCS-51单片机知识完成程序的设计;

(2)源代码程序要求必要的注释。

3. 创新要求

在基本要求达到后,可以进行创新设计,如更加完善程序功能。

二、系统总体设计

基于MCS-51单片机的智能抢答器的设计,主要要实现以下几种功能:

(1)当主持人按下他的按键时,抢答开始,LED 显示器开始从0到20的定时记数。

(2)在20秒定时的时间内,如果有竞赛者要回答问题,那么按下自己的按键,此时,与该竞赛者对应的显示灯亮,并且LED 显示器的计时停止。先按键的竞赛者可屏蔽其他人的抢答信号。

(3)如果在20秒定时结束后,即LED 显示器显示20时,仍然没竞赛者按下按键回答问题,那么报警信号灯亮

(4)在20秒内,可以进行累加计时

三、硬件系统设计

该抢答器的设计是基于MCS-51单片机的,使用到的硬件主要有8051的P1口和P3口,LED 显示器,8155芯片及单片机内部的定时器/计数器T/C。

如图示(图1):

图1

1.使用4个开关分别代表4个选手控制号,用P1口中的P1.0,P1.1,P1.2,

P1.3表示四个选手

2.用P1.7(X6)表示红灯,P3口中的P3.2与外来脉冲连接,控制继续计时。

3. 资源分配:在设计过程中,用到了8051的P1口和P3口,主要是/INT0和/INT1,用竞赛者的按键X0、X2、X3、X4控制/INT1。当程序运行时,启动T/C计数,用8155芯片使LED 显示计;当/INT1产生有效信号时,停止T/C计数,LED 计时停止。

四、程序流程图(如图2) :

图2

五:系统软件设计

1. 主程序

主程序功能:完成单片机MCS-51的初始化操作;定时器初始化;等待定时器中断的发生;发生中断,则转入相应的中断服务程序,执行相应功能的子程序。主程序流程图如下(图3) :

图3

2. 子程序

子程序主要包括LED 显示的程序,定时器/计数器T/C程序,抢答的中断服务程序。

2.1 LED 显示程序

LED 计数的启动受到/INT0、/INT1、T/C0、T/C1的控制。

LED 显示程序的功能是:

a. 当/INT0产生有效信号,T/C0和T/C1启动后,LED 开始显示计数(从0到20)。

b. 当/ INT1产生有效信号后,使T/C0和T/C1停止工作,此时LED 停止在当时的计数值。这也就是说一轮抢答结束。

LED 显示程序的流程图如图(图4):

图4

2.2 定时器/计数器T/C程序

首先设置T/C0输出方波,且定时50ms ,再经过反向脉冲后为100ms , T/C1计数为20(工作方式已在主程序设置),这样1秒产生,LED20秒定时可以开始,接着判断LED 是否显示到20。如果到20,则报警。如果没显示到20,LED 继续计数。

T/C程序流程图如图(图5):

图5 2.3 抢答的子程序

抢答的子程序所完成的主要功能是:当主持人宣布抢答开始,并按下按键LED 开始计数后,竞赛者才能抢答。有竞赛者按下按键后,显示与之相对应的选手号,同时LED 计数停止。

抢答程序在抢答开始的20秒内,查询是否有人按键。也就是进入一段查询程序,其流程图如图6所示。

先读P1口,查询P1.0、P1.1、P1.2、P1.3的状态,判断几号竞赛者按下按键,根据查询结果转向各自的中断服务程序:使LED 显示的计数停止,与各按键相对应的号码被显示。

图6

六:程序

org 0000h

ajmp main

org 0003h

ajmp start

org 000bh

ajmp time

org 0030h

main: mov tmod,#1 ; 置T/C0为方式1、定时, 置T/C1为方式1、计数

mov th0,#0b1h ; 送T/C0定时初值

mov tl0,#0e0h

mov ie, #83h ; 设置中断

setb tr0 ; 启动T/C0定时

mov r3,#0

mov r4,#0

mov 30h,#0 ; 记时的个位显示

mov 31h,#0 ; 记时的十位显示

mov 32h,#0 ; 选手号

disp: mov sp,5fh

mov a,#03h ; 对8155初始化

mov dptr,#0ff20h

movx @dptr,a

loop: mov r5,#1

mov r0,#30h

mov a,r5

loop1: mov dptr,#0ff21h

movx @dptr,a

mov dptr,#0ff22h

mov a,@r0

add a,#0eh

movc a,@a+pc ; 查地址低字节

movx @dptr,a

acall dlay ; 调用延时子程序

inc r0

mov a,r5

jb acc.2,ld ; 判别a

rl a

mov r5,a

ajmp loop1

ld: sjmp loop

table: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c8h

dlay: mov r7,#02h

dl1: mov r6,#0ffh

dl2: djnz r6,dl2

djnz r7,dl1

ret

time: mov th0,#0b1h

mov tl0,#0e0h

push psw

push acc

mov a,#0fh

orl p1,a

mov a,p1

anl a,#0fh

cjne a,#0,go_on ; 判断有无人进行抢答

inc r3

cjne r3,#25,back ; 判别时间

mov r3,#0

inc r4

mov a,r4

mov b,#10

div ab ; 到10秒后进位

mov 31h,a

mov 30h,b

cjne r4,#20,back ; 判断是否到20秒

cpl p1.7 ;20秒到,红灯亮

mov 32h,#10

clr tr0 ; 停止T/C0定时

sjmp back

go_on: clr tr0

jnb acc.0,two ; 判断 大于0转two

mov 32h,#01h ;1号选手抢答

sjmp back

two: jnb acc.1,three ; 判断大于0 转three

mov 32h,#02h

sjmp back

three: jnb acc.2,four ; 判断 大于0转four

mov 32h,#03h

sjmp back

four: mov 32h,#04h ;4号选手抢答

back: pop acc ; 出栈,即时间继续

pop psw

reti

start: setb tr0

reti

end

七: 各功能模块的调试

该抢答器系统主要包括定时器/计数器T/C的计数模块、LED 显示的模块、抢答中断服务程序模块。

设置T/C的工作方式、定时或计数初值,就可以使T/C工作了。由于最初对T/C的定时、计数初值的计算不是很理解,所以定时、计数初值计算了多次才得出正确的值。T/C0是定时功能,定时50ms ,T/C1是计数功能,计数到20。 LED 的显示程序为实验书上的原程序,运行一切正常,没遇到什么难题。 抢答中断服务程序模块可以说是该抢答器系统的核心部分。在这个模块遇到的问题是如何使INT1与4个竞赛者的按键(X0、X2、X3、X4)相连,并受这4个

按键的控制;设置/INT1的优先级最高,这样做使竞赛者按键以后,可以中断LED 的计数。

八:问题的不足:

我们所设计的抢答器可实现基本的操作功能, 可是还存在许多不足之处, 如计数器在时间到达20秒时不能自动终止而是继续记时; 还有当抢答时, 如果前一位选手抢答错误而继续抢答时, 前一个选手的号码不能自动被清除等等. 我们曾尝试改进可是没有什么成效.

结论

通过此次单片机设计实习,我学会了观察问题和搜集资料的方法;把自己在学校学到的知识转化为实验成果,积累了一定的经验,提高了分析问题和解决问题的实际能力。我体会到课程设计的各个环节,不是孤立的,每个环节都是必不可少的。在该课程设计的过程中,我深刻体会到了计算机研究工作的艰辛。自己觉得理论上可行的方法,在实验的过程中却不一定行得通。经过了一次又一次地修改程序和检查电路,终于完成了自己的课程设计。虽然它有许多的不完善,可我却有一种无法言表的喜悦与成就感。我明白了课程设计的过程,就是不断地改进与完善的过程。面对设计中遇到的问题,不要轻言放弃。通过自己的努力和虚心地向老师和同学请教和探讨,一定能将问题解决。

在开发设计过程中,由于知识有限,经验不足,课程设计时间短,难免有很多的不足,敬请老师指教,以待日后加以改进。


相关文章

  • 四人抢答器的实验报告
  • 电气与自动化工程学院课程设计评分表 课程设计题目:微机原理与接口技术课程设计 班级:Y102101 学号:Y10210120姓名:王圣爽 指导老师: 年 月 日 常熟理工学院电气与自动化工程学院 课程设计说明书 课程名称: 微机原理与接口技 ...查看


  • 四人智力竞赛抢答器
  • 电子工艺实训报告 实训课题 智力竞赛抢答器的制作与调试 学号 ************* 年级 ** 学院 ***** 专业 *********** 姓名 ****** 指导教师 ****** 一.实训目的 (1) 学习识别简单的电子元件与 ...查看


  • 四路智能抢答器课程设计
  • 摘 要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异.此次设计提出一种用AT89C52单片机作为核心控制元件与电阻.液晶显示屏.蜂鸣器等构成硬件条件,再利用C语言编程来控制抢答器的功能实现. 本论文对抢答 ...查看


  • 单片机课设报告抢答器
  • 武汉理工大学华夏学院 课程设计报告书 课 程 名 称 单片机原理及应用课程设计 课程设计总评成绩 学生姓名.学 号 学 生 专 业 班级 自动化1133 指 导 教 师 姓名 课程设计起止日期 2015.12.21~2015.12.31 目 ...查看


  • 单片机课程设计:八位竞赛抢答器
  • 2013 - 2014学年 第2学期 <单片机应用技术> 课 程 设 计 报 告 题 目: 八 位 竞 赛 抢 答 器 专 业: 班 级: 姓 名: 指导教师: 成 绩: 电气工程学院 2014年 月 日 铜陵学院课程设计 课 ...查看


  • 2013八路抢答器课程设计
  • 课程设计报告 课程名称: 微机原理课程设计 题 目: 八路抢答器 学 院: 环境与化学工程 系:过程装备与测控工程 专 业: 测控技术与仪器 班 级: 测仪111 学 号: 学生姓名: 起讫日期:指导教师: 杨俊清.杨大勇 .熊剑 摘要 目 ...查看


  • 电装实习报告
  • 成都大学 电装实习报告书 院系:________________________ 姓名:________________________ 专业:________________________ 班级:____________________ ...查看


  • 单片机抢答器课程设计
  • 1 系统总体设计方案 1.1 设计课题任务 设计一个具有特定功能的抢答器. 1.2 功能要求说明 (1)该抢答器上电或按键复位后能自动显示系统提示符"P .". (2)主持人按下开始按钮后,抢答开始并限定时间30S . ...查看


  • 多路抢答器课程设计报告
  • 课 程 设 计 说 明 书 题目: 多路抢答器设计 二级学院 年级专业 学 号 学生姓名 指导教师 教师职称 机械工程学院 14级机械设计制造及其自动化 1401210012 曾骏 洪云 讲师 目录 摘要·················· ...查看


热门内容