51配件接线图(旧版)_第1页
51配件接线图(旧版)_第2页
51配件接线图(旧版)_第3页
51配件接线图(旧版)_第4页
51配件接线图(旧版)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

获得更多电子资料 请登入 第第 1 页页 共共 14 页页 51 单片机学习板配件接线及演示程序单片机学习板配件接线及演示程序 1 步进电机 把步进电机的插头插在学习板上标有 步进电机 的插座中 如下图所示 并把 编写好程序下载到学习板的单片机中去 就可以看到步进电机运行相应的动作 例子 步进电机正转 AA MOVP1 11111110B LCALLKK MOVP1 11111101B LCALLKK MOVP1 11111011B LCALLKK MOVP1 11110111B LCALLKK SJMPAA 延时 KK MOVR5 01 K1 MOVR6 80H K2 MOVR7 80H K3 NOP DJNZR7 K3 DJNZR6 K2 DJNZR5 K1 RET 获得更多电子资料 请登入 第第 2 页页 共共 14 页页 2 DS18B20 温度传感器 把 DS18B20 温度传感器的三个管脚对应插到学习板上黑色的标注 温度 插座 注意 板上有一个弧度 传感器对应弧度方向 有字的一面向里面 弧度那面向外面插入 如下图所示 把编写好的程序下载到学习板的单片机中 从相应的数码管可看到当前 温度的变化 例子 两位数码管温度显示 ORG0000H START MOVR5 00H 获得更多电子资料 请登入 第第 3 页页 共共 14 页页 MOVP0 00111111B MOVP2 00001111B MOVR0 24 A5 MOVR1 250 A4 LCALLD1MS DJNZR1 A4 DJNZR0 A5 单片机内存分配申明 TEMPER LEQU 29H 用于保存读出温度的低 8 位 TEMPER HEQU 28H 用于保存读出温度的高 8 位 FLAG1 EQU 38H 是否检测到 DS18B20 标志位 G BIT EQU 20H 数码管个位数存放内存位置 S BIT EQU 21H 数码管十位数存放内存位置 BG BITEQU 22H BS BITEQU 23H MAIN LCALLGET TEMPER 调用读温度子程序 显示范围 00 到 99 度 显示精 度为 1 度 因为 12 位转化时每一位的精度为 0 0625 度 我们不要求显示小数所以可以抛弃 29H 的低 4 位将 28H 中的低 4 位移入 29H 中的高 4 位 这样获 得一个新字节 这个字节就是实际测量获得的温度 这个转化温度的方法非常简洁无需乘于 0 0625 系数 MOVA 29H MOV C 40H 将 28H 中的最低位移入 C RRC A MOV C 41H RRC A MOV C 42H RRC A MOV C 43H RRC A MOV 29H A LCALL DISPLAY 调用数码管显示子程序 AJMP MAIN 获得更多电子资料 请登入 第第 4 页页 共共 14 页页 这是 DS18B20 复位初始化子程序 INIT 1820 SETB P2 1 NOP CLR P2 1 主机发出延时 537 微秒的复位低脉冲 MOV R1 3 TSR1 MOV R0 107 DJNZ R0 DJNZ R1 TSR1 SETB P2 1 然后拉高数据线 NOP NOP NOP MOV R0 25H TSR2 JNB P2 1 TSR3 等待 DS18B20 回应 DJNZ R0 TSR2 LJMP TSR4 延时 TSR3 SETB FLAG1 置标志位 表示 DS1820 存在 CLR P1 7 检查到 DS18B20 就点亮 P1 7LED LJMP TSR5 TSR4 CLR FLAG1 清标志位 表示 DS1820 不存在 LJMP TSR7 TSR5 MOV R0 117 TSR6 DJNZ R0 TSR6 时序要求延时一段时间 TSR7 SETB P2 1 RET 读出转换后的温度值 GET TEMPER SETB P2 1 LCALL INIT 1820 先复位 DS18B20 JB FLAG1 TSS2 RET 判断 DS1820 是否存在 若 DS18B20 不存在则返回 TSS2 CLR P1 7 DS18B20 已经被检测到 获得更多电子资料 请登入 第第 5 页页 共共 14 页页 MOV A 0CCH 跳过 ROM 匹配 LCALL WRITE 1820 MOV A 44H 发出温度转换命令 LCALL WRITE 1820 这里通过调用显示子程序实现延时一段时间 等待 AD 转换结束 12 位的话 750 微秒 LCALL DISPLAY LCALL INIT 1820 准备读温度前先复位 MOV A 0CCH 跳过 ROM 匹配 LCALL WRITE 1820 MOV A 0BEH 发出读温度命令 LCALL WRITE 1820 LCALL READ 18200 将读出的温度数据保存到 35H 36H CLR P1 7 RET 写 DS18B20 的子程序 有具体的时序要求 WRITE 1820 MOV R2 8 一共 8 位数据 CLR C WR1 CLR P2 1 MOV R3 6 DJNZ R3 RRC A MOV P2 1 C MOV R3 23 DJNZ R3 SETB P2 1 NOP DJNZ R2 WR1 SETB P2 1 RET 读 DS18B20 的程序 从 DS18B20 中读出两个字节的温度数据 READ 18200 MOV R4 2 将温度高位和低位从 DS18B20 中读出 获得更多电子资料 请登入 第第 6 页页 共共 14 页页 MOV R1 29H 低位存入 29H TEMPER L 高位存入 28H TEMPER H RE00 MOV R2 8 数据一共有 8 位 RE01 CLR C SETB P2 1 NOP NOP CLR P2 1 NOP NOP NOP SETB P2 1 MOV R3 9 RE10 DJNZ R3 RE10 MOV C P2 1 MOV R3 23 RE20 DJNZ R3 RE20 RRC A DJNZ R2 RE01 MOV R1 A DEC R1 DJNZ R4 RE00 RET 显示子程序 DISPLAY MOV A 29H 将 29H 中的十六进制数转换成 10 进制 MOV B 10 10 进制 10 10 进制 DIV AB MOV S BIT A 十位在 A MOV G BIT B 个位在 B MOVDPTR TAB MOV R0 4 DPL1 MOV R1 250 显示 1000 次 DPLOP MOV A G BIT 取个位数 MOVCA A DPTR 查表 获得更多电子资料 请登入 第第 7 页页 共共 14 页页 MOVP0 A CLRP2 4 LCALLD1MS SETB P2 4 MOV A S BIT MOVCA A DPTR MOVP0 A CLRP2 5 LCALLD1MS SETBP2 5 显示温度的同时检测温度是否在设定的温度范围内 是则仅仅是显示 不做别的操作 否则 报警并且看温度过高还是过低 过高显示红灯 表示 加温 过低显示黄灯 表示减温 DJNZ R1 DPLOP 100 次没完循环 DJNZ R0 DPL1 4 个 100 次没完循环 RET 1MS 延时 按 12MHZ 算 D1MS MOV R7 80 DJNZ R7 RET TAB DB00111111B DB00000110B DB01011011B DB01001111B DB01100110B DB01101101B DB01111101B DB00000111B DB01111111B DB01101111B END 获得更多电子资料 请登入 第第 8 页页 共共 14 页页 3 四路无线收发模块 把接收模块插到学习板的单排七孔对应插座 天线部份朝外 如下图所示 把编写好 的程序下载到学习板的单片机中 运行后可通过无线发送遥控观察学习板程序相应的 变化 获得更多电子资料 请登入 第第 9 页页 共共 14 页页 P3 3 P3 4 P3 5 89S52 P3 2 18 19 20 5V 9 40 10u F 10K 11 0592MH z 20P20P 发发发发发发发 13 12 11 10 5V AB CD 发发发发发发发 1011 1213 例子 无线收发模块 AA JNBP3 2 A1 JNBP3 3 A2 JNBP3 4 A3 JNBP3 5 A4 SJMPAA A1 MOVP1 11111110B SJMPAA A2 MOVP1 11111101B SJMPAA A3 MOVP1 11111011B SJMPAA A4 MOVP1 11110111B SJMPAA 4 128 64 液晶模块 把液晶模块直接插到学习板上对应的插座 位置和方向如下图所示 把编写好的程序 下载到学习板的单片机中 运行后可以从液晶屏上看到效果 如需调节液晶屏的亮度 可 通过单片机晶振旁边的蓝色可调电阻调节 获得更多电子资料 请登入 第第 10 页页 共共 14 页页 5 直流电机 把直流电机的插头插到学习板上标注 直流电机 的插座上 如下图所示 把编写好 的程序下载到学习板的单片机中 运行后可以观察直流电机相应的变化 获得更多电子资料 请登入 第第 11 页页 共共 14 页页 6 16 16 点阵显示器 获得更多电子资料 请登入 第第 12 页页 共共 14 页页 例子 静态显示三个字 TTEQU 150 定义显示时间长短 MOV P3 00H 初始化 MOV P2 00H 初始化 AA MOV R2 TT 控制汉字静态显示时间 MOV DPTR TAB1 调用第一个汉字的字码表 A3 LCALLJTXS 调用静态显示子程序 DJNZR2 A3 MOV R2 TT 控制汉字静态显示时间 MOV DPTR TAB2 调用第二个汉字的字码表 A4 LCALLJTXS 调用静态显示子程序 DJNZR2 A4 MOV R2 TT 控制汉字静态显示时间 MOV DPTR TAB3 调用第三个汉字的字码表 A5 LCALLJTXS 调用静态显示子程序 此处用 40P 排 线连起 或将 写好的 AT89S52 51 直接插到点阵 板上通电运行 即可 获得更多电子资料 请登入 第第 13 页页 共共 14 页页 DJNZR2 A5 LJMPAA 重复开始 静态显示子程序 JTXS MOV R0 00H 从第一列开始扫描 MOV R1 00H 从第一组代码开始送数 SETBP3 0 打开控制上半部字码显示 A2 MOV P1 R0 列扫描 A1 LCALLCB 调用查表子程序 INC R1 下一代码 INC R0 下一列 CJNE R1 16 A2 是否完成上半部字码显示 CLR P3 0 关闭控制上半部字码显示 MOV R0 00H 从第一列开始扫描 SETBP3 1 打开控制下半部字码显示 a22 MOV P1 R0 列扫描 LCALLCB 调用查表子程序 INC R1 下一代码 INC R0 下一列 CJNER1 32 A22 是否完成下半部字码显示 CLR P3 1 关闭控制下半部字码显示 RET 返回 查表子程序 CB MOV A R1 查字码表 MOVCA A DPTR MOV P2 A 查出结果送 P2 口显示 LCALLKK 调用一个代码显示时间 RET 延时子程序 KK MOV R7 180 K1 NOP DJNZR7 K1 RET 汉字字码表 TAB1 DB 20h 20h 20h 20h 20h 20h 0A0h 7Fh 0A0h 20h 20h 20h 20h 20h 20h 00h DB00h 80h 40h 20h 10h 0Ch 03h 00h 01h 06h 08h 30h 60h 0C0h 40h 00h TAB2 DB 00h 18h 04h 14h 94h 94h 0D5h 0B6h 14h 14h 94h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论