[1] 张毅刚.《新编MCS51单片机应用设计(第三版)》,哈尔滨:哈尔滨工业大学出版社,2008[2] 何立民.《单片机应用技术选编》,北京:北京航空大学出版社,1998[3] 李华.《MCS-51系列单片机使用接口技术》,北京:北京航空航天大学出版社,1993[4] 彭为.《单片机典型系统设计实例精讲》,北京:电子工业出版社,2006[5] 潘永雄.《新编单片机原理与应用》,西安:西安电子科技大学出版社,2003[6] 童诗白,华成英,《模拟电子技术基础》,北京:高等教育出版社,2000[7] 阎石主.《数字电子技术基础》,北京:高等教育出版社,1998[8] 樊昌信,曹丽娜.《通信原理》,北京:国防工业出版社,2007[9] 李瀚荪.《电路分析基础》,北京:高等教育出版社1991毕 业 论 文(设 计)开 题 报 告[10] Suh, Charles W.O’Donnell, Srinivas Devadas, Aegis:a single-chip secure processor, IEEE Design and Test of Computers.2008,24(6)570-580.[11] Mt. 51 Family of Microcontrollers Architectural Overview. September 1993
【1】[J],2002【2】[J]..【3】MeehanJoanne,[J]..看着有用的用吧,单片机很多东西,也不知道你的具体是哪个方面的。
这个可以到microchip公司的网站上下载,都是英语的,想要什么都有, 是这个公司的主页
计算机类的期刊
属于科技核心,但目前不是中文核心。
《单片机与嵌入式系统应用》为国家级期刊。
主管单位:工业和信息化部
主办单位:北京航空航天大学
ISSN:1009-623X CN:11-4530/V
地址:北京海淀区学院路37号《单片机与嵌入式系统应用》杂志社 邮政编码:100191
电话:; Email: 网址:
定位在单片机与嵌入式系统的基础应用领域,突出单片机与嵌入式系统中的一些基本的软硬件技术、集成开发环境、新产品、新技术等。既有别于对象专业期刊中的嵌入式系统的对象项目应用,也有别于一般电子类期刊中从电子技术应用、电子元器件角度介入嵌入式系统应用。
主要栏目:业界论坛、专题论述、技术纵横、新器件新技术、应用天地、经验交流、学习园地、产业技术与信息、编读往来。
中国期刊全文数据库 共找到 4 条[1]黄家升. 基于IAP的单片机软件远程升级[J]. 舰船电子对抗, 2007,(03) . [2]杨美仙. 单片机的发展及其应用[J]. 科技信息(学术研究), 2007,(35) . [3]陈寿元. 单片机多机通信网络改进及数据通信容错技术[J]. 山东师范大学学报(自然科学版), 2006,(02) . [4]栗欣,周东辉,孙晓苗,李立. 单片机程序远程升级的设计[J]. 微计算机信息, 2006,(32) . 中国期刊全文数据库 共找到 10 条[1]张志利,张晓峰,朱力. FPGA的单片机多机串行通信网络[J]. 单片机与嵌入式系统应用, 2009,(03) . [2]姚晓光. 基于GPRS的单片机固件升级系统设计[J]. 单片机与嵌入式系统应用, 2010,(06) . [3]李辉,宁祎,邓遵义. SPCE061A单片机程序存储器的扩展技术[J]. 机电产品开发与创新, 2008,(04) . [4]向鹏,李绣峰,杜遥雪. 分布式全电动注塑机控制系统[J]. 机械与电子, 2007,(05) . [5]李俊,王金海. 基于TFTP协议的ARM软件远程更新系统[J]. 工矿自动化, 2010,(07) . [6]朱飞龙,杨鸣. 基于IAP功能单片机的远程更新系统设计[J]. 机电工程, 2010,(09) . [7]杨峰,张德跃. 一种使用双簇首的分簇路由协议的研究[J]. 山东师范大学学报(自然科学版), 2007,(03) . [8]周茂霞. 基于Windows API函数编程的PC机与单片机多机通信的实现[J]. 山东师范大学学报(自然科学版), 2007,(03) . [9]向鹏,李绣峰,杜遥雪. 全电动注射成型机控制系统设计[J]. 塑料, 2007,(02) . [10]张志利. 基于RS232协议的单片机多机通信网络研究[J]. 自动化技术与应用, 2009,(04) . 中国优秀硕士学位论文全文数据库 共找到 6 条[1]杨秀栋. SOC的存储器IP嵌入技术研究[D]. 电子科技大学, 2008 . [2]曾永龙. 冶金除尘风机状态监测与故障诊断系统研究[D]. 武汉科技大学, 2008 . [3]曹鹏. 基于M30626FJPGP芯片汽车音响系统设计[D]. 大连海事大学, 2008 . [4]程龙飞. 多参数综合可靠性加速试验环境测控系统的研究[D]. 浙江大学, 2010 . [5]任红文. 加速器高频自动频率调谐系统的设计与实现[D]. 兰州大学, 2010 . [6]季雪峰. 智能模拟信号采集卡的设计与实现[D]. 复旦大学, 2010 .
可以找我,完全满足你所需要的功能,空间里有。
基于MCS-51系列单片机AT89S51的八路抢答器
基于MCS-51系列单片机AT89S51的八路抢答器
前言
随着现代电子电路的快速发展,以及电子行业对现有电子工程技术的不断需求,特别是对实际操作实践的电子人才的需求越来越多,所以加强学生动手能力、重视实践应该是电子发展需求的必然趋向。实践动手能力的培养是一种综合能力,这种能力当然是在一定难度的前提下完成的,通过一定数量的实践才能逐步形成的。因此在培养实践能力的同时,要通过实践来不断的发现问题和解决问题的途径和方法,从而提高实践能力。
近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新的工程应用技术。本次实习设计的题目为基于单片机的抢答器。
在本次的课程设计中我主要负责了该系统的印制电路板PCB的制作
一、方案论证
方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。
方案二:该系统采用MCS-51系列单片机AT89S51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改性。 CS-51单片机特点如下:
1> 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU ,程序指令和数据都可以烧写在ROM许多信号通道都在同一芯片,因此可靠性高。
2> 易扩充:单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统
3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。原理框图如1-1所示;
图1-1
方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外AT89S51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。
二、原理分析
1. 本电路采用单片机AT89C51作为控制芯片,单片机的P0口外接八个发光二极管,每个发光二极管分别作为八位选手的信号指示灯。并在各个外接电路上并接开关按键,按键另一端接地。发光二极管采用共阳极接法,由于P0口为高电平呈输入状态,当有按键按下时,P0口呈低电平与按键对应的发光二极管满足点亮条件点亮。在程序编程上采用查询,查询P0口P0。0到P0。7的八个端口呈低电平,即查询是哪个选手先按键,然后将选手号码的字节数据送至串行口输出并在数码管上显现出来。
2. 蜂鸣器是利用三极管处于开关状态是的导通与截止工作,在三极管导通时蜂鸣器工作,三极管截止时蜂鸣器不工作。三极管采用8550 PNP型基极接于P1。2口置其低电平时三极管导通,置其高电平时三极管截止。
3. 数码管采用共阳极七段显示,其内部发光二极管为共阳极接高电平,当对应发光二极管一端为低电平时发光二极管点亮,显示的数字或字符由送入的字节数据控制,字节数据的输出采用串形口工作模式0,8位串行字节数据的输出通过RXD端口送出,TXD端用于送出同步移位脉冲,作为外接器件的同步移位信号。数据的发送是在TI=0的情况下,由一写发送缓冲器的指令开始CPU执行完该指令,串行口即将8位数据从RXD端送出,同时TXD端发出同步移位脉冲。8位数据发送完毕后由硬件置位TI=1,通过查询TI位来确定是否发送完一组数据,TI=1表示发送缓冲器已空,当要发送下一组数据时用软件使TI清零,然后即可发送下一组数据。
4. 软件设计分析首先在程序的开始为选手设置了一段违规程序,该程序的作用是为了防止选手在主持人没有按下抢答键时,有的选手已经提前抢答了,本次抢答为无效抢答,并有报警和记录下该位选手的选号,做违规处理,如果选手超出了在规定的提前抢答次数,则该选手将被取消以后的抢答资格。如果在主持按下抢答键时再抢答,该次抢答被视为有效抢答,在主持按下回答问题的键时选手就可以在规定的时间内回答问题了
图1-2
<1> 选手查询程序:
ORG 0000H
START:CLR A
MOV A,#0FFH
MOV P0,A
LOP:JNB P2。4,LP
JNB P0。0,SA1
JNB P0。1,SA2
JNB P0。2,SA3
JNB P0。3,SA4
JNB P0。4,SA5
JNB P0。5,SA6
JNB P0。6,SA7
JNB P0。7,SA8
SJMP LOP
SA1:AJMP SB1
SA2:AJMP SB2
SA3:AJMP SB3
SA4:AJMP SB4
SA5:AJMP SB5
SA6:AJMP SB6
SA7:AJMP SB7
SA8:AJMP SB8
LP:MOV R0,#9
LOP1:LCALL LED
LCALL DEL
JNB P0。0,SIP1
JNB P0。1,SIP2
JNB P0。2,SIP3
JNB P0。3,SIP4
JNB P0。4,SIP5
JNB P0。5,SIP6
JNB P0。6,SIP7
JNB P0。7,SIP8
DEC R0
CJNE R0,#0,LOP1
MOV R0,#0
LCALL LED
LCALL DEL
SJMP LOP
SIP1:AJMP DIP1
SIP2:AJMP DIP2
SIP3:AJMP DIP3
SIP4:AJMP DIP4
SIP5:AJMP DIP5
SIP6:AJMP DIP6
SIP7:AJMP DIP7
SIP8:AJMP DIP8
SB1:MOV R2,#1
LCALL LED1
LCALL DE
SJMP LP1
SB2:MOV R2,#2
LCALL LED1
LCALL DE
SJMP LP1
SB3:MOV R2,#3
LCALL LED1
LCALL DE
SJMP LP1
SB4:MOV R2,#4
LCALL LED1
LCALL DE
SJMP LP1
SB5:MOV R2,#5
LCALL LED1
LCALL DE
SJMP LP1
SB6:MOV R2,#6
LCALL LED1
LCALL DE
SJMP LP1
SB7:MOV R2,#7
LCALL LED1
LCALL DE
SJMP LP1
SB8:MOV R2,#8
LCALL LED1
LCALL DE
SJMP LP1
LP1:JNB P2。4,LOP2
SJMP LP1
DIP1:MOV R2,#1
LCALL LED1
LCALL DE
SJMP LH1
DIP2:MOV R2,#2
LCALL LED1
LCALL DE
SJMP LH1
DIP3:MOV R2,#3
LCALL LED1
LCALL DE
SJMP LH1
DIP4:MOV R2,#4
LCALL LED1
LCALL DE
SJMP LH1
DIP5:MOV R2,#5
LCALL LED1
LCALL DE
SJMP LH1
DIP6:MOV R2,#6
LCALL LED1
LCALL DE
SJMP LH1
DIP7:MOV R2,#7
LCALL LED1
LCALL DE
SJMP LH1
DIP8:MOV R2,#8
LCALL LED1
LCALL DE
SJMP LH1
LH1:JNB P2。4,LOOP
SJMP LH1
LOP2:MOV A,#11H
MOV SBUF,A
JNB TI,$
CLR TI
LCALL DEL
AJMP LOP
<2> 串行输出程序:
该部分程序的设计利用了单片机的串行模式0输出,该输出方式占用IO口少。可以省去许多IO口作为功能的扩展使用。在该模式下,我们采用了输出查询的方式,就是要借助发送标志TI,当程序执行到发送标志位时,查询其标志位TI的值,只要TI的值是0程序就继续查询,知道查询到TI为1时才结束,然后在进入下一组数据的发送。由于串行输出时送进去的数都是十进制数,以致计算机不能识别,所以还要把送进去的十进制数转化成而进制数,这样才能输出。因此在输出程序前必须有拆字程序,把原来送进去的十进制数转化成二进制数,然后在输出并通过数码管显示出来。但是如果在显示选手选号与显示选手回答问题所用的到计同用一段串行输出程序时就会造成程序的混乱,所以在此处设计了两段初始值不同的显示程序,从而可能增加了程序的烦琐化。
LED1:MOV A,R2
MOV B,#10
DIV AB
MOV R1,A
MOV R3,B
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,R3
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
RET。
LED:MOV A,R0
MOV B,#10
DIV AB
MOV R1,A
MOV R3,B
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,R3
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
RET
DE:CLR P1。2
LCALL DEL01
SETB P1。2
LCALL DEL01
RET
TAB:DB 11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H
RET
END
<3>倒计时程序
该程序为选手回答问题时的30秒倒计时程序,其中前25秒为正常的倒计时,在后5秒倒计时时伴随有报警声,用于提示选手回答问题的剩余时间。如果该选手在正常的倒计时内没有完成问题的回答,那么倒计时将被清零。
LOOP:MOV R0,#30
LPP:LCALL LED
LCALL DEL
JNB P2。4,LOP2
DEC R0
CJNE R0,#5,LPP
MOV R0,#5
LPP1:JNB P2。4,LOP2
LCALL LED
LCALL DE
DEC R0
CJNE R0,#0,LPP1
MOV R0,#0
LCALL LED
LCALL DEL
LJMP START
<4>延时程序
该系统设计了两段延时程序,一段1秒延时,是为了30秒倒计时调用和程序中一秒延时所用;另一段为0。5秒延时,用于报警。程序的设计中报警时间为一秒,但是由于在硬件的设计时只设计了一个按键,这样就会造成连续按键时会使所设定的报警声不断的响,这是设计中不允许的,所以在软件编程时设计了一个0。5秒的延时,被报警时所调用,这样就使报警声能很清楚地区分出来了
DEL:MOV R6,#20 DEL01:MOV R6,#10
DEL1:MOV R5,#100 DEL11:MOV R5,#100
DEL2:MOV R4,#250 DEL21:MOV R4,#250
DJNZ R4,$ DJNZ R4,$
DJNZ R5,DEL2 DJNZ R5,DEL21
DJNZ R6,DEL1 DJNZ R6,DEL11
RET RET
<5>报警程序
该段程序主要是用于本系统中的所有报警使用,报警时间延时为1秒钟。
DE:CLR P1。2
LCALL DEL01
SETB P1。2
LCALL DEL01
RET
三、制作过程
五、参考文献
曾峰,巩海洪,曾波,电子工业出版社,印刷电路板(PCB)设计与制作
梅海凤,王艳秋,张军,汪毓铎,清华大学出版社 单片机原理与接口技术
北京交通大学出版社
第二个文献:基于51单片机八路抢答器设计程序及电路图
基于51单片机八路抢答器设计程序及电路图
说明:本人的这个设计改进后解决了前一个版本中1号抢答优先的问题,并增加了锦囊的设置,当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始。
;八路抢答器电路请看下图是用ps仿真的,已经测试成功
<单片机八路抢答器电路图>
;============================================================
;================单片机八路抢答器程序 =====================
;================ 51hei =======================
;================ 2008 年 5月 =======================
;============================================================
OK EQU 20H;抢答开始标志位
RING EQU 22H;响铃标志位
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT0SUB
ORG 000BH
AJMP T0INT
ORG 0013H
AJMP INT1SUB
ORG 001BH
AJMP T1INT
ORG 0040H
MAIN: MOV R1,#30;初设抢答时间为30s
MOV R2,#60;初设答题时间为60s
MOV TMOD,#11H;设置未定时器/模式1
MOV TH0,#0F0H
MOV TL0,#0FFH;越高发声频率越高,越尖
MOV TH1,#3CH
MOV TL1,#0B0H;50ms为一次溢出中断
SETB EA
SETB ET0
SETB ET1
SETB EX0
SETB EX1;允许四个中断,T0/T1/INT0/INT1
CLR OK
CLR RING
SETB TR1
SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了
;=====查询程序=====
START: MOV R5,#0BH
MOV R4,#0BH
MOV R3,#0BH
ACALL DISPLAY;未开始抢答时候显示FFF
JB ;ddddddd
ACALL DELAY
JB ;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
ACALL BARK;按键发声
MOV A,R1
MOV R6,A;送R1->R6,因为R1中保存了抢答时间
SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答
MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号
MOV R3,#0AH;抢答只显示计时,灭号数
AJMP COUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面
NEXT: JNB
JNB
JNB
JNB
JNB
JNB
JNB
JNB
AJMP START
;=====非法抢答处理程序=====
FALSE1: MOV R3,#01H
AJMP ERROR
FALSE2: MOV R3,#02H
AJMP ERROR
FALSE3: MOV R3,#03H
AJMP ERROR
FALSE4: MOV R3,#04H
AJMP ERROR
FALSE5: MOV R3,#05H
AJMP ERROR
FALSE6: MOV R3,#06H
AJMP ERROR
FALSE7: MOV R3,#07H
AJMP ERROR
FALSE8: MOV R3,#08H
AJMP ERROR
;=====INT0(抢答时间R1调整程序)=====
INT0SUB:MOV A,R1
MOV B,#0AH
DIV AB
MOV R5,A
MOV R4,B
MOV R3,#0AH
ACALL DISPLAY;先在两个时间LED上显示R1
JNB ;为+1s键,如按下跳到INCO
JNB ;为-1s键,如按下跳到DECO
JNB ;为确定键,如按下跳到BACKO
AJMP INT0SUB
INC0: MOV A,R1
CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。
MOV R1,#00H
ACALL DELAY1
AJMP INT0SUB
ADD0: INC R1
ACALL DELAY1
AJMP INT0SUB
DEC0: MOV A,R1
JZ SETR1;如果R1为0, R1就置99,
DEC R1
ACALL DELAY1
AJMP INT0SUB
SETR1: MOV R1,#63H
ACALL DELAY1
AJMP INT0SUB
BACK0: RETI
;=====INT1(回答时间R2调整程序)=====
INT1SUB:MOV A,R2
MOV B,#0AH
DIV AB
MOV R5,A
MOV R4,B
MOV R3,#0AH
ACALL DISPLAY
JNB
JNB
JNB
AJMP INT1SUB
INC1: MOV A,R2
CJNE A,#63H,ADD1
MOV R2,#00H
ACALL DELAY1
AJMP INT1SUB
ADD1: INC R2
ACALL DELAY1
AJMP INT1SUB
DEC1: MOV A,R2
JZ SETR2
DEC R2
ACALL DELAY1
AJMP INT1SUB
SETR2: MOV R2,#63H
ACALL DELAY1
AJMP INT1SUB
BACK1: RETI
;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=====
REPEAT:MOV A,R2 ;使用锦囊时重新计时
MOV R6,A
CLR RING
COUNT: MOV R0,#00H;重置定时器中断次数
MOV TH1,#3CH
MOV TL1,#0B0H;重置定时器
RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6
MOV B,#0AH
DIV AB;除十分出个位/十位
MOV 30H,A;十位存于(30H)
MOV 31H,B;个位存于(31H)
MOV R5,30H;取十位
MOV R4,31H;取个位
MOV A,R6
SUBB A,#07H
JNC LARGER;大于5s跳到LARGER,小于等于5s会提醒
MOV A,R0
CJNE A,#0AH,FULL;1s中向下运行
CLR RING
AJMP CHECK
FULL: CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计
SETB RING
MOV A,R6
JZ QUIT;计时完毕
MOV R0,#00H
DEC R6;一秒标志减1
AJMP CHECK
LARGER: MOV A,R0
CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查"停/显示"
DEC R6;计时一秒R6自动减1
MOV R0,#00H
CHECK: JNB ;如按下停止键退出
JNB OK,CHECKK ;只在回答倒计时才有效
AJMP NEXTT
CHECKK:JNB ;判断是否使用锦囊
NEXTT: ACALL DISPLAY
JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)
AJMP RECOUNT
ACCOUT:
MOV A,36H
JNB
JNB
JNB
JNB
JNB
JNB
JNB
JNB
AJMP RECOUNT
TZ1:JMP TRUE7
TZ2:JMP TRUE8
QUIT: CLR OK;如果按下了"停止键"执行的程序
CLR RING
AJMP START
;=====正常抢答处理程序=====
TRUE1: ACALL BARK
MOV A,R2
MOV R6,A;抢答时间R2送R6
MOV R3,#01H
CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMP COUNT
TRUE2:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#02H
CLR OK
AJMP COUNT
TRUE3:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#03H
CLR OK
AJMP COUNT
TRUE4:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#04H
CLR OK
AJMP COUNT
TRUE5:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#05H
CLR OK
AJMP COUNT
TRUE6: ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#06H
CLR OK
AJMP COUNT
TRUE7:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#07H
CLR OK
AJMP COUNT
TRUE8:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#08H
CLR OK
AJMP COUNT
;=====犯规抢答程序=====
ERROR: MOV R0,#00H
MOV TH1,#3CH
MOV TL1,#0B0H
MOV 34H,R3;犯规号数暂存与(34H)
HERE: MOV A,R0
CJNE A,#06H,FLASH;向下运行->灭并停响
CLR RING
MOV R3,#0AH
MOV R4,#0AH
MOV R5,#0AH;三灯全灭
AJMP CHECK1
FLASH: CJNE A,#0CH,CHECK1;下面是的情况,响并显示号数并清R0,重新计
SETB RING
MOV R0,#00H
MOV R3,34H;取回号数
MOV R5,#0BH
MOV R4,#0BH;显示FF和号数
AJMP CHECK1
CHECK1: JNB
ACALL DISPLAY
AJMP HERE
QUIT1: CLR RING
CLR OK
AJMP START
;=====显示程序=====
DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#0feH
MOV P0,A
ACALL DELAY2
MOV DPTR,#DAT2
MOV A,R5
MOVC A,@A+DPTR
MOV P2,#0fdH
MOV P0,A
ACALL DELAY2
MOV A,R4
MOVC A,@A+DPTR
MOV P2,#0fbH
MOV P0,A
ACALL DELAY2
RET
DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
;"灭","1","2","3","4","5","6","7","8","9","灭","F"
DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
;第一个为零,其他与上相同,因为十位如果为零显示熄灭
;====加减时间延时(起到不会按下就加N个数)======
DELAY1: MOV 35H,#08H
LOOP0: ACALL DISPLAY
DJNZ 35H,LOOP0
RET
;=====延时4236个机器周期(去抖动用到)=====
DELAY: MOV 32H,#12H
LOOP: MOV 33H,#0AFH
LOOP1: DJNZ 33H,LOOP1
DJNZ 32H,LOOP
RET
;=====延时4236个机器周期(显示用到)=====
DELAY2: MOV 32H,#43H
LOOP3: MOV 33H,#1EH
MOV A,R7 ;每隔60~70个机器周期读一次P1口,全为1时为无效数据,继续读,有一个不为1时,转到正常抢答处理
JNZ AAAA1 ;没读到有效数据时继续转到AAAA1
LOOP2: DJNZ 33H,LOOP2
DJNZ 32H,LOOP3
RET
;=====读抢答按键数据口程序=====
;由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口
;然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.
;故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性
AAAA1: MOV A,P1
CJNE A,#0FFH,AA1 ;当不全为1时的数据为有效数据
AA0: MOV 36H,A ;将有效数据送到36H暂存
AJMP LOOP2
AA1: DEC R7
AJMP AA0
;=====发声程序=====
BARK: SETB RING
ACALL DELAY1
ACALL DELAY1
CLR RING;按键发声
RET
;=====TO溢出中断(响铃程序)=====
T0INT: MOV TH0,#0ECH
MOV TL0,#0FFH
JNB RING,OUT;
CPL ;RING标志位为1时候口不短取反使喇叭发出一定频率的声音
OUT: RETI
;=====T1溢出中断(计时程序)=====
T1INT: MOV TH1,#3CH
MOV TL1,#0B0H
INC R0
RETI
END
仅供参考。
/*******************************单片机抢答器*****************************//******必要的变量定义******/#include<>#define uchar unsigned char //宏定义uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};sbit k=P3^0; //开始键为 led=P3^6; //指示灯sbit k1=P2^0;sbit k2=P2^1;sbit k3=P2^2;sbit k4=P2^3;sbit k5=P2^4;sbit k6=P2^5;sbit k7=P2^6;sbit k8=P2^7;/******延时子程序******/void delay(uchar c){unsigned char a,b;for(;c>0;c--)for(a=142;a>0;a--)for(b=2;b>0;b--);}/******中断0子程序******/void int_0() interrupt 0{EX0=0; //关闭外中断0led=1; //关闭led{if(k1!=1)P0=table[1];P1=0xfe;if(k2!=1)P0=table[2];P1=0xfd;if(k3!=1)P0=table[3];P1=0xfb;if(k4!=1)P0=table[4];P1=0xf7;if(k5!=1)P0=table[5];P1=0xef;if(k6!=1)P0=table[6];P1=0xdf;if(k7!=1)P0=table[7];P1=0xbf;if(k8!=1)P0=table[8];P1=0x7f;}EX0=1; //开外中断0}/******主程序******/void main(){k=1; //开始键 为高电平led=1; //led为高电平 灯灭while(1){P2=0xff;if(k!=1){led=0; //led亮EA=1; //开总中断EX0=1; //开 外中断润徐寄存器IEIT0=0; //设置外中断触发控制为低电平触发}}}
八路抢答器就是8个按键,假设当键按下时为低电平加上一个裁判键。单片机循环查询每个按键的状态,当检测到低电平时,判断是否合法(比如裁判是否允许按键,)不合法,转到相应程序,合法,按键延时,去抖动,报警,蜂鸣器想,灯亮。 上面的做法最简单,软件硬件都简单,但是可能会出现,排在后面的按键比前面的按键后检测到情况,有失公平,可用用一个8输入与门,输出端接单片机中断口,检测到中断后保存下8个按键的状态,查表获得是哪个键按下。这个方案相对复杂一些
【1】V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 【2】 Yeager to troubleshoot your electronic scale[J].. Powder and Bulk Engineering. 1995 【3】Meehan Joanne,Muir in Merseyside SMEs:Benefits and barriers[J].. TQM Journal. 2008 看着有用的用吧,单片机很多东西,也不知道你的具体是哪个方面的。
单片机英文参考文献 [1] 李广弟等 单片机基础 北京航空航天出版社, [2] 楼然苗等 51 系列单片机设计实例 北京航空航天出版社, [3] 唐俊翟等 单片机原理与应用 冶金工业出版社, [4] 刘瑞新等 单片机原理及应用教程 机械工业出版社, [5] 吴国经等 单片机应用技术 中国电力出版社, [6] 李全利,迟荣强编著 单片机原理及接口技术 高等教育出版社, [7] 侯媛彬等,凌阳单片机原理及其毕业设计精选 2006年,科学出版社 [8] 罗亚非,凌阳十六位单片机应用基础2003年 北京航空航天大学出版社 [9] 北京北阳电子有限公司,061A凌阳单片机及其附带光盘2003年 [10] 张毅刚等, MCS-51单片机应用设计,哈工大出版社,2004年第2版 [11] 霍孟友等,单片机原理与应用,机械工业出版社, [12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社, [13] 许泳龙等,单片机原理及应用,机械工业出版社, [14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版 [15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社 ;
楼上的,人家说要外文、
这个可以到microchip公司的网站上下载,都是英语的,想要什么都有, 是这个公司的主页
【1】V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 【2】 Yeager to troubleshoot your electronic scale[J].. Powder and Bulk Engineering. 1995 【3】Meehan Joanne,Muir in Merseyside SMEs:Benefits and barriers[J].. TQM Journal. 2008 看着有用的用吧,单片机很多东西,也不知道你的具体是哪个方面的。
【1】[J],2002【2】[J]..【3】MeehanJoanne,[J]..看着有用的用吧,单片机很多东西,也不知道你的具体是哪个方面的。
[1] 李东升等.protel 99SE电路设计教程.电子工业出版社,[2] 藏春华等.电子线路设计与应用.高等教育出版社,[3] 李学海.16位单片机SPCE061A使用教程——基础篇.人民邮电出版社,2007[4] 张琳娜,刘武发.传感检测技术及应用.中国计量出版社,1999[5] 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社,[6] 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版 社,[7] 罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社,[8] 刘笃仁,韩保君.传感器原理及应用技术。机械工业出版社,[9] 薛筠义,张彦斌.凌阳16位单片机原理及应用,[10] 徐爱卿.Intel 16位单片机,[11] 霍孟友等,单片机原理与应用机械工业出版社, [12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,[13] 许泳龙等,单片机原理及应用,机械工业出版社, [14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版 [15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社.
[1]杨十元.模拟系统故障诊断与可靠性设计,清华人学出版社,2004 [2]童诗白.模拟电子技术基础,高教出版社,2006[3]周航慈.单片机应用程序设计技术,北京航空航大大学出版社,2005[4]李刚.ADuC812系列单片机原理和应用技术,北京航空航天山版社,2005[5]胡诞康.在线测试技术的发展与展望,计量与测试技术,2001[6]星河科技开发公司,印刷电路板在线测试系统的发展与应用,电子标准化与测量,2003[7]季华.PCB测试技术的综合利用,电子产品世界,2007-12[8]鲜坛.组装测试技术应用前景分析,世界电子元器件,2008-1[9]张金敏.基于单片机控制的智能电阻电容在线测试仪,甘肃科技,2006 [10]庄绍雄王济浩张迎春.智能阻容在线测试技术,山东工业大学学报,[11]陈国顺陈春沙王格芳等.通用电路板在线测试仪设计与开发,仪器仪表学报,2001[12]Nancy Instruments Smooth Rapid Test System & Measurement World,AUGUST 2001[13]卢育强.如何设定ICT的上下限,电子生产设备,2003 142-143[14]赵悦 沈青松 终玉军.路板的测试技术,辽宁工学院学报,2008-1[15]程亚黎 曾周末.电路故障自动测试与诊断系统,中国仪器仪表,2007