单片机DIY选题Word文件下载.docx

上传人:b****5 文档编号:19704805 上传时间:2023-01-09 格式:DOCX 页数:15 大小:277.70KB
下载 相关 举报
单片机DIY选题Word文件下载.docx_第1页
第1页 / 共15页
单片机DIY选题Word文件下载.docx_第2页
第2页 / 共15页
单片机DIY选题Word文件下载.docx_第3页
第3页 / 共15页
单片机DIY选题Word文件下载.docx_第4页
第4页 / 共15页
单片机DIY选题Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机DIY选题Word文件下载.docx

《单片机DIY选题Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机DIY选题Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

单片机DIY选题Word文件下载.docx

K1

开关

C01、C02

电容

30pF

二个

C1

22uF

Vcc

电源

+5V

导线

若干

三、实验内容

1、焊接根据实验原理图在电路板上焊接电路

2、

四、实验原理图

五、程序举例

ORG0000H程序起始地址

MOVR2,#18H设置循环次数

LOOP:

CLRP1.0循环给P1.0置“0”

DJNZR2,LOOP

END

实验二单片机单个I/O的控制系统

掌握对CPU单个I/O的控制,编写程序让发光二极管每秒钟闪动一次。

①循环控制:

ORG0000H

LOOP:

SETBP1.0

LCALLDELAY延时0.5s;

CLRP1.0

LCALLDELAY

AJMPLOOP转循环程序;

DELAY:

MOVR3,#2延时子程序;

D1:

MOVR4,#250

D2:

MOVR5,#250

DJNZR5,$

DJNZR4,D2

DJNZR3,D1

RET

END

②中断控制:

ORG0000H

AJMPMAIN转主程序;

ORG000BH

AJMPINT_TIMER0T0中断服务程序;

ORG0030H

MAIN:

MOVTMOD,#01HT0初始化;

MOVTH0,#3CH

MOVTL0,#0B0H送100ms时间常数;

MOVIE,#82H允许T0中断、CPU开中断;

MOV30H,#5设置100ms计数器初值;

SETBTR0启动T0计数;

AJMP$等待;

INT_TIMER0:

MOVTH0,#3CH重置T0初值50ms;

MOVTL0,#0B0H

DJNZ30H,L1判500ms到否?

MOV30H,#5恢复100ms计数器初值;

CPLP1.0500ms到,P1.0求反;

L1:

RETI返主。

END

实验三单片机多个I/O的控制系统

掌握对CPU的多个I/O控制,在P1口实现8个发光二极管的流水闪烁。

AT89S51芯片

八个

30Pf

ORG00H

START:

MOVA,#0FFH

CLRC

MOVR2,#08H发光二极管的个数;

RLCA左移累加器A中的内容;

MOVP1,AA中内容送P1口,点亮一个二极管;

CALLDELAY延时约2ms;

DJNZR2,LOOP转循环程序,依次点亮8个二极管;

MOVR2,#07H

LOOP1:

RRCA右移累加器A中的内容;

MOVP1,A熄灭一个二极管;

CALLDELAY延时

DJNZR2,LOOP1转循环程序,依次熄灭8个二极管;

JMPSTART跳转开始,重新执行循环

DELAY:

MOVR3,#20延时子程序

MOVR4,#20

MOVR5,#248

RET

实验四三位循环计数系统

用来熟悉对多位数码管的驱动和正确显示。

数码管

共阴极

三个

十一个

三极管

NPN型9013

ORG0000H

A_BITEQU30H第一位数码管数值;

B_BITEQU31H第二位数码管数值;

C_BITEQU32H第三位数码管数值;

ORG0000H程序起始地址;

AJMPSTAR

ORG0030HSTAR的起始地址;

STAR:

CLRP0.0

MOVA,#00H清空累加器;

MOVA_BIT,A

MOVB_BIT,A

MOVC_BIT,A

STLOP:

ACALLDISPLAY调用显示子程序;

INCA_BIT

MOVA,A_BIT

CJNEA,#10,STLOP判断第一位是否到10,到10则第二位开始计

MOVA_BIT,#00H数;

INCB_BIT

MOVA,B_BIT

CJNEA,#10,STLOP判断第二位是否到10,到10则第三位开始计

MOVB_BIT,#00H数;

INCC_BIT

MOVA,C_BIT

CJNEA,#10,STLOP判断第三位是否到10,到10则给第三位清0;

MOVC_BIT,#00H

AJMPSTLOP

DISPLAY:

MOVDPTR,#NUMTAB字形表首地址;

MOVR0,#4

DPL1:

MOVR1,#250

DPLOP:

MOVA,A_BIT

MOVCA,@A+DPTR送第一位字形码;

MOVP1,A

SETBP2.4开第一位显示;

ACALLD1MS延时1MS;

CLRP2.4关第一位显示;

MOVA,B_BIT

MOVCA,@A+DPTR送第二位字形码;

SETBP2.5开第二位显示;

CLRP2.5关第二位显示;

MOVA,C_BIT

MOVCA,@A+DPTR送第三位字形码;

SETBP2.6开第三位显示;

CLRP2.6关第三位显示;

DJNZR1,DPLOP防止余辉效应;

DJNZR0,DPL1

D1MS:

MOVR7,#80延时子程序,延时约300uS;

DJNZR7,$

数码管八段字形表:

NUMTAB:

DB0E7H,21H,0CBH,6BH,2DH,6EH,0EEH,27H,0EFH,6FH

实验五测温系统

利用单片机构成实用系统,熟悉单片机和外围设备的通讯。

十个

4.7KΩ

温度传感器

DALLASDS18B20

TEMPER_LEQU29H用于保存读出温度的低8位

TEMPER_HEQU28H用于保存读出温度的高8位

FLAG1EQU38H是否检测到DS18B20标志位

a_bitequ20h数码管个位数存放内存位置

b_bitequ21h数码管十位数存放内存位置

MAIN:

LCALLGET_TEMPER调用读温度子程序

MOVA,29H

MOVC,40H将28H中的最低位移入C

RRCA

MOVC,41H

MOVC,42H

MOVC,43H

MOV29H,A

LCALLDISPLAY调用数码管显示子程序

CPLP1.0

AJMPMAIN

INIT_1820:

DS18B20复位初始化子程序

SETBP2.2

NOP

CLRP2.2

MOVR1,#3主机发出延时537微秒的复位低脉冲

TSR1:

MOVR0,#107

DJNZR0,$

DJNZR1,TSR1

SETBP2.2然后拉高数据线

MOVR0,#25H

TSR2:

JNBP2.2,TSR3等待DS18B20回应

DJNZR0,TSR2

LJMPTSR4延时

TSR3:

SETBFLAG1置标志位,表示DS1820存在

CLRP1.7检查到DS18B20就点亮P1.7LED

LJMPTSR5

TSR4:

CLRFLAG1清标志位,表示DS1820不存在

CLRP1.1

LJMPTSR7

TSR5:

MOVR0,#117

TSR6:

DJNZR0,TSR6时序要求延时一段时间

TSR7:

GET_TEMPER:

读出转换后的温度值

LCALLINIT_1820先复位DS18B20

JBFLAG1,TSS2

CLRP1.2

RET判断DS1820是否存在?

若DS18B20不存在则返回

TSS2:

CLRP1.3DS18B20被检测到!

MOVA,#0CCH跳过ROM匹配

LCALLWRITE_1820

MOVA,#44H发出温度转换命令

LCALLDISPLAY

LCALLINIT_1820准备读温度前先复位

MOVA,#0BEH发出读温度命令

LCALLREAD_18200将读出的温度数据保存到35H/36H

CLRP1.4

WRITE_1820:

写DS18B20的子程序

MOVR2,#8一共8位数据

WR1:

MOVR3,#6

DJNZR3,$

MOVP2.2,C

MOVR3,#23

DJNZR2,WR1

READ_18200:

读DS18B20的程序,从DS18B20中读出两个字节的温度数据

MOVR4,#2将温度高位和低位从DS18B20中读出

MOVR1,#29H低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00:

MOVR2,#8数据一共有8位

RE01:

MOVR3,#9

RE10:

DJNZR3,RE10

MOVC,P2.2

RE20:

DJNZR3,RE20

DJNZR2,RE01

MOV@R1,A

DECR1

DJNZR4,RE00

MOVA,29H将29H中的十六进制数转换成10进制

MOVB,#1010进制/10=10进制

DIVAB

MOVB_BIT,A十位在A

MOVA_BIT,B个位在B

MOVDPTR,#NUMTAB指定查表启始地址

MOVR1,#250显示1000次

MOVA,A_BIT取个位数

MOVCA,@A+DPTR查个位数的7段代码

MOVP0,A送出个位的7段代码

CLRP2.4开个位显示

ACALLD1MS显示1MS

SETBP2.4

MOVA,B_BIT取十位数

MOVCA,@A+DPTR查十位数的7段代码

MOVP0,A送出十位的7段代码

CLRP2.5开十位显示

SETBP2.5

DJNZR1,DPLOP100次没完循环

DJNZR0,DPL14个100次没完循环

MOVR7,#80

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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