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

2019-03-15 22:16

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

MOV MOV MOV MOV MOV SETB MOV RLC JNC INC DJNZ MOV SETB RRC MOV JC SJMP

R1, #00H A, R3 P0, A A, P0 R4, A C

;取码指针 ;开始扫描

;将扫描值输出至P1

;读入P1值,判断是否有键按下 ;存入R4,以判断按键是否放开 ;C=1

;扫描P1.4~P1.7 ;将按键左移一位

;判断C=0?有键按下则C=0,跳至KEYIN ;C=1,则无键按下,将取码指针值加1 ;4列扫描完毕了吗? ;扫描值载入 ;C=1

;扫描下一行(P1.3~P1.0) ;存回扫描寄存器

;C=1?是则P1.0尚未扫描到 ;C=0,则四行已扫描完毕 ;延时消除抖动 ; ; ;

;延时后再读入P1值 ;与上次读入值作比较

;A=0,表示按键未放,等待按键释放 ;按键已放开,取码指针载入累加器

L3:

R5, #04H A

L4:

KEYIN R1

R5, L4 A, R3 C A

R3, A L3

KEYSCAN R7, #60 R6, #248 R6, $ R7, D2 A, P0 A, R4 D3

KEYIN: MOV D2: MOV

DJNZ DJNZ

D3: MOV

XRL JZ MOV MOV MOVC RET

A, R1

DPTR,#TABLE ;键盘码表首地址送DPTR A, @A+DPTR ;查键码

;返回

TABLE: DB 00H,01H,02H,03H ;键码安排表与键盘相同

DB 04H,05H,06H,07H

- 31 -

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

DB 08H,09H,0AH,0BH DB 0CH,0DH,0EH,0FH ORG 0200H

;串口静态显示子程序 ;显示3位数码

DISPLAY:MOV R0, #DBUF

MOV MOV

R2,#3

DPTR,#SEGTAB; DISP:

SEGTAB: DB DB DB

A,@R0

;

A,@A+DPTR ;取字段码 SCON,#0 ;置串口工作方式0 SBUF,A ;开始发送 TI,$ ;等待发送完毕 TI ;发送完毕,标志位清零 R0

;缓冲单元地址增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 DB

9CH,7AH,9EH,8EH

;C,D,+,-

- 32 -

MOV MOVC MOV MOV JNB CLR INC

DJNZ RET

END

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

抢答器软件程序(附2)

#include #define uchar unsigned char //共阴码

//uchar code table[]={0x00,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe }; /*代码存储区(64KB)*/

//共阳码

uchar code table[]={0x03,0x9f,0x25,0x0d,0x99,0xc2,0x41,0x1f,0x01,0xff }; void delay (void) { /* delay 函数*/ uchar i,j; /*这个函数执行时间的延迟 */

for (i=0;i<20;i++)

for(j=0;j<250;j++) ;

}

void main (void) {

uchar temp,key,j,time; /* 声明变量temp */ while (1) { /* 无穷循环 */

temp=P0; delay(); temp=P0;

/* 将P2输入的数据直接放入变量temp当中 */

switch(temp) {

case 0xfe: key = 1;break; case 0xfd: key = 2;break; case 0xfb: key = 3;break; case 0xf7: key = 4;break; case 0xef: key = 5;break; case 0xdf: key = 6;break; case 0xbf: key = 7;break; case 0x7f: key = 8;break; default : break; }

if(temp==0xff) { for(time=1;time>0;time--)

- 33 -

/*无键按下,则关显示*/

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

{ j=table[0];

SCON=0x00;

}

SBUF=j; while(TI!=1); TI=0; }

else { j=table[key]; SCON=0x00; SBUF=j; while(TI!=1); TI=0; for(;;)

{ P1=temp;

delay(); } } }

}

/*取键值并显示*/

/*指示显示,并实现锁键功能*/

- 34 -


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

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

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

马上注册会员

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