单片机项目教学案例汇编讲课教案Word文件下载.docx

上传人:b****1 文档编号:4128979 上传时间:2023-05-02 格式:DOCX 页数:21 大小:131.88KB
下载 相关 举报
单片机项目教学案例汇编讲课教案Word文件下载.docx_第1页
第1页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第2页
第2页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第3页
第3页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第4页
第4页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第5页
第5页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第6页
第6页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第7页
第7页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第8页
第8页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第9页
第9页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第10页
第10页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第11页
第11页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第12页
第12页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第13页
第13页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第14页
第14页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第15页
第15页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第16页
第16页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第17页
第17页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第18页
第18页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第19页
第19页 / 共21页
单片机项目教学案例汇编讲课教案Word文件下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机项目教学案例汇编讲课教案Word文件下载.docx

《单片机项目教学案例汇编讲课教案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机项目教学案例汇编讲课教案Word文件下载.docx(21页珍藏版)》请在冰点文库上搜索。

单片机项目教学案例汇编讲课教案Word文件下载.docx

movr5,#49

djnzr5,$

djnzr6,loop1

djnzr7,loop2

ret

tab:

db0feh,0ffh,0fdh,0ffh,0fbh,0ffh,0f7h,0ffh

db0efh,0ffh,0dfh,0ffh,0bfh,0ffh,07fh,0ffh

End

案例三交通灯控制

利用单片机设计制作具有下列功能的交通灯:

1、自动计时,由两位数码管静态显示;

2、发光二极管分四组分别代表东、南、西、北四个方向交通灯,东、西方向红灯亮时,南北方向绿灯亮;

反之南北方向红灯亮时,东西方向绿灯亮;

小灯每30S交替一次。

ORG0000H

LJMPSTART

ORG0100H

BCD1EQU50H

BCD2EQU51H

START:

MOVSP,#60H

STATE0:

MOVA,#0F6H;

初始状态全红灯

MOVP1,A

MOVR2,#1;

延时1秒

S0:

LCALLBINBCD

LCALLDISPLAY

LCALLDELAY

DJNZR2,S0

STATE1:

MOVA,#0F5H;

南北绿灯,东西红灯

MOVR2,#20;

延时20秒

S1:

LCALLBINBCD

DJNZR2,S1

STATE2:

MOVA,#0F3H;

南北黄灯,东西红灯

MOVR2,#5;

延时5秒

S2:

DJNZR2,S2

STATE3:

MOVA,#0EEH;

南北红灯,东西绿灯

S3:

DJNZR2,S3

STATE4:

MOVA,#0DEH;

南北红灯,东西黄灯

S4:

DJNZR2,S4

LJMPSTATE1;

转至状态1

DELAY:

MOVR7,#20;

1秒延时子程序

D1:

MOVR6,#200

D2:

MOVR5,#123

NOP

DJNZR5,$

DJNZR6,D2

DJNZR7,D1

RET

BINBCD:

MOVA,R2;

二进制转换非压缩BCD码子程序

MOVB,#10

DIVAB

MOVBCD2,A;

存十位BCD码

MOVBCD1,B;

存个位BCD码

RET

DISPLAY:

MOVA,BCD1;

显示子程序

MOVDPTR,#TAB

MOVCA,@A+DPTR;

查个位字形码

MOVP2,A

MOVA,BCD2

查十位字形码

MOVP0,A

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

案例四简易电子密码锁设计

1、初始状态下显示屏显示“HELLO”,并保持显示5秒后清屏;

2、如果密码输入错误则显示“ERROR”,并保持显示5秒后清屏;

3、如果密码输入正确则显示“RIGHT”,并保持显示5秒后清屏。

1、系统方案设计理论图

(1)键盘电路图

(2)数码管显示电路

*******************************************************

;

以下8个字节存放8位数码管的段码

LED_BIT_1EQU30H

LED_BIT_2EQU31H

LED_BIT_3EQU32H

LED_BIT_4EQU33H

LED_BIT_5EQU34H

LED_BIT_6EQU35H

LED_BIT_7EQU36H

LED_BIT_8EQU37H

以下6个字节存放初始密码

WORD_1EQU38H

WORD_2EQU39H

WORD_3EQU3AH

WORD_4EQU3BH

WORD_5EQU3CH

WORD_6EQU3DH

以下6个字节存放用户输入的6位密码

KEY_1EQU3EH

KEY_2EQU3FH

KEY_3EQU40H

KEY_4EQU41H

KEY_5EQU42H

KEY_6EQU43H

******************************************************

CNT_AEQU44H

CNT_BEQU45H

KEY_CNTEQU46H;

已输出的密码位数

LINEEQU47H;

按键行号

ROWEQU48H;

按键列号

VALEQU49H;

键值

以下为初始化程序,包括数据存储空间初始化,设置初始密码

ORG00H

SJMPSTART

ORG0050H

MOVSP,#60H

MOVCNT_A,#00H;

程序初始化

MOVCNT_B,#00H

MOVKEY_CNT,#00H

MOVLINE,#00H

MOVROW,#00H

MOVVAL,#00H

SETBP1.0

MOVLED_BIT_1,#00H;

段码存储区清0

MOVLED_BIT_2,#00H

MOVLED_BIT_3,#00H

MOVLED_BIT_4,#00H

MOVLED_BIT_5,#00H

MOVLED_BIT_6,#00H

MOVLED_BIT_7,#79H

MOVLED_BIT_8,#73H

MOVKEY_1,#00H;

输入密码存储区清0

MOVKEY_2,#00H

MOVKEY_3,#00H

MOVKEY_4,#00H

MOVKEY_5,#00H

MOVKEY_6,#00H

MOVWORD_1,#6;

设置初始密码为"

123456"

MOVWORD_2,#5

MOVWORD_3,#4

MOVWORD_4,#3

MOVWORD_5,#2

MOVWORD_6,#1

A0:

LCALLDISP

***********************************************************

以下为键盘扫描程序,计算键值并存入VAL

LSCAN:

MOVP3,#0F0H;

扫描行码

L1:

JNBP3.0,L2

LCALLDLY_S

JNBP3.0,L2

LJMPRSCAN

L2:

JNBP3.1,L3

JNBP3.1,L3

MOVLINE,#01H

L3:

JNBP3.2,L4

JNBP3.2,L4

MOVLINE,#02H

L4:

JNBP3.3,A0

JNBP3.3,A0

MOVLINE,#03H

RSCAN:

MOVP3,#0FH;

扫描列码

C1:

JNBP3.4,C2

LJMPCALCU

C2:

JNBP3.5,C3

MOVROW,#01H

C3:

JNBP3.6,C1

MOVROW,#02H

CALCU:

MOVA,LINE;

计算键值

MOVB,#03H

MULAB

ADDA,ROW

MOVVAL,A

**************************************************

以下为按键处理程序,对不同的按键作出响应

CJNEA,#0AH,J1;

是否为"

CLR"

MOVR1,KEY_CNT

CJNER1,#00H,J2

LCALLALARM_1

LJMPSTART

J2:

LCALLSHIFTR

DECKEY_CNT

W00:

LCALLDISP;

等待按键抬起

MOVA,P3

CJNEA,#0FH,W01

LJMPA0

W01:

MOVA,P3

CJNEA,#0F0H,W02

W02:

SJMPW00

J1:

MOVA,VAL

CJNEA,#0BH,J3;

判断是否为"

ENTER"

CJNER1,#06H,J4

MOVA,WORD_1;

比较密码

CJNEA,3EH,J5

MOVA,WORD_2

CJNEA,3FH,J5

MOVA,WORD_3

CJNEA,40H,J5

MOVA,WORD_4

CJNEA,41H,J5

MOVA,WORD_5

CJNEA,42H,J5

MOVA,WORD_6

CJNEA,43H,J5

CLRP1.0

MOVP2,#0ffh

LCALLDLY_L

J5:

LCALLALARM_2

J4:

LCALLALARM_1

J3:

INCKEY_CNT;

按下数字键

MOVA,KEY_CNT

CJNEA,#07H,K1

W10:

CJNEA,#0FH,W11

W11:

CJNEA,#0F0H,W12

W12:

SJMPW10

K1:

LCALLSHIFTL

W20:

CJNEA,#0FH,W21

W21:

CJNEA,#0F0H,W22

W22:

SJMPW20

ALARM_1:

LCALLSEC;

操作错误报警

ALARM_2:

密码错误报警

音频信号产生程序,用于声音报警

SEC:

MOVR2,#100

SEC_LP:

clrP1.7

LCALLT1MSD

NOP

setbP1.7

LCALLT1MSD

DJNZR2,SEC_LP

RET

段码,输入密码左移子程序

SHIFTL:

MOVLED_BIT_6,LED_BIT_5

MOVLED_BIT_5,LED_BIT_4

MOVLED_BIT_4,LED_BIT_3

MOVLED_BIT_3,LED_BIT_2

MOVLED_BIT_2,LED_BIT_1

MOVLED_BIT_1,#40H

MOVKEY_6,KEY_5

MOVKEY_5,KEY_4

MOVKEY_4,KEY_3

MOVKEY_3,KEY_2

MOVKEY_2,KEY_1

MOVKEY_1,VAL

段码,输入密码右移子程序

SHIFTR:

MOVLED_BIT_1,LED_BIT_2

MOVLED_BIT_2,LED_BIT_3

MOVLED_BIT_3,LED_BIT_4

MOVLED_BIT_4,LED_BIT_5

MOVLED_BIT_5,LED_BIT_6

MOVKEY_1,KEY_2

MOVKEY_2,KEY_3

MOVKEY_3,KEY_4

MOVKEY_4,KEY_5

MOVKEY_5,KEY_6

以下为数码显示子程序

DISP:

PUSHACC

PUSHPSW

SETBRS0

MOVR0,#LED_BIT_1

MOVR2,#8

MOVR3,#0FEH

DISP1:

movP2,R3

MOVP0,@R0

LCALLDLY_S

MOVa,R3

RLA

MOVR3,A

INCR0

djnzR2,DISP1

POPPSW

POPACC

**********************************************

T1MSD:

MOVR3,#2

D0:

MOVR4,#250

DJNZR4,$

DJNZR3,D0

DLY_S:

MOVR6,#10

MOVR7,#250

DJNZR7,$

DJNZR6,D1

DLY_L:

MOVR5,#100

MOVR6,#100

D3:

MOVR7,#248

DJNZR6,D3

DJNZR5,D2

FINI:

END

案例五双机通信

利用AT89S52串行口,通过双机通信,实现单片机之间数据块的传送

(1)甲机发送,乙机接收;

(2)甲机发送地址信息,然后发送一批数据;

(3)乙机把接收到的地址信息作为存放数据的首地址,然后将数据存入相应单元;

(4)校验方式:

累加校验和。

1、硬件电路结构示意图

发送方:

AJMPMAIN

ORG0100H

MOVSP,#60H

MOVSCON,#40H;

串行口以方式1工作

MOVTMOD,#20H;

T1以方式2工作

MOVTH1,#0FDH;

波特率9600

MOVTL1,#0FDH

SETBTR1

MOVP1,#0FFH

MOV30H,#0FFH;

设拨码开关初始值

K0:

MOVA,P1;

读入拨码开关

CJNEA,30H,K1;

判断与前次是不是相同,不同则跳至K1

SJMPK0

K1:

MOV30H,A;

存入拨动开关新值

MOVSBUF,A;

输入SBUF发送

WAIT:

JBCTI,K0;

是否发送完毕?

SJMPWAIT

接收方:

MOVSP,#60

MOVSCON,#50H

MOVTMOD,#20H

MOVTH1,#0FDH

JBRI,KK;

是否接收到数据,有则跳至KK

SJMPK0

KK:

MOVA,SBUF;

将接收到的数据保存到累加器

MOVP1,A;

输出至P1

CLRRI;

清除RI

SJMPK0

案例六数字电压表设计

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2