《单片机原理与应用》课程设计指导书68 .docx
精品名师归纳总结单片机原理与应用课程设计指导书一、课程设计的基本任务本课程设计的基本要求是使同学熟识把握MCS-51系列单片机的编程方法,同学在DP- 51DPROC单片机综合仿真试验仪的平台环境下,完成一个简洁的单片机温度检测系统。二、设备及器件PC机一台DP-51PROC单片机综合仿真试验仪一台导线如干三、课程设计的基本要求设计题目:数字温度计<1)编写程序,通过单片机的P3.3 口掌握一个 DS18B20 完成数字温度的采集,然后用2程序处理采集到的数据结果。<2)编写程序,通过I C 总线器件 ZLG7290 实现温度数据的22输出显示。 <3)结合以上两部分程序,编程实现数字式温度计的程序设计。要求娴熟把握可编辑资料 - - - 欢迎下载精品名师归纳总结单总线方式器件的应用,熟识IC 总线协议,学习 IC 器件的使用方法。可编辑资料 - - - 欢迎下载精品名师归纳总结<上述设计完成的同学可以选做万年历时钟设计)四、课程设计的基本步骤数字温度计的设计步骤:<1)安装 B4 区 JP12 接口上的短路帽,将B4 区的 DQ与 A2 区 INT1 P3.3>相连。<2)安装 D5 区 JP1 接口上的短路帽,将D5 区的 SDA. SCL 分别与 A2 区的 P17, P16 相连。<3)将 D5区的 RST_L针接上高电平。<4)运行编写好的软件程序,观看D5 区数码管显示的温度数据。然后转变DS18B20的表面温度,查看显示的温度数据是否有变化,并调整试验程序使测量值更精确。五、设计题目中部分单元电路1、B4 区数字温度采集区B4 区上面是一片 DS18B20单总线数字温度传感器,可在上面进行单总线和温度采集等相关试验,电路图如下图,DQ 为掌握信号输入端, JP12 为电源掌握 <使用前先短接,做完试验后断开)图 1单总线数字温度采集电路可编辑资料 - - - 欢迎下载精品名师归纳总结2、D5 区 IIC 试验区D5区上面是 IIC 试验区,有3 个芯片,分别是键盘LED驱动芯 ZLG7290、EEPROM<256个字节) CAT24WC0、2 实时时钟芯片验。电路如图2 所示RTC> RCF8563T,可以在上面进行各种相关的IIC实如图 2 所示 SCL和 SDA为 IIC掌握信号端, RST_L和 INT_KEY为 ZLG7290 的复位掌握和键盘中断接口, CLKOUT和 INT_RTC为 PCF8563T的时钟输出和中断接口,JP1 为电源掌握 使用前先短接,做完试验后断开 键值为 0X01- OX10>。>。另外 ZLG7290 芯片同时驱动了8 个数码管和 16 个按键图 2IIC试验电路六、设计参考程序TEMPER_L EQU 36H。存放读出温度低位数据TEMPER_H EQU 35H。存放读出温度高位数据TEMPER_NUM EQU 37H。存放转换后的温度值FLAG1 BIT 00HDQBIT P3.3。单总线掌握端口SDABIT P1.7。I2C总线定义SCL BIT P1.6MTDEQU 40H。发送数据缓冲器MRDEQU 49H。接收数据缓冲区可编辑资料 - - - 欢迎下载精品名师归纳总结。定义器件的址 , 变量ZLG7290 EQU 70H。ZLG7290 的器件的址ACKBIT 10H。应答标志位SLADATA 50H。器件的从的址SUBADATA 51H。器件的子的址NUMBYTE DATA 52H。读 / 写的字节数变量ORG 8000H LJMP MAIN ORG 8100H。温度计主程序如下:MAIN:MOV SP,#70H DISP_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。指定子的址 MOV NUMBYTE,#02H。发送 2字节数据LCALL IWRNBYTE。调用写 2字节数据程序MOV MTD,#61HMOV A,TEMPER_NUM SWAP 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_1820 JB FLAG1,S22LJMP BCD。如 DS18B20 不存在就返回S22:可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结CBA:ABC:LCALL DELAY1MOV A,#0CCH。跳过 ROM 匹配0CCLCALL WRITE_1820MOV A,#44H。发出温度转换命令LCALL WRITE_1820 NOPLCALL DELAY LCALL DELAYLCALL INIT_1820 JB FLAG1,ABC LJMP CBALCALL DELAY1MOV A,#0CCH。跳过 ROM 匹配LCALL WRITE_1820MOV A,#0BEH。发出读温度命令LCALL WRITE_1820LCALL READ_18200 。READ_1820 RET可编辑资料 - - - 欢迎下载精品名师归纳总结。读 DS18B20 的程序 , 从 DS18B20 中读出一个字节的数据READ_1820:MOV R2,#8。读取一个字节可编辑资料 - - - 欢迎下载精品名师归纳总结RE1:CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQMOV R3,#7。延时DJNZ R3,$MOV C,DQ。读取一个位MOV R3,#23。延时DJNZ R3,$ RRC ADJNZ R2,RE1 RET可编辑资料 - - - 欢迎下载精品名师归纳总结。写 DS18B20 的程序WRITE_1820:MOV R2,#8。发送一个字节可编辑资料 - - - 欢迎下载精品名师归纳总结CLR C WR1820:CLR DQMOV R3,#6。延时DJNZ R3,$ RRC AMOV DQ,C。发送一个位MOV R3,#23。延时DJNZ R3,$ SETB DQ NOPDJNZ R2,WR1820 SETB DQRET。读 DS18B20 的程序 , 从 DS18B20 中读出两个字节的温度数据READ_18200:。将温度高位和低位从DS18B20 中读出MOV R4,#2 MOV R1,#36H。 低位存入 36HTEMPER_L>,高位存入 35HTEMPER_H>RE00:可编辑资料 - - - 欢迎下载精品名师归纳总结RE01:MOV R2,#8。读取一个字节CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQMOV R3,#7。延时DJNZ R3,$MOV C,DQ。读取一个位MOV R3,#23。延时DJNZ R3,$ RRC ADJNZ R2,RE01 MOV R1,A DEC R1DJNZ R4,RE00RET可编辑资料 - - - 欢迎下载精品名师归纳总结。将从 DS18B20 中读出的温度数据进行转换可编辑资料 - - - 欢迎下载精品名师归纳总结TEMPER_COV:MOV A,#0F0H ANL A,TEMPER_L。 舍去温度低位中小数点后的四位温度数值SWAP AMOV TEMPER_NUM,A MOV A,TEMPER_LJNB ACC.3,TEMPER_COV1。四舍五入去温度值INC TEMPER_NUM TEMPER_COV1:MOV A,TEMPER_H ANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,A 。储存变换后的温度数据LCALL BIN_BCDRET。将 16进制的温度数据转换成压缩BCD 码BIN_BCD:MOV DPTR,#TEMP_TAB MOV A,TEMPER_NUM MOVC A,A+DPTR MOV TEMPER_NUM,A RETTEMP_TAB:DB 00H,01H,02H,03H,04H,05H,06H,07H DB 08H,09H,10H,11H,12H,13H,14H,15H DB 16H,17H,18H,19H,20H,21H,22H,23H DB 24H,25H,26H,27H,28H,29H,30H,31H DB 32H,33H,34H,35H,36H,37H,38H,39H DB 40H,41H,42H,43H,44H,45H,46H,47H DB 48H,49H,50H,51H,52H,53H,54H,55H DB 56H,57H,58H,59H,60H,61H,62H,63H DB 64H,65H,66H,67H,68H,69H,70H,71H DB 72H,73H,74H,75H,76H,77H,78H,79H DB 80H,81H,82H,83H,84H,85H,86H,87H DB 88H,89H,90H,91H,92H,93H,94H,95H DB 96H,97H,98H,99H。DS18B20 初始化程序INIT_1820:SETB DQ NOP CLR DQMOV R0,#80H可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结TSR1:TSR2:TSR3:TSR4:TSR5: TSR6: TSR7:DJNZ R0,TSR1 。延时SETB DQMOV R0,#25H 。96uSDJNZ R0,TSR2 JNB DQ,TSR3 LJMP TSR4 。延时SETB FLAG1 。置标志位 , 表示 DS1820 存在LJMP TSR5CLR FLAG1 。清标志位 , 表示 DS1820 不存在LJMP TSR7MOV R0,#06BH 。200uS DJNZ R0,TSR6 。延时SETB DQ RET可编辑资料 - - - 欢迎下载精品名师归纳总结。重新写 DS18B20 暂存储备器设定值RE_CONFIG:JB FLAG1,RE_CONFIG1。如 DS18B20 存在 , 转 RE_CONFIG1 RETRE_CONFIG1:MOV A,#0CCH。发 SKIP ROM 命令LCALL WRITE_1820MOV A,#4EH 。发写暂存储备器命令LCALL WRITE_1820MOV A,#00H 。TH报警上限 >中写入 00H LCALL WRITE_1820MOV A,#00H 。TL 报警下限 >中写入 00H LCALL WRITE_1820MOV A,#7FH 。挑选 12位温度辨论率LCALL WRITE_1820 RET。延时子程序DELAY:MOV R7,#00H可编辑资料 - - - 欢迎下载精品名师归纳总结MIN:YS500:DJNZ R7,YS500 RET可编辑资料 - - - 欢迎下载精品名师归纳总结LCALL YS500US LJMP MINYS500US:MOV R6,#00H DJNZ R6,$ RETDELAY1:MOV R7,#20H DJNZ R7,$ RET$INCLUDEVI2C_ASM.INC> 。包含 VIIC软件包END七、试验报告格式及要求2报告格式依据学院课程设计报告格式统一标准,写出设计的基本步骤及方案。绘制硬件设计原理图及电路图。设计出完整的程序框图和程序清单。写出设计心得体 会。可编辑资料 - - - 欢迎下载精品名师归纳总结预习要求: 1、仔细查阅课程设计相关资料<I2C 总线 、 DS18B20 单总线数字温度传感可编辑资料 - - - 欢迎下载精品名师归纳总结器、 I C 总线器件 ZLG7290)2、仔细阅读参考程序,懂得程序的算法和原理。八、考核方式及成果评定考核方式 :考查考核方法 :设计过程中检查同学实际操作才能,依据课程设计内容要求,设计相关程序 ,指导书中所给代码仅供参考,要求同学独立进行整体程序设计。成果评定 :试验成果依据考勤、试验态度、动手才能、创新才能和试验报告来综合评定,分 5 个级别:优、良、中、及格、不及格。九、参考资料1、DP-51PROC试验指导书 <试验设备配套指导资料),2007 年2、李广第等单片机基础北京航空航天高校出版社,2005 年3、胡汉才等 . 单片机原理及其接口技术. 清华高校出版社 ,1999 年4、张迎新等单片机初级教程北京航空航天高校出版社,2001 年5、周航慈单片机程序设计基础北京航空航天高校出版社,1998 年6、李朝青单片机原理及接口技术北京航空航天高校出版社,1999 年7、张毅刚等 .MCS-51 单片机应用设计 . 哈尔滨工业高校出版社,1997 年8、单片机网站及相关论坛9、DS18B20单总线数字温度传感器相关书籍10、 IIC相关书籍。可编辑资料 - - - 欢迎下载