下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理与应用课程设计指导书一、课程设计的基本任务本课程设计的基本要求是使学生熟悉掌握 MCS-51系列单片机的编程方法,学生在 DP-51DPROC单片机综合仿真实验仪的平台环境下,完成一个简单的单片机温度检测系统。二、设备及器件PC机一台DP-51PROC单片机综合仿真实验仪一台导线若干三、课程设计的基本要求设计题目:数字温度计1)编写程序,通过单片机的P3.3 口控制一个DS18B20 完成数字温度的采集,然后用程序处理采集到的数据结果。2)编写程序,通过I 2C 总线器件ZLG7290 实现温度数据的输出显示。 3)结合以上两部分程序,编程实现数字式温度计的程序设计。要求熟练掌握单总
2、线方式器件的应用,熟悉I 2C 总线协议,学习I 2C 器件的使用方法。上述设计完成的同学可以选做万年历时钟设计)四、课程设计的基本步骤数字温度计的设计步骤:相连。2)安装 D5 区 JP1 接口上的短路帽,将D5 区的 SDA. SCL 分别与 A2 区的 P17, P16 相连。3)将 D5区的 RST_L针接上高电平。4)运行编写好的软件程序,观察D5 区数码管显示的温度数据。然后改变DS18B20的表面温度,查看显示的温度数据是否有变化,并调整实验程序使测量值更准确。五、设计题目中部分单元电路1、 B4 区数字温度采集区B4 区上面是一片DS18B20单总线数字温度传感器,可在上面进行
3、单总线和温度采集等相关实验,电路图如下图, DQ 为控制信号输入端, JP12 为电源控制 使用前先短接,做完实验后断开)图 1单总线数字温度采集电路2、 D5 区 IIC 实验区D5区上面是IIC 实验区,有3 个芯片,分别是键盘LED驱动芯 ZLG7290、 EEPROM RCF8563T,可以在上面进行各种相关的IIC实验。电路如图2 所示如图 2 所示 SCL和 SDA为 IIC控制信号端, RST_L和 INT_KEY为 ZLG7290的复位控制和键盘中断接口,CLKOUT和 INT_RTC为 PCF8563T的时钟输出和中断接口,JP1 为电源控制( 使用前先短接,做完实验后断开。
4、另外 ZLG7290芯片同时驱动了8 个数码管和16 个按键( 键值为 0X01- OX10。六、设计参考程序TEMPER_L EQU 36H TEMPER_H EQU 35H TEMPER_NUM EQU 37H FLAG1 BIT 00HDQBIT P3.3SDABIT P1.7SCL BIT P1.6MTDEQU 40HMRDEQU 49H图 2 IIC 实验电路。存放读出温度低位数据。存放读出温度高位数据。存放转换后的温度值。单总线控制端口。 I2C总线定义。发送数据缓冲器。接收数据缓冲区。定义器件地址 , 变量ZLG7290 EQU 70H。 ZLG7290 的器件地址ACKBIT
5、10H。应答标志位SLADATA 50H。器件的从地址SUBADATA 51H。器件的子地址NUMBYTE DATA 52H。读 / 写的字节数变量ORG 8000HLJMP MAINORG 8100H。温度计主程序如下:MAIN:MOV SP,#70HDISP_LOOP:LCALL GET_TEMPER。从 DS18B20 读出温度数据LCALL TEMPER_COV。转换读出的温度数据并保存LCALL DELAYMOV MTD,#60HMOV MTD+1,TEMPER_NUM。温度值低位ANL MTD+1,#0FHMOV SLA,#ZLG7290。指定器件地址MOV SUBA,#07H。指
6、定子地址MOV NUMBYTE,#02H。发送 2字节数据LCALL IWRNBYTE。调用写 2字节数据程序MOV MTD,#61HMOV A,TEMPER_NUMSWAP AANL A,#0FHMOV MTD+1,A。温度值高位MOV SLA,#ZLG7290。指定器件地址MOV SUBA,#07H。指定子地址MOV NUMBYTE,#02H。发送 2字节数据LCALL IWRNBYTE。调用写 2字节数据程序LCALL DELAYSJMP DISP_LOOP。温度循环采集显示。读出转换后的温度值GET_TEMPER:SETB DQ。定时入口BCD:LCALL INIT_1820JB FL
7、AG1,S22LJMP BCD。若 DS18B20 不存在则返回S22:3 / 8LCALL DELAY1MOV A,#0CCH。跳过 ROM 匹配 -0CCLCALL WRITE_1820MOV A,#44H。发出温度转换命令LCALL WRITE_1820NOPLCALL DELAYLCALL DELAYCBA:LCALL INIT_1820JB FLAG1,ABCLJMP CBAABC:LCALL DELAY1MOV A,#0CCH。跳过 ROM 匹配LCALL WRITE_1820MOV A,#0BEH。发出读温度命令LCALL WRITE_1820LCALL READ_18200 。
8、 READ_1820RET。读 DS18B20 的程序 , 从 DS18B20 中读出一个字节的数据READ_1820:MOV R2,#8。读取一个字节RE1:CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7。延时DJNZ R3,$MOV C,DQ。读取一个位MOV R3,#23。延时DJNZ R3,$RRC ADJNZ R2,RE1RET。写 DS18B20 的程序WRITE_1820:MOV R2,#8。发送一个字节4 / 8CLR CWR1820:CLR DQMOV R3,#6。延时DJNZ R3,$RRC AMOV DQ,C。发送一个位
9、MOV R3,#23。延时DJNZ R3,$SETB DQNOPDJNZ R2,WR1820SETB DQRET。读 DS18B20 的程序 , 从 DS18B20 中读出两个字节的温度数据READ_18200:。将温度高位和低位从DS18B20 中读出MOV R4,#2MOV R1,#36H。 低位存入36H(TEMPER_L,高位存入35H(TEMPER_HRE00:MOV R2,#8。读取一个字节RE01:CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7。延时DJNZ R3,$MOV C,DQ。读取一个位MOV R3,#23。延时DJNZ
10、 R3,$RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET。将从 DS18B20 中读出的温度数据进行转换5 / 8TEMPER_COV:MOV A,#0F0HANL A,TEMPER_L。 舍去温度低位中小数点后的四位温度数值SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 。四舍五入去温度值INC TEMPER_NUMTEMPER_COV1:MOV A,TEMPER_HANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,A 。保存变换后的温
11、度数据LCALL BIN_BCDRET。将 16进制的温度数据转换成压缩BCD 码BIN_BCD:MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,ARETTEMP_TAB:DB 00H,01H,02H,03H,04H,05H,06H,07HDB 08H,09H,10H,11H,12H,13H,14H,15HDB 16H,17H,18H,19H,20H,21H,22H,23HDB 24H,25H,26H,27H,28H,29H,30H,31HDB 32H,33H,34H,35H,36H,37H,38H,39HDB 40H
12、,41H,42H,43H,44H,45H,46H,47HDB 48H,49H,50H,51H,52H,53H,54H,55HDB 56H,57H,58H,59H,60H,61H,62H,63HDB 64H,65H,66H,67H,68H,69H,70H,71HDB 72H,73H,74H,75H,76H,77H,78H,79HDB 80H,81H,82H,83H,84H,85H,86H,87HDB 88H,89H,90H,91H,92H,93H,94H,95HDB 96H,97H,98H,99H。 DS18B20 初始化程序INIT_1820:SETB DQNOPCLR DQMOV R0,#8
13、0H6 / 8TSR1:DJNZ R0,TSR1 。延时SETB DQMOV R0,#25H 。 96uSTSR2:DJNZ R0,TSR2JNB DQ,TSR3LJMP TSR4 。延时TSR3:SETB FLAG1 。置标志位 , 表示 DS1820 存在LJMP TSR5TSR4:CLR FLAG1 。清标志位 , 表示 DS1820 不存在LJMP TSR7TSR5:MOV R0,#06BH 。 200uSTSR6:DJNZ R0,TSR6 。延时TSR7:SETB DQRET。重新写DS18B20 暂存存储器设定值RE_CONFIG:JB FLAG1,RE_CONFIG1。若 DS1
14、8B20 存在 , 转 RE_CONFIG1RETRE_CONFIG1:MOV A,#0CCH。发 SKIP ROM 命令LCALL WRITE_1820MOV A,#4EH 。发写暂存存储器命令LCALL WRITE_1820MOV A,#00H 。 TH(报警上限 中写入 00HLCALL WRITE_1820MOV A,#00H 。 TL( 报警下限 中写入 00HLCALL WRITE_1820MOV A,#7FH 。选择 12位温度分辨率LCALL WRITE_1820RET。延时子程序DELAY:MOV R7,#00HMIN:DJNZ R7,YS500RETYS500:7 / 8L
15、CALL YS500USLJMP MINYS500US:MOV R6,#00HDJNZ R6,$RETDELAY1:MOV R7,#20HDJNZ R7,$RET$INCLUDE(VI2C_ASM.INC 。包含 VIIC软件包END七、实验报告格式及要求报告格式按照学院课程设计报告格式统一标准,写出设计的基本步骤及方案;绘制硬件设计原理图及电路图;设计出完整的程序框图和程序清单;写出设计心得体会。预习要求: 1、认真查阅课程设计相关资料I 2C 总线 、 DS18B20 单总线数字温度传感2器、 I C 总线器件ZLG7290)八、考核方式及成绩评定考核方式 :考查考核方法 :设计过程中检查学生实际操作能力,根据课程设计内容要求,设计相关程序 , 指导书中所给代码仅供参考,要求学生独立进行整体程序设计。成绩评定 :实验成绩根据考勤、实验态度、动手能力、创新能力和实验报告来综合评定,分 5 个级别:优、良、中、及格、不及格。九、参考资料1、 DP-51PROC实验指导书 实验设备配套指导资料),2007 年2、李广第等单片机基础北京航
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产成本控制及效率提升研究
- 旅游景区管理岗位的面试全攻略
- 房地产经纪公司市场分析岗位的职责与要求解析
- 影视导演项目筹备与实施计划指南
- 项目案例:某项目技术难题与解决思路适合新人培训
- 今日头条内容运营部的工作安排与规划
- 创新科技公司市场推广专员年度工作策略与部署
- 客栈楼上施工方案(3篇)
- 精密车间施工方案(3篇)
- 活动现场安全应急处理方案
- 低钠血症的中国专家共识2023解读
- 员工手册(劳务派遣)-
- 糖尿病足皮肤护理
- 地球的演化过程(专项训练)-2025年上海高考地理一轮复习(解析版)
- 《智能网联汽车智能传感器测试与装调》电子教案
- 《法律职业伦理(第三版)》课件全套 王进喜 第1-21章 法律职业-司法鉴定职业伦理
- 2024年红河州红河县下属乡镇乡村振兴公务员招录2人《行政职业能力测验》模拟试卷(答案详解版)
- 产后出血病例讨论
- 第一讲 马克思的生平课件
- 不锈钢给水管施工工艺
- 预防呼吸道疾病呼吸健康
评论
0/150
提交评论