导航:首页 > 操作系统 > asd单片机四路抢答器英文

asd单片机四路抢答器英文

发布时间:2022-09-22 11:08:45

‘壹’ 求四路抢答器电路原理图

原理图:

工作原理

抢答器由74LS148、74LS279、74LS48组成,LED显示器 开始时,当支持人按钮还未按是,CLR为0,所以输出Q1~Q4为0;

放光二极管全为灭的,当主持人按钮按下时CLR为1,可以输入,谁先抢答,相应的谁的灯亮,利用74LS279和74LS148输出的是cp等于0,锁存其他的,不能使其他的输出。

(1)asd单片机四路抢答器英文扩展阅读:

利用51单片机建立四路抢答器

单片机,当然不只是51,51单片机是一种稍通用型的单片机,通过I/O口的定义,可以实现多种控制功能。

抢答器,原理:如果为四路,当其中任一路控下后,其他几路即失效,结果为第一次按下的,可以用数码管或是LED灯来显示,当然这里只是讲原理与编程,具体可以根据抢答器路数及显示方式更改程序即可。

源程序如下:

<div class="blockcode"><blockquote>/*用的是AT89S52开发板,独立按键接口如下,就用这四路。先按下的用LED灯来显示,对应第一个到第四个LED灯,其他再按无效,如果想再次实现,可手动复位单片机*/

#include <reg52.h>

sbit key1=P3^0; //定义按键,根据需要连接线路,如独立按键(4路)

sbit key2=P3^1;

sbit key3=P3^2;

sbit key4=P3^3;

/*void delay(unsigned int cnt) //如果有抖动或是干扰,可以用个小延时去抖

{

while(--cnt);

}*/

void main()

{

bit Flag;

while(!Flag)

{

if(!key1)

{

P1=0xFE;

Flag=1;

}

/*LED灯来显示按下的键,第一个灯,我这里是8位LED灯,即:0111 1111,反过来读数为:1111 1110 即:0xFE *,P1口对应LED灯,给P1赋值*/

else if(!key2)

{

P1=0xFD;

Flag=1;

}

//第二个灯亮

else if(!key3)

{P1=0xFB;Flag=1;}

//第三个灯亮

else if(!key4)

{

P1=0xF7;

Flag=1;

}

//第四个灯亮,意味着第四路首先按下

}

while(Flag); //可以再加个I/O,控制Flag,这样初始化,继续抢答,还可以设计按下时的声音

}

‘贰’ 求proteus单片机c语言程序代码,四路抢答器

能把问题描述清楚看来程序实现对你来说不成问题,我用伪代码给你写出来你自己补充完整即可。
void main()
{
unsigned char key,cont;
bit flag = 0;
初始化IO口;\\关闭红灯点亮绿灯,数码管显示0
while(1)
{
key = P1&0xF;
if(key!=0xF)
{
/*按下的按键相应绿灯关闭*/
LED_G1 = (bit)(key&0x1);
LED_G2 = (bit)(key&0x2);
LED_G3 = (bit)(key&0x4);
LED_G4 = (bit)(key&0x8);
/*按下的按键相应红色LED闪烁*/
for(cont=0;cont<5;cont++)
{
LED_R1 = (~LED_G1)|flag;
LED_R2 = (~LED_G2)|flag;
LED_R3= (~LED_G3)|flag;
LED_R4 = (~LED_G4)|flag;
Delay();//延时
flag = ~flag;
}
关闭所有红色LED并开启所有绿色LED;
}
}
}

注意:代码是允许有同时按下的情况,当然也可以改为不允许同时按下的情况发生,即如果发生同时按下则随便选择一个按键,这样觉得有点不公平。

‘叁’ 用PLC设计4人抢答器,4人抢答按钮为X0~X3,对应灯为Y0~Y3,主持人按钮为X4,求画出梯形图

设计题目:四路抢答器的PLC控制
设计要求
竞赛者若要回答主持人所提问题时,必须先按下桌上的抢答按钮(SB1—SB4)。
绿色指示灯亮后,须等主持人按下复位按钮SB5后,指示灯才熄灭;
如果竞赛者在主持人打开 SA1开关10s内抢先按下按钮,电磁线圈将使彩球摇动,以示竞赛者得到一次幸运的机会;
如果在主持人打开SA1 开关10s内无人抢答,则必须有声音警示,同时红色指示灯亮,以示竞赛者放弃该题;
在竞赛者抢答成功后应限定一定的时间回答问题,根据题目难易可设定时间(如2 min);
当主持人打开SA2开关后计时开始,如果竞赛者在回答问题时超出设定时限,则红色指示灯亮并伴有声音提示,竞赛者停止回答问题。
设计任务
画出该抢答系统示意图(A2) .
画出PLC的I/O接线图(A2)
画出梯形图(A2)
说明工作原理。
编写30000字左右的设计说明书。
参考资料
黄净主编,《电器及PLC控制技术》,机械工业出版社,2002.
廖常初主编,《FX系列PLC编程及应用》,机械工业出版社,2006.
扬长能、林小峰主编,《可编程序控制器例题习题及实验指导》,重庆大学出版社,2001.

前言
在电气控制系统中,控制装置主要有两类:一类是传统的由继电器构成的控制系统;另一类是以微处理器为基础的可编程控制器。但由于可编程控制器具有可靠性高、通用性强、程序设计简单及便于安装调试等优点。它在工业中的各个领域中得到了广泛的应用。
可编程控制器的机型较多,但其基本结构和工作原理相同,基本指令、控制功能和编程方法类似。本设计书以PLC控制的四路抢答器为例,主要介绍了可编程控制器的基础知识、基本结构、指令系统、程序设计、控制系统等知识。本设计书结合了大量的图形,使设计一目了然。最后给出了主要的流程图、梯形图、详细注释及助记符语言等。
本设计书参考了众多可编程序控制器教学用书,结合自己所掌握的知识,并在韩金玲教师的认真帮助下完成。在此真诚的衷心的感谢韩金玲教师的帮助。
由于本人水平有限,错误和不妥之处再所难免,敬请各位老师批评指正。

编者
2008.

目录
毕业设计任务书......................................(1)
一、前言.............................................(2)
二、可编程控制器的特点及基本.....................(3)
1、 PLC的特点......................................(2)
2、PLC的基本结构.................................. (5
3、PLC的基本功能..................................()

PLC的特点
可编程控制器(PLC)是一种新型的通用自动化控制装置,它将传统的继电器控制技术、计算机技术和通讯技术融为一体,,具有通用性强、控制功能强,可靠性高,使用灵活方便、使用方便、适应面广、抗干扰能力强、编程简单等特点。易于扩展等优点而应用越来越广泛。
为适应工业环境使用,与一般控制装置相比较,PLC机有以下特点:
1. 可靠性高,抗干扰能力强
工业生产对控制设备的可靠性要求:
①平均故障间隔时间长
②故障修复时间(平均修复时间)短
任何电子设备产生的故障,通常为两种:
①偶发性故障。由于外界恶劣环境如电磁干扰、超高温、超低温、过电压、欠电压、振动等引起的故障。这类故障,只要不引起系统部件的损坏,一旦环境条件恢复正常,系统也随之恢复正常。但对PLC而言,受外界影响后,内部存储的信息可能被破坏。
②永久性故障。由于元器件不可恢复的破坏而引起的故障。
为了满足PLC“专为在工业环境下应用设计”的要求,PLC采用了如下硬件和软件措施:

·硬件措施:
主要模块均采用大规模或超大规模集成电路,大量开关动作由无触点的电子存储器完成,I/O系统设计有完善的通道保护和信号调理电路。
① 屏蔽——对电源变压器、CPU、编程器等主要部件,采用导电、导磁良好的材料进行屏蔽,以防外界干扰。
② 滤波——对供电系统及输入线路采用多种形式的滤波,如LC或π型滤波网络,以消除或抑制高频干扰,也削弱了各种模块之间的相互影响。
③ 电源调整与保护——对微处理器这个核心部件所需的+5V电源,采用多级滤波,并用集成电压调整器进行调整,以适应交流电网的波动和过电压、欠电压的影响。
④ 隔离——在微处理器与I/O电路之间,采用光电隔离措施,有效地隔离I/O接口与CPU之间电的联系,减少故障和误动作;各I/O口之间亦彼此隔离。
⑤ 采用模块式结构——这种结构有助于在故障情况下短时修复。一旦查出某一模块出现故障,能迅速更换,使系统恢复正常工作;同时也有助于加快查找故障原因。
·软件措施:
有极强的自检及保护功能。
①故障检测——软件定期地检测外界环境,如掉电、欠电压、锂电池电压过低及强干扰信号等。以便及时进行处理。
②信息保护与恢复——当偶发性故障条件出现时,不破坏PLC内部的信息。一旦故障条件消失,就可恢复正常,继续原来的程序工作。所以,PLC在检测到故障条件时,立即把现状态存入存储器,软件配合对存储器进行封闭,禁止对存储器的任何操作,以防存储信息被冲掉。
③设置警戒时钟WDT(看门狗)——如果程序每循环执行时间超过了WDT规定的时间,预示了程序进入死循环,立即报警。
④加强对程序的检查和校验——一旦程序有错,立即报警,并停止执行。
⑤对程序及动态数据进行电池后备——停电后,利用后备电池供电,有关状态及信息就不会丢失。
PLC的出厂试验项目中,有一项就是抗干扰试验。它要求能承受幅值为1000V,上升时间1nS,脉冲宽度为1μS的干扰脉冲。一般,平均故障间隔时间可达几十万~上千万小时;制成系统亦可达4~5万小时甚至更长时间。
2 .通用性强,控制程序可变,使用方便
PLC品种齐全的各种硬件装置,可以组成能满足各种要求的控制系统,用户不必自己再设计和制作硬件装置。用户在硬件确定以后,在生产工艺流程改变或生产设备更新的情况下,不必改变PLC的硬设备,只需改编程序就可以满足要求。因此,PLC除应用于单机控制外,在工厂自动化中也被大量采用。
3.功能强,适应面广
现代PLC不仅有逻辑运算、计时、计数、顺序控制等功能,还具有数字和模拟量的输入输出、功率驱动、通信、人机对话、自检、记录显示等功能。既可控制一台生产机械、一条生产线,又可控制一个生产过程。
4.编程简单,容易掌握
目前,大多数PLC仍采用继电控制形式的“梯形图编程方式”。既继承了传统控制线路的清晰直观,又考虑到大多数工厂企业电气技术人员的读图习惯及编程水平,所以非常容易接受和掌握。梯形图语言的编程元件的符号和表达方式与继电器控制电路原理图相当接近。通过阅读PLC的用户手册或短期培训,电气技术人员和技术工很快就能学会用梯形图编制控制程序。同时还提供了功能图、语句表等编程语言。
PLC在执行梯形图程序时,用解释程序将它翻译成汇编语言然后执行(PLC内部增加了解释程序)。与直接执行汇编语言编写的用户程序相比,执行梯形图程序的时间要长一些,但对于大多数机电控制设备来说,是微不足道的,完全可以满足控制要求。
5.减少了控制系统的设计及施工的工作量
由于PLC采用了软件来取代继电器控制系统中大量的中间继电器、时间继电器、计数器等器件,控制柜的设计安装接线工作量大为减少。同时,PLC的用户程序可以在实验室模拟调试,更减少了现场的调试工作量。并且,由于PLC的低故障率及很强的监视功能,模块化等等,使维修也极为方便。
6.体积小、重量轻、功耗低、维护方便
PLC是将微电子技术应用于工业设备的产品,其结构紧凑,坚固,体积小,重量轻,功耗低。并且由于PLC的强抗干扰能力,易于装入设备内部,是实现机电一体化的理想控制设备。以三菱公司的F1-40M型PLC为例:其外型尺寸仅为305×110×110mm,重量2.3kg,功耗小于25VA;而且具有很好的抗振、适应环境温、湿度变化的能力。现在三菱公司又有FX系列PLC,与其超小型品种F1系列相比:面积为47%,体积为36%,在系统的配置上既固定又灵活,输入输出可达24~128点。

PLC的基本结构
一般讲,PLC分为箱体式和模块式两种。但它们的组成是相同的,对箱体式PLC,有一块CPU板、I/O板、显示面板、内存块、电源等,当然按CPU性能分成若干型号,并按I/O点数又有若干规格。对模块式PLC,有CPU模块、I/O模块、内存、电源模块、底板或机架。无任哪种结构类型的PLC,都属于总线式开放型结构,其I/O能力可按用户需要进行扩展与组合。PLC的基本结构框图如下:

接受 驱动
现场信号 受控元件

一、CPU的构成
PLC中的CPU是PLC的核心,起神经中枢的作用,每台PLC至少有一个CPU,它按PLC的系统程序赋予的功能接收并存贮用户程序和数据,用扫描的方式采集由现场输入装置送来的状态或数据,并存入规定的寄存器中,同时,诊断电源和PLC内部电路的工作状态和编程过程中的语法错误等。进入运行后,从用户程序存贮器中逐条读取指令,经分析后再按指令规定的任务产生相应的控制信号,去指挥有关的控制电路,
与通用计算机一样,主要由运算器、控制器、寄存器及实现它们之间联系的数据、控制及状态总线构成,还有外围芯片、总线接口及有关电路。它确定了进行控制的规模、工作速度、内存容量等。内存主要用于存储程序及数据,是PLC不可缺少的组成单元。
CPU的控制器控制CPU工作,由它读取指令、解释指令及执行指令。但工作节奏由震荡信号控制。
CPU的运算器用于进行数字或逻辑运算,在控制器指挥下工作。
CPU的寄存器参与运算,并存储运算的中间结果,它也是在控制器指挥下工作。
CPU虽然划分为以上几个部分,但PLC中的CPU芯片实际上就是微处理器,由于电路的高度集成,对CPU内部的详细分析已无必要,我们只要弄清它在PLC中的功能与性能,能正确地使用它就够了。
CPU模块的外部表现就是它的工作状态的种种显示、种种接口及设定或控制开关。一般讲,CPU模块总要有相应的状态指示灯,如电源显示、运行显示、故障显示等。箱体式PLC的主箱体也有这些显示。它的总线接口,用于接I/O模板或底板,有内存接口,用于安装内存,有外设口,用于接外部设备,有的还有通讯口,用于进行通讯。CPU模块上还有许多设定开关,用以对PLC作设定,如设定起始工作方式、内存区等。
二、I/O模块:
PLC的对外功能,主要是通过各种I/O接口模块与外界联系的,按I/O点数确定模块规格及数量,I/O模块可多可少,但其最大数受CPU所能管理的基本配置的能力,即受最大的底板或机架槽数限制。I/O模块集成了PLC的I/O电路,其输入暂存器反映输入信号状态,输出点反映输出锁存器状态。
三、电源模块:
有些PLC中的电源,是与CPU模块合二为一的,有些是分开的,其主要用途是为PLC各模块的集成电路提供工作电源。同时,有的还为输入电路提供24V的工作电源。电源以其输入类型有:交流电源,加的为交流220VAC或110VAC,直流电源,加的为直流电压,常用的为24V。
四、底板或机架:
大多数模块式PLC使用底板或机架,其作用是:电气上,实现各模块间的联系,使CPU能访问底板上的所有模块,机械上,实现各模块间的连接,使各模块构成一个整体。
五、PLC 的外部设备
外部设备是PLC系统不可分割的一部分,它有四大类
编程设备:有简易编程器和智能图形编程器,用于编程、对系统作一些设定、监控PLC及PLC所控制的系统的工作状况。编程器是PLC开发应用、监测运行、检查维护不可缺少的器件,但它不直接参与现场控制运行。
监控设备:有数据监视器和图形监视器。直接监视数据或通过画面监视数据。
存储设备:有存储卡、存储磁带、软磁盘或只读存储器,用于永久性地存储用户数据,使用户程序不丢失,如EPROM、EEPROM写入器等。
输入输出设备:用于接收信号或输出信号,一般有条码读人器,输入模拟量的电位器,打印机等。
六、PLC的通信联网
PLC具有通信联网的功能,它使PLC与PLC 之间、PLC与上位计算机以及其他智能设备之间能够交换信息,形成一个统一的整体,实现分散集中控制。现在几乎所有的PLC新产品都有通信联网功能,它和计算机一样具有RS-232接口,通过双绞线、同轴电缆或光缆,可以在几公里甚至几十公里的范围内交换信息。
当然,PLC之间的通讯网络是各厂家专用的,PLC与计算机之间的通讯,一些生产厂家采用工业标准总线,并向标准通讯协议靠拢,这将使不同机型的PLC之间、PLC与计算机之间可以方便地进行通讯与联网。
了解了PLC的基本结构,我们在购买程控器时就有了一个基本配置的概念,做到既经济又合理,尽可能发挥PLC所提供的最佳功能。

‘肆’ 求四路抢答器

四路原理很简单,这在电子技术相关书籍上都有的介绍。我也懒得去翻书了,帮你找到点资料,参考一下:
也许加上你自己的想法可以得到一些改进。
http://www.jusi.cc/Sjjc/ShowArticle.asp?ArticleID=77

实战四《简易四路抢答器》
;该抢答器供不多于4个参赛队或者个人的抢答比赛场合使用。每个参赛队的座位前
;安装1只抢答按钮开关(用板上的S9、S10、S11、S12)和一个信号灯(D4、D5、D6、D7)。
;主持人座位前装一只复原开关(板上S3)、1只蜂鸣器(板上BUZ1)和一个抢答器工作状态
;指示灯(D10),每当主持人口头发出号令之后.哪个队先按下座位上的按钮开关,该座位的信
;号灯就先被点亮,同时封锁其他按钮开关的活动.并且熄灭主持人座位上的状态指示灯和发出
;三声类似于电话振铃的提示声,以声明此次抢答动作已经完成.在主持人确认后,按下复原按钮
;,状态指示灯重新点亮,并且同时发出"笛-笛-"声,为下一次抢答作好准备.
;PIC单片机学习网 陈学乾 http://www.pic16.com
;程序文件名:"MCD-INTBUZ.ASM"
;*********************************************************************
;程序清单
;*********************************************************************
tmr0 equ 1h ;定义定时器/计数器0寄存器地址
status equ 3h ;定义状态寄存器地址
option_reg equ 81h ;定义选项寄存器地址
option_temp equ 0a6h ;(在BACK1)定义选项寄存器的备份寄存器的地址
intcon equ 0bh ;定义中断控制寄存器地址
portc equ 7h ;定义端口RC的数据寄存器地址
trisc equ 87h ;定义端口RC的方向控制寄存器地址
portb equ 06h ;定义端口RB的数据寄存器地址
trisb equ 86h ;定义端口RB的方向控制寄存器地址
c equ 0 ;定义进位标志位的位地址
z equ 2 ;定义0标志位的位地址
w equ 0 ;定义传送目标寄存器为W的指示位
f equ 1 ;定义传送目标寄存器为RAM的指示位
t0if equ 2 ;定义TMR0中断标志位的位地址
t0ie equ 5 ;定义TMR0中断使能位的位地址
inte equ 4 ;定义外部中断使能位的位地址
intf equ 1 ;定义外部中断标志位的位地址
count equ 20h ;定义一个计数器变量
count1 equ 24h ;定义一个计数器变量
count2 equ 25h ;定义一个计数器变量
count3 equ 27h ;定义一个计数器变量
count4 equ 28h ;定义一个计数器变量
portb_b equ 21h ;为PORTC定义一个备份寄存器
w_temp equ 7fh ;为W在体0和体1定义2个备份寄存器
;w_temp equ 0ffh ;(若是16F873/4,则需保留FFH单元)
status_temp equ 23h ;为STATUS定义一个备份寄存器
rp0 equ 5h ;定义状态寄存器中的页选位RP0
;******************复位向量和中断向量***********************
org 000h ;
nop ;设置一条ICD必须的空操作指令
goto main ;
org 0004h ;
goto serv ;跳转到中断服务子程序
;*******************主程序************************************
main
bsf status,rp0 ;
movlw 0 ;
movwf trisc ;设置RC口全部为输出
movlw 0ffh ;
movwf trisb ;设置RB口全部为输入
movlw 02h ;设置选项寄存器:上拉电阻启用;INT下降沿触发
movwf option_reg ;分频器给TMR0;分频比1:8
bcf status,rp0 ;
movlw 90h ;
movwf intcon ;开发INT中断
clrf portc ;RC口灯全灭
loop
movf portb,w ;读取RB口数据
iorlw b'11100001' ;送RB口的数到备份寄存器并将除S9、S10、S11、S12以外的位全部送1
movwf portb_b ;
xorlw 0ffh ;没有键按下转LOOP继续检测
btfsc status,z ;
goto loop ;
call delay10ms ;防抖动廷时
movf portb,w ;
iorlw b'11100001' ;
xorwf portb_b,0 ;再次读取RB口的数据,与前一次读的数相同则键值有效
btfsc status,z ;
goto loop ;
comf portb_b,w ;取反以便使被按下按键的位为1,其它位为0
movwf portc ;送RC口显示
call tone3t ;调用发声三次子程序
loop1
comf portb,w ;检测按键是否有松开
andlw b'00011110' ;
btfsc status,z ;
goto loop ;松开了返回
goto loop1 ;没松开继续检测
;*********************中断服务子程序*****************************
serv
;********************保存护现场部分*******************************
movwf w_temp ;保护W
swapf status,w ;保护STATUS
clrf status ;选择体0
movwf status_temp ;将STATUS存入体0的备份寄存器
;********************* 调查中断源**********************************
btfsc intcon,intf ;检查不是INT中断,返回
goto intserv ;是!转到INT中断处理部分
goto retfie0 ;
;*********************INT中断处理部分******************************
intserv
clrf portc ;令全部灯熄灭
bsf portc,7 ;点亮D10,表示就绪
call tone630 ;调用高音子程序
call delay ;调用1S廷时子程序
call tone630 ;调用低音子程序
bcf intcon,intf ;清除INT中断标志位
;*************************恢复现场部分*****************************
retfie0
swapf status_temp,w ;恢复STATUS
movwf status ;
swapf w_temp,f ;恢复W
swapf w_temp,w ;
retfie ;中断返加
;*************************低音调发生子程序(500HZ/50MS)*************
tone500
movlw .50 ;循环次数寄存器赋初值
movwf count ;50=500HZx0.05Sx2
t5lop
bcf intcon,t0if ;清除TRM0溢出中断标志位
movlw .131 ;给TMR0装入初值256-125=131
movwf tmr0 ;启动定时器
t5here
btfss intcon,t0if ;定时器溢出否
goto t5here ;否!循环栓测
movlw b'01000000' ;只将BIT6置位
xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变
decfsz count,f ;循环次数递减,为0,跳一步
goto t5lop ;不为0,跳回
return ;返回
;**************************高音调发生子程序(630HZ/50MS)*****************
tone630
movlw .63 ;循环次数寄存器赋初值
movwf count1 ;63=630HZx0.05Sx2
t6lop
bcf intcon,t0if ;清除TRM0溢出中断标志位
movlw .157 ;给TMR0装入初值157=256-99
movwf tmr0 ;启动定时器
t6here
btfss intcon,t0if ;定时器溢出否
goto t6here ;否!循环栓测
movlw b'01000000' ;只将BIT6置位
xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变
decfsz count1,f ;循环次数递减,为0,跳一步
goto t6lop ;不为0,跳回
return ;返回
;*********************发声1S子程序(1S=10x(50ms+50ms)***********
tonels
movlw .10 ;循环次数寄存器赋初值
movwf count2 ;
t1lop
call tone500 ;调用低音子程序
call tone630 ;调用高音子程序
decfsz count2,f ;循环次数递减,为0,跳一步
goto t1lop ;不为0,跳回
return ;返回
;*********************TMR0廷时子程序1S(1S=16x256x(256-12)US)********
delay
bsf status,rp0 ;设置文件寄存器体1
movf option_reg,w ;保护选项寄存器内容
movwf option_temp ;
movlw 07h ;重设选项寄存器;上拉电阻启用,INT下降沿触发
movwf option_reg ;分频器给TRM0;分频比值设为1:256
bcf status,rp0 ;恢复到文件寄存器体0
movlw .16 ;循环利用TMROP定时16次
movwf count3 ;溢出次数寄存器
d1lop
bcf intcon,t0if ;清除TMR0溢出中断标志位
bcf intcon,t0ie ;清除TMR0溢出中断使能位
movlw .12 ;给TMR0装入初值12=256-244
movwf tmr0 ;启动定时器
here
btfss intcon,t0if ;用查询法检测TMR0溢出否
goto here ;否!返回
decfsz count3,f ;是!溢出次数减1,为0,跳一步
goto d1lop ;否!循环利用TMR0
bsf status,rp0 ;设置文件寄存器体1
movf option_temp,w ;恢复选项寄存器内容
movwf option_reg ;
bcf status,rp0 ;恢复到文件寄存器体0
return ;返回
;*************************断续发声3次报警子程序***********************
tone3t
movlw .3 ;循环次数寄存器赋初值
movwf count4 ;
t3lop
call tonels ;调用发声1S子程序
call delay ;调用廷时1S子程序
decfsz count4,f ;循环次数递减,为0,跳一步
goto t3lop ;不为0,跳回
return ;返回
;**************************软件廷时10MS子程序****************************
delay10ms
movlw .13 ;将外层循环参数值送到30H
movwf 30h ;
lp0
movlw 0ffh ;将内层循环参数值送到31H
movwf 31h ;
lp1
decfsz 31h,1 ;变量31H内容递减,若为0则跳跃
goto lp1 ;跳转到LP1
decfsz 30h,1 ;变量30H内容递减,若为0则跳跃
goto lp0 ;跳转到LP0
return ;返回主程序
end ;源程序结束
;***************************************************
; 进入该实战演练的工序流程如下:
; 1.创建源文件和编辑源文件;在此介绍一种不同于前面讲的创建源文件的方法,用Windows附件中的”记事本”
; 这个为大家所熟知和好用的文件编辑器,并且可以方便的加入中文注释.不过有两点需要注意,一是注释前面的
; 分号”;”必须用西文半角输入;二是必须用”.asm”扩展名存储到事先建立的一个专用子目录下.
; 2.打开MPLAB集成开发环境:首先在WINDOWS环境下,选用开始>程序>Microchip MPLAB>MPLAB命令,启动MPLAB
; 并进入MPLAB的桌面.
; 3.创建项目:选用菜单File>New或Project>New Project,在事先建立的一个专用子目录下创建一个新项目,将
; 用记事本创建的源文件加入到该项目中.
; 4.建立项目中的目标文件:选择菜单Project >Build All(项目>建立所有文件),MPLAB将自动调用MPASM将项目
; 文件管理下的源文件(.asm)汇编成十六进制的目标文件(.hex).
; 5.ICD参数设置:通过菜单命令Project>Edit Project或者Option>Development Mode,将开发模式设置为
; ”MPLAB ICD Debugger”,点击OK按钮,打开ICD的工作窗口,在调试阶段,可以按照说明书图2-10设置各项,但需注意
; OSCILLATOR应设置为XT方式,尤其需要说明的是,选中“Enable Debug Mode”(使能调试模式)选项,在向目
; 标单片机烧写机器码程序时,会将调试临控程序同时写入单片机的指定程序存储器区域,然后才允许用ICD方式调试。
; 6.电路设置:将演示板的S1全部拔到ON,S4全部拔到OFF,S13的第1、第5拔到ON,第6、第7拔到OFF ,LCD不要插在演示板上,
; 以使端口C只与8只发光二极管接通;将用于选择频率的插针跳线插到”XT OSC”位置上,板上93CXX、24CXX应拿下。
; 7.向目标单片机烧写目标程序:用户在点击功能按钮”Program”向目标单片机烧写机器码程序时,会等待一段时间,
; 并且在条状的状态信息栏中,出现提示信息。有一点需要引起注意,就是PIC16F87X单片机的FLASH程序存储器的擦写
; 周期是有限的,大约为1000次,应尽量节省它的使用寿命。
; 8.运行和调试用户程序和用户电路:在各项参数设置好后,将ICD的工作窗口最小化,利用前面讲的”运行及调试”中介
; 绍的几种方法进行调试.当用自动单步方式调试时,建议临时禁止廷时子程序发挥作用,具体的方法是,可在CALL DELAY指
; 令前添加一个分号,并且重新汇编一次.为了学习目的,在调试过程中可以人为地加入一些软件漏洞(BUG)或硬件故障,来模
; 仿单片机端口引脚的片内或片外故障.
; 9.定型烧写目标单片机;经过多次重复上述步骤的反复修改和调试,使得程序和电路在联机状态完全正常,这时可以进行
; 定型烧写,即将ICD窗口中的”Enable Debug Mode”(使能调试模式)选项消除,不再将调试临控程序写入单片机中.
; 10.独立运行验收:上一步中的烧写过程完成后,即可将ICD模块和ICD仿真头(或演示板)之间的6芯电缆断开,让单片机在
; 演示板独立运行,观察实际效果.

‘伍’ AT89C51单片机8路抢答器C语言代码怎么写,急用,谢谢了

这个代码没有问题,我仿真过:
#include<reg51.h>
#defineucharunsignedchar
uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbitrstkey=P2^2;
sbitspeaker=P2^0;
voiddelay()//延时约400毫秒
{
uchari,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++);
}
main()
{
uchari,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case0x01:i=1;break;
case0x02:i=2;break;
case0x04:i=3;break;
case0x08:i=4;break;
case0x10:i=5;break;
case0x20:i=6;break;
case0x40:i=7;break;
case0x80:i=8;break;
default:break;
}
P1=table[i];//显示按下抢答器的号
P0=key;//显示按下键号的LED
while(1)
{
if(rstkey==0)break;//主持人按下复位键则重新开始
speaker=~speaker;//否则蜂鸣器报警
delay();
}
}
}

阅读全文

与asd单片机四路抢答器英文相关的资料

热点内容
欧姆龙plc编程软件使用教程 浏览:590
ai文件pdf 浏览:909
腾讯云服务器挂载混合云 浏览:758
智能小车用什么单片机 浏览:463
java怎么给窗口关闭 浏览:940
列举51单片机的寻址方式 浏览:706
剪辑app怎么写长篇文字 浏览:400
app专属流量过月租怎么不更新 浏览:654
王者程序员都有谁 浏览:76
给牛换脚掌解压 浏览:387
围棋有多少种算法 浏览:602
unity资源包在哪个文件夹 浏览:704
阿里云服务器远程链接不成功 浏览:482
文件系统pdf 浏览:766
原神安卓区服什么意思 浏览:37
贝壳app怎么线上发布 浏览:159
如何挑选安卓系统机顶盒 浏览:54
安卓快充使用有什么注意事项 浏览:909
黑马程序员的云计算网课 浏览:947
endnotestyle文件夹怎么导入 浏览:461