单片机程序Word文档下载推荐.docx

上传人:b****4 文档编号:18454769 上传时间:2022-12-16 格式:DOCX 页数:30 大小:22.63KB
下载 相关 举报
单片机程序Word文档下载推荐.docx_第1页
第1页 / 共30页
单片机程序Word文档下载推荐.docx_第2页
第2页 / 共30页
单片机程序Word文档下载推荐.docx_第3页
第3页 / 共30页
单片机程序Word文档下载推荐.docx_第4页
第4页 / 共30页
单片机程序Word文档下载推荐.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

单片机程序Word文档下载推荐.docx

《单片机程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机程序Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。

单片机程序Word文档下载推荐.docx

CLRC;

进位位清零,为接受P1口的值做准备

MOVP1.0,#00H;

赋值,全灭

MOVC,P1.0;

P1.0口值送进位位

MOVP1.2,C;

进位位C送值到P1.2口,输出

ACALLDELAY

重复上面操作

MOVP1.1,#00H

MOVC,P1.1

MOVP1.3,C

MOVR6,#1;

延时子程序.

MOVR7,#1

实验二外部中断

LEDEQUP1.0;

P1.0口连接LED显示灯

LEDBUFEQU00H;

初始值设为0,即为低电平

LJMPSTART

ORG0003H;

外部中断0(INT0)的入口地址

LJMPINT0;

跳转到中断入口处

ORG0100H

START:

MOVSP,#60H;

地址指针

CLRLEDBUF

CLRLED

MOVTCON,#01H;

初始化,设置为工作方式1

MOVIE,#10000001B;

EA=1开中断,EX0=1外部中断0中断允许

ORLIP,#0000H;

中断优先级设置

LJMP$

INT0:

PUSHPSW;

程序状态字PSW内容压入堆栈保存

CPLLEDBUF;

取反,即发生翻转

MOVC,LEDBUF

MOVLED,C

POPPSW;

恢复程序状态字PSW的内容

RETI

END

实验三八段数码管显示

LEDMAP:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DB00H,49H

MOV40H,#11H

MOV41H,#00H

MOV42H,#08H

MOV43H,#01H

MOV44H,#00H

MOV45H,#04H

LOOP1:

MOVR0,#40H;

送数据地址,即显示缓冲区地址

MOVR1,#6;

循环次数

MOVR2,#00100000B;

从左边第一个开始显示

LOOP2:

MOVDPTR,#8002H;

送位口地址

CLRA

MOVX@DPTR,A;

关所有位

MOVA,@R0;

取显示数据

MOVDPTR,#LEDMAP;

送段码表首地址

MOVCA,@A+DPTR;

由序码找段码

MOVDPTR,#8004H;

送段口地址

送段码

MOVDPTR,#8002H;

MOVA,R2;

显示位

显示

取显示位

RRA;

右移,下一位显示

MOVR2,A

INCR0;

数据地址加1,准备取下一个数

DJNZR1,LOOP2;

(R1-1)≠0,即6位未显示完,循环

JMPLOOP1

MOVR6,#2;

延时1ms

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

实验四行列扫描式键盘

OUTBITEQU8002H;

位显示地址和列

OUTSEGEQU8004H;

段显示地址

INEQU8001H;

键盘行地址

LEDBUFEQU40H;

显示缓冲区地址

RKEYEQU46H;

键值存储区

LJMPMAIN

DB3FH,06H,5BH,4FH,66H;

0~4

DB6DH,7DH,07H,7FH,6FH;

5~9

DB77H,7CH,39H,5EH,79H,71H;

A~F

DB00H,49H;

关断和“三”

延时子程序

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

MOVR7,#0FAH

DL0:

DJNZR7,DL0;

执行时间大约1ms

DJNZR6,DELAY

LED显示子程序

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

DISPLAY:

MOVR0,#LEDBUF

循环六次

MOVR2,#20H;

从高位开始点亮

MOVDPTR,#OUTBIT;

送位地址

MOVA,#00H

MOVX@DPTR,A;

关断所有数码管

MOVCA,@A+DPTR;

由序码求段码

MOVDPTR,#OUTSEG;

MOVX@DPTR,A

MOVA,R2

位显示

MOVR6,#03H

LCALLDELAY;

调用子程序

右移

MOVR2,A

数据地址加1,准备显示下一位

DJNZR1,LOOP;

键盘子程序

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

KEY:

LCALLTESTKEY

JZKEYQ;

没有按下,跳转退出

MOVR6,#10

防抖延时10ms

LCALLTESTKEY;

再次确认

JZKEYQ

LCALLGETKEY;

取键值

等待按键释放

WAITREL:

防抖延时

JNZWAITREL;

没有松开继续循环

KEYQ:

按键测试子程序,判断有无键按下

TESTKEY:

MOVDPTR,#OUTBIT;

送列地址

MOVA,#0H

对列置零

MOVDPTR,#IN;

送行地址

MOVXA,@DPTR

CPLA

ANLA,#0FH;

对行进行判断

获取键值子程序

从第五列开始判断

GETKEY:

MOVA,#11011111B

第5列置零

K58:

CJNEA,#08H,K54

MOVRKEY,#07H;

7键按下,送键值存储区

LJMPGETKQ

K54:

CJNEA,#04H,K52

MOVRKEY,#04H;

4键按下,送键值存储区

K52:

CJNEA,#02H,K51

MOVRKEY,#01H;

1键按下,送键值存储区

K51:

CJNEA,#01H,K48

MOVRKEY,#00H;

0键按下,送键值存储区

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

进入第四列判断

K48:

MOVA,#11101111B

第4列置零

送行地址

CJNEA,#08H,K44

MOVRKEY,#08H;

8键按下,送键值存储区

K44:

CJNEA,#04H,K42

MOVRKEY,#05H;

5键按下,送键值存储区

K42:

CJNEA,#02H,K41

MOVRKEY,#02H;

2键按下,送键值存储区

K41:

CJNEA,#01H,K38

MOVRKEY,#0FH;

F键按下,送键值存储区

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

进入第三列判断

K38:

MOVA,#11110111B

第3列置零

对行进行判断

CJNEA,#08H,K34

MOVRKEY,#09H;

9键按下,送键值存储区

K34:

CJNEA,#04H,K32

MOVRKEY,#06H;

6键按下,送键值存储区

K32:

CJNEA,#02H,K31

MOVRKEY,#03H;

3键按下,送键值存储区

K31:

CJNEA,#01H,K28

MOVRKEY,#0EH;

E键按下,送键值存储区

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

进入第二列判断

K28:

MOVA,#11111011B

第2列置零

CJNEA,#08H,K24

MOVRKEY,#0AH;

A键按下,送键值存储区

K24:

CJNEA,#04H,K22

MOVRKEY,#0BH;

B键按下,送键值存储区

K22:

CJNEA,#02H,K21

MOVRKEY,#0CH;

C键按下,送键值存储区

K21:

CJNEA,#01H,K18

MOVRKEY,#0DH;

D键按下,送键值存储区

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

进入第一列判断

K18:

MOVA,#11111101B

第1列置零

CJNEA,#08H,K14

MOVRKEY,#10H;

10键按下,送键值存储区

K14:

CJNEA,#04H,K12

MOVRKEY,#11H;

11键按下,送键值存储区

K12:

CJNEA,#02H,K11

MOVRKEY,#12H;

12键按下,送键值存储区

K11:

CJNEA,#01H,K08

MOVRKEY,#13H;

13键按下,送键值存储区

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

进入最后一列判断

K08:

MOVA,#11111110B

第0列置零

K04:

CJNEA,#04H,K02

MOVRKEY,#14H;

14键按下,送键值存储区

K02:

CJNEA,#02H,K01

MOVRKEY,#15H;

15键按下,送键值存储区

K01:

CJNEA,#01H,K00

MOVRKEY,#16H;

16键按下,送键值存储区

K00:

MOVRKEY,#0EEH

SJMPGETKQ

GETKQ:

主程序

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

MAIN:

MOVSP,#60H

MOVLEDBUF,#0DH

MOVLEDBUF+1,#00H

MOVLEDBUF+2,#08H

MOVLEDBUF+3,#01H

MOVRKEY,#0DAH

MLOOP:

LCALLDISPLAY

LCALLKEY

MOVA,RKEY

ANLA,#0F0H

SWAPA

MOVLEDBUF+4,A;

显示高位

ANLA,#0FH

MOVLEDBUF+5,A;

显示低位

LJMPMLOOP

实验五计数器

MOV40H,#00H;

MOV41H,#00H;

MOV42H,#00H;

MOV43H,#00H;

MOV44H,#02H

MOV45H,#02H

MOVTMOD,#05H;

初始化,工作方式设置

MOVTL0,#00H;

初值设为0,低4位

MOVTH0,#00H;

初值设为0,高4位

SETBTR0;

TR0=1,启动计数器

MOVR3,TL0;

低位送到R3

MOVA,R3

低八位低4位个

MOV40H,A

SWAPA;

高低位交换

MOV41H,A;

低八位高4位十

MOVR3,TH0;

高位送到R3

高八位低4位百

MOV42H,A

高八位高4位千

MOV43H,A

MOVR0,#40H;

数据缓冲区地址

MOVR1,#6;

最高位开始显示

去显示数据

MOVDPTR,#8004H;

MOVA,R2

MOVR6,#3;

实验六定时器

ORG000BH;

定时器T0溢出中断入口地址

LJMPSINT0

MOVTMOD,#01H;

设置定时器T0工作在方式1

MOVTH0,#3CH;

置初值,高8位送TH0

MOVTL0,#0B0H;

置初值,低8位送TL0

SETBET0;

ET0置1,定时器T0溢出中断允许

SETBEA;

EA置1,开中断

MOVR7,#10;

开始计时

SETBP1.0;

P1.0置1,即输出高电平

CJNER7,#00H,LOOP1;

R70,继续循环

CPLA;

交换A值

MOVP1,A;

A值送P1口输出,即发生反转

SINT0:

DJNZR7,B1;

判断循环次数,跳转

CPLP1.0

JMPB2

B1:

重新装载时间常数

MOVTL0,#0B0H

B2:

RETI

实验七模拟量输入

;

AD_CS----CS1

CS0832EQU09000H

OUTBITEQU0A002H;

位显示地址

OUTSEGEQU0A004H;

CS0809EQU8000H

RADINGEQU31H;

I0~I7通道号寄存器

RADEQU32H;

AD值寄存器

DJNZR7,DL0

MOVR0,#LEDBUF;

循环次数

MOVR2,#20H;

从高位开始显示,即左边开始

段显示

送显示位

MOVR6,#03H

CALLDELAY;

右移,准备显示下一位

数据存储区加1,准备显示下一位

MOVLEDBUF,#08H

MOVLEDBUF+1,#01H

MOVLEDBUF+2,#00H

MOVLEDBUF+3,#04H

MOVLEDBUF+4,#00H

MOVLEDBUF+5,#00H

MOVR5,#0FFH;

数字量应00到0FFH

DIRLOP:

LCALLDISPLAY;

调用显示子程序

DJNZR5,DIRLOP;

(R5-1)≠0,跳转

ADLOOP:

MOVRADING,#01H;

置初值

LCALLAD;

调用AD转换子程序

LCALLADDIR;

调用读取和显示AD转换结果子程序

LJMPADLOOP;

AD:

MOVDPTR,#CS0809;

指向0通道

MOVA,DPL;

ADDA,RADING

MOVDPL,A

启动AD转换

MOVR5,#40H;

查询,是否转换结束

DJNZR5,$

MOVXA,@DPTR;

读取转换结果

MOVRAD,A;

送转换结果

ADDIR:

MOVA,RAD;

取转换结果

交换高低位

ANLA,#0FH;

低位清零

MOVLEDBUF+4,A;

MOVLEDBUF+5,A;

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

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1