自制 电子智能抢答器(单片机)毕业设计论文 - 图文(6)

2019-03-15 22:16

高等职业学校05高职机电一体化毕业论文

谢 辞

- 26 -

高等职业学校05高职机电一体化毕业论文

参考文献

[1] 康华光,邹寿彬编.电子技术基础数字部分(第四版)[M].北京:高等教

育出版社,2005

[2] 谢自美编.电子线路设计·实验·测试 (第二版) [M].上海:电子工业出版社,2001

[3] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北

京:北京航空航天大学出版社,1999年

[4] 陆坤,奚大顺,李之权等,电子设计技术[M].成都:电子科技大学出版社

1997年[5] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999年

[5] 胡学海.单片机原理及应用系统设计[M].北京:京电子工业出版社,2005年

[6] 林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术[M].西安:西安

电子科技大学出版社,2005年

- 27 -

高等职业学校05高职机电一体化毕业论文

附:单片机程序

计分器显示程序(附1)

//抢答器加减记分显示程序2 DBUF EQU 30H ;三位显示缓冲区首址 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SP,#60H ACALL KEYSCAN ;调用键盘扫描子程序判断是加分或减分 CJNE A,#0EH,NEXT2 ;不是加分键,则转移判断是减分键? NEXT1: ACALL KEYSZ ;是加分键,调用键盘设置子程序 ACALL DISPLAY ;调用串口静态显示子程序 SJMP MAIN NEXT2: KEYSZ: L1:

CJNE A,#0FH,MAIN ;都不是,则转MAIN AJMP NEXT1 ;是减分键,调用键盘设置子程序 ORG 0100H PUSH PSW ;键盘设置子程序 PUSH ACC SETB RS1 MOV MOV CLR

R0,#DBUF R7,#3 RS1

;R0指向显示缓冲区首地址 ;设置键盘输入位数

ACALL KEYSCAN SETB RS1

;调用键盘扫描子程序取按下键的键号

CJNE A,#0AH,L2 ;键入数合法性检测(是否大于9)

L2: JNC L1 ;大于9,重新键入 MOV R0,A ;键号送显示缓冲区 INC R0 DJNZ R7,L1 ;3位数值输入完否?未完继续,否则返回 POP ACC POP PSW CLR RS1 RET KEYSCAN:MOV R3, #0F7H ;扫描初值(P1.3=0) MOV R1, #00H ;取码指针 L3: MOV A, R3 ;开始扫描 MOV P1, A ;将扫描值输出至P1 MOV A, P1 ;读入P1值,判断是否有键按下 MOV R4, A ;存入R4,以判断按键是否放开 SETB C ;C=1 MOV R5, #04H ;扫描P1.4~P1.7

- 28 -

高等职业学校05高职机电一体化毕业论文

L4: KEYIN: D2: RLC

JNC INC DJNZ MOV SETB C RRC MOV JC SJMP MOV MOV DJNZ DJNZ A ;将按键左移一位 KEYIN ;判断C=0?有键按下则C=0,跳至KEYIN R1 ;C=1,则无键按下,将取码指针值加1 R5, L4 ;4列扫描完毕了吗? A, R3 ;扫描值载入 ;C=1 A ;扫描下一行(P1.3~P1.0) R3, A ;存回扫描寄存器 L3 ;C=1?是则P1.0尚未扫描到 KEYSCAN ;C=0,则四行已扫描完毕 R7, #60 ;延时消除抖动 R6, #248 ; R6, $ ; R7, D2 ;

D3: MOV A, P1 ;延时后再读入P1值

XRL A, R4 ;与上次读入值作比较 JZ D3 ;A=0,表示按键未放,等待按键释放 MOV A, R1 ;按键已放开,取码指针载入累加器 MOV DPTR,#TABLE ;键盘码表首地址送DPTR MOVC A, @A+DPTR ;查键码 RET ;返回

TABLE: DB 00H,01H,02H,03H ;键码安排表与键盘相同 DB 04H,05H,06H,07H DB 08H,09H,0AH,0BH DB 0CH,0DH,0EH,0FH ORG 0200H

DISPLAY:MOV R0, #DBUF ;串口静态显示子程序 MOV R2,#3 ;显示3位数码 MOV DPTR,#SEGTAB; DISP: MOV A,@R0 ; MOVC MOV MOV JNB CLRTI INC R0 DJNZ RET SEGTAB: DB DB DB DB END DBUF

EQU

A,@A+DPTR ;取字段码

SCON,#0 ;置串口工作方式0 SBUF,A ;开始发送 TI,$ ;等待发送完毕 ;发送完毕,标志位清零 ;缓冲单元地址增1 R2,DISP ;三位数码发送完否? ;发送完毕,则返回

0FCH,60H,0DAH,0F2H ;0,1,2,3(共阳极字段码表) 66H,0B6H, 0BEH,0E0H ;4,5,6,7 0FEH,0F6H,0EEH,3EH ;8,9,A,B 9CH,7AH,9EH,8EH ;C,D,+,- 30H

;三位显示缓冲区首址

- 29 -

高等职业学校05高职机电一体化毕业论文

ORG AJMP

0000H MAIN

ORG 0030H

MAIN: MOV SP,#60H

NEXT1: NEXT2:

KEYSZ:

L1:

L2:

KEYSCAN: ACALL KEYSCAN ;调用键盘扫描子程序判断是加分或减分

CJNE

A,#0EH,NEXT2

;不是加分键,则转移判断是减分键?

ACALL KEYSZ

;是加分键,调用键盘设置子程序 ACALL DISPLAY ;调用串口静态显示子程序

SJMP

MAIN

CJNE A,#0FH,MAIN ;都不是,则转MAIN AJMP

NEXT1

;是减分键,调用键盘设置子程序

ORG 0100H

PUSH PSW

;键盘设置子程序

PUSH ACC SETB RS1 MOV R0,#DBUF ;R0指向显示缓冲区首地址 MOV R7,#3 ;设置键盘输入位数 CLR

RS1

ACALL KEYSCAN ;调用键盘扫描子程序取按下键的键号 SETB RS1

CJNE A,#0AH,L2 ;键入数合法性检测(是否大于9) JNC L1 ;大于9,重新键入 MOV R0,A

;键号送显示缓冲区

INC R0 DJNZ R7,L1 ;3位数值输入完否?未完继续,否则返回 POP ACC POP PSW CLR RS1

RET

MOV R3, #0F7H ;扫描初值(P0.3=0)

- 30 -


自制 电子智能抢答器(单片机)毕业设计论文 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:兰州理工大学西校区图书馆项目部质量策划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: