最新大连理工大学单片机实验报告2

合集下载

单片机实训实验报告总结

单片机实训实验报告总结

一、实验背景与目的随着科技的不断发展,单片机作为一种微小的计算机系统,在工业控制、智能家居、汽车电子等领域得到了广泛的应用。

为了提高学生的实践能力和创新意识,本实训课程旨在通过实际操作,让学生掌握单片机的原理、编程和调试方法,培养学生的动手能力和团队协作精神。

本次实训以51单片机为核心,结合数码管、LED灯、按键等外围电路,设计了多个实验项目,包括LED流水灯、交通灯控制系统、简易计算器、温湿度监控系统等。

通过这些实验,使学生深入了解单片机的硬件结构和软件编程,提高学生的实际操作能力和问题解决能力。

二、实验内容与过程1. 实验一:LED流水灯(1)实验目的:掌握51单片机的I/O口编程,实现LED灯的流水效果。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口;② 编写程序:使用循环语句和延时函数控制LED灯的流水效果;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的流水效果。

2. 实验二:交通灯控制系统(1)实验目的:学习单片机在交通灯控制系统中的应用,实现红黄绿灯的变换及倒计时功能。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口,按键连接到外部中断INT0;② 编写程序:设置定时器中断,实现倒计时功能;编写外部中断程序,实现红黄绿灯的变换;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察交通灯的工作状态和倒计时效果。

3. 实验三:简易计算器(1)实验目的:掌握矩阵键盘扫描原理、LCD1602显示屏控制,实现基本的四则运算。

(2)实验步骤:① 硬件连接:将矩阵键盘和LCD1602显示屏连接到单片机;② 编写程序:实现矩阵键盘扫描、LCD1602显示控制和运算逻辑处理;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察计算器的工作状态和运算结果。

4. 实验四:温湿度监控系统(1)实验目的:学习单片机在温湿度监控系统中的应用,实现温度和湿度的实时显示。

(2)实验步骤:① 硬件连接:将温度传感器和湿度传感器连接到单片机,将LED灯连接到P1口;② 编写程序:实现温度和湿度的实时采集,并根据采集到的数据控制LED灯的亮灭;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的亮灭状态和数码管上的温度、湿度值。

单片机实训报告范文精选5篇精选

单片机实训报告范文精选5篇精选

单片机实训报告范文精选5篇实训报告是展示本身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。

单片机课程设计心得体会在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我理解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。

通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要英勇的迈出第一步,不要总找借口说没有学习过就总推脱。

凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。

可以从建工程开始,然后可以找一个简单的小程序先把它敲进单片机内然他运转起来,感受一下单片机的运转,让本人理解单片机整个运转。

第二:关于知识点,学过的要掌握结实,关于没有学的和临时用不到的先不用学习。

比方:小灯得点亮就没有用到中断可以先不用看。

如此可以防止知识过多记不住的苦恼。

关于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进展学习如此才能掌握的特别牢靠,当用到哪里的知识点不记得了可以去看书,关于用不到的可以不去看。

第三:程序不要只是看别人得,一定要本人写过才是本人的。

开始不明白可以参考别人的,看看每一句代表着什么意思,可以实现什么现象。

明白之后本人再重新写一遍,你会觉观察别人的能明白到本人写的时候特别困难。

当你本人能写出来的时候说明你真明白了。

第四:一定要学会程序调试的方法。

有时候把程序写完了然后运转时不能实现理想的现象。

这时有人就晕了不知该如何办,然后就去征询别人。

当别人找出征询题出在哪里时就会恍然大悟。

事实受骗遇到征询题一定要本人尝试着处理,不能遇到征询题就去征询别人。

本人一定要掌握处理征询的方法和思路。

第五:在学习初期看别人的代码,学习别人的思路这个特别有用。

通过看别人的代码特别是有多年编程经历的人的程序,可以迅速提高本人的编程水平。

大连理工大学单片机实验报告

大连理工大学单片机实验报告

大连理工大学单片机实验报告————————————————————————————————作者:————————————————————————————————日期:ﻩ大连理工大学本科设计报告题目: 单总线高精度温度采集系统课程名称:单片机综合设计实验学院(系):信息与通信工程学院专业:电子信息工程班级:电子学号:学生姓名:成绩:2016 年 5 月 5 日一.设计要求1. 启动DS 18B20进行12位高精度环境温度采集2. 利用12864LCD 屏/数码管显示数据3. 具有温度上限声光报警器4. 可以通过键盘设定报警上限值(选)二.设计分析及系统方案设计通过DS 18B20进行小数12位温度转换、采集,通过单片机读取DS18B 20采集到的12位温度值进行二进制到十六进制的转换,利用ZLG7290进行八位数码管显示;利用键盘进入中断来设定报警上限,当温度高于上限时进入报警子程序。

利用SW1进入中断来查看当前设置的温度报警上下限值,利用ZLG7290和数码管来显示。

主程序不断循环采集温度比较,并可随时进入中断来修改温度上下限和查看温度值。

三.系统电路图ZLG7290B SDA SCL /RSTI 2C 总线VCC上拉电阻 5K×28位数码管AT89C51P1.0 P1.1 P1.7四.外围接口模块硬件电路功能描述1.DS18B20:用于测定温度,测量范围-55~+125,分辨率为0.0625℃,数据格式为二进制补码形式。

2.ZLG7290B:用于数码管动态显示驱动,键盘扫描管理。

能够驱动8位共阴极结构的LED数码管或64位独立的LED,同时还能扫描管理多达64个按键的扫描识别,其中八个键可以作为功能键使用。

接口采用I²C结构。

3.蜂鸣器:这里用作报警,为无源蜂鸣器。

五.主程序中主要变量定义变量名称内存单元功能TEMPER_L 36H 存放温度低四位TEMPER_H 35H 存放温度高四位TEMPER34H 转换后的温度值33HBCD形式温度值TEMPER_BCDﻩTEMPER_NUM 60H 温度值缓冲单元WSLA_729070H 7290写控制单元RSLA_7290 71H 7290读控制单元20-27H数码管显示缓冲区28H 存放温度上限值30-31H 存放温度BCD码个位十位六.系统软件中各个子程序的功能描述子程序名称入口参数出口参数功能描述GET_TEMPER无35H,36H读取18B20的温度值READ_18200 35H,36H无向18b20读控制字TEMPER_COV35H,36H 20H,21H温度转换成十进制BCD码形式CF无R3,R4 拆分子程序,拆分送数码管显示INIT_1820 无无温度传感器初始化BUZZER无无蜂鸣器控制发声子程序INT_7290无28H 读取按键外部中断子程序RDKEY无 A 读取键值子程序DELAY 无无延时子程序七.主程序程序流程图8.程序清单(要求打印格式要规范、重要的语句要有必要的注释) SDABIT P1.0SCL BITﻩP1.1ﻩﻩTEMPER_L EQU 36HﻩTEMPER_H EQU35HﻩﻩTEMPER EQU 34Hﻩﻩ;转换后温度值ﻩTEMPER_BCDEQU 33Hﻩﻩ;BCD码温度值TEMPER_NUM EQU60Hﻩ;缓冲单元ﻩWSLA_7290 EQU 70HRSLA_7290 EQU 71HﻩﻩﻩFLAG1 BIT 00HﻩDQ BIT P3.3 ﻩ;总线控制单元ﻩORGﻩ0000HﻩﻩLJMPﻩMAINﻩORG ﻩ0003HLJMPﻩINT_7290ﻩﻩORGﻩﻩ0100HMAIN:ﻩMOV SP,#70Hﻩﻩﻩ;ZLG7290复位CLRﻩP1.7LCALL DELAYﻩﻩSETB P1.7ﻩﻩﻩﻩMOV28H,#1EH ﻩﻩﻩ;温度上限初始值30度ﻩﻩﻩMOVTMOD,#01Hﻩ;模式一,16位计数器ﻩﻩSETBﻩEAﻩﻩﻩ;允许INTO中断ﻩMODE: JBP1.3,SETTMP ﻩﻩ;拨码为0时采集温度;温度采集TMP:ﻩCLR EX0 ﻩﻩﻩﻩMOVﻩ27H,#1FH ﻩﻩ;tLP1:ﻩﻩLCALL GET_TEMPERﻩLCALLﻩTEMPER_COVﻩﻩﻩﻩ;7290显示ﻩMOVﻩR7,#08HﻩMOVﻩR0,#20HMOVﻩR2,#10HﻩMOVﻩR3,#WSLA_7290ﻩLCALLﻩWRNBYTLCALL DELAYﻩﻩﻩMOV A,TEMPERﻩﻩﻩﻩﻩﻩ;判断温度上限28H,R5MOVﻩﻩﻩCLRﻩCCJNE A,28H,relﻩ;此处报警温度为30度rel:ﻩJCﻩNETﻩﻩLCALLﻩBUZZERﻩ;大于等于时蜂鸣器报警ﻩﻩ;闪烁ﻩMOVﻩ28H,#70Hﻩ ;闪烁命令字ﻩMOV 29H,#7FHﻩ;闪烁命令字ﻩﻩMOVﻩR7,#02Hﻩﻩ;设定数据个数ﻩﻩMOVﻩR0,#28Hﻩ;设置源数据首地址MOVﻩR2,#07Hﻩﻩ;设置外围器件内部寄存器首地址MOVﻩR3,#WSLA_7290ﻩ;设定外围器件地址ﻩLCALLﻩWRNBYT ﻩ;调用显示子程序ﻩLCALLﻩDELAYﻩLJMPﻩNEXTTﻩﻩﻩﻩﻩﻩ;设定温度上限SETTMP:SETBﻩEX0ﻩ;7290复位CLR P1.7ﻩLCALLﻩDELAYﻩﻩSETBﻩP1.7ﻩﻩﻩ;显示设定内容ﻩMOVﻩ27H,#0B6H ;SMOV 26H,#9EHﻩ;EﻩMOVﻩ25H,#1FHﻩ;T.ﻩMOV R7,#03HﻩMOV R0,#25HﻩﻩMOVﻩR2,#15HﻩMOV R3,#WSLA_7290ﻩLCALLﻩWRNBYTLCALL DELAYﻩS JMP NEXTTNET:ﻩMOV 28H,#70Hﻩ;不能闪烁29H,#00HﻩMOVﻩﻩMOV R7,#02HMOVﻩR0,#28HﻩMOV R2,#07HﻩMOVﻩR3,#WSLA_7290ﻩLCALL WRNBYTﻩﻩLCALLﻩDELAYNEXTT: CALL DELAYSJMP MODEGET_TEMPER:ﻩSETBﻩDQ ﻩﻩ;定时入口BCD:ﻩLCALLﻩINIT_1820ﻩJBﻩFLAG1,S22ﻩﻩﻩLJMPﻩBCDﻩﻩ;若ds18b20不存在则返回S22: LCALLﻩDELAY1ﻩﻩMOV A,#0CCHﻩﻩ;跳过rom匹配0cch LCALLﻩWRITE_1820ﻩMOVA,#44Hﻩﻩ;发出温度转换命令ﻩLCALLﻩWRITE_1820ﻩLCALLﻩDELAYCBA:ﻩLCALL INIT_1820ﻩJBﻩFLAG1,ABCﻩﻩLJMPﻩCBAABC:ﻩLCALLﻩDELAY1MOV A,#0CCH ﻩ;跳过rom匹配LCALL WRITE_1820ﻩMOVﻩA,#0BEH ﻩ;发出读温度命令ﻩLCALL WRITE_1820LCALLREAD_18200ﻩRETWRITE_1820: ﻩﻩ;写ds18b20程序ﻩﻩMOV R2,#8ﻩCLRﻩCWR1:CLRﻩDQﻩMOV R3,#6 ﻩﻩﻩ;延时24usﻩDJNZﻩR3,$ﻩRRC AﻩMOV DQ,CﻩMOVR3,#23 ;延时60us ﻩDJNZﻩR3,$SETB DQNOPﻩDJNZﻩR2,WR1ﻩﻩSETBﻩDQRETREAD_18200:ﻩﻩﻩ;从1820中读出两个字节温度数据ﻩﻩPUSHﻩ01HﻩMOVﻩR4,#2ﻩﻩMOV R1,#36HRE00:ﻩMOV R2,#8RE01: CLRﻩCSETBﻩDQﻩNOPﻩCLR DQNOPﻩNOPﻩSETBﻩDQﻩﻩMOVﻩR3,#2ﻩﻩDJNZ R3,$ﻩMOV ﻩC,DQMOVﻩﻩR3,#23HﻩDJNZﻩR3,$ﻩﻩRRC AﻩDJNZ R2,RE01ﻩMOVﻩﻩ@R1,ADECﻩﻩR1ﻩDJNZ R4,RE0001HPOPﻩﻩﻩﻩRETU8TEMPER_COV:ﻩﻩﻩﻩﻩ;将读出的数据转换ﻩPUSH DPHﻩﻩPUSH DPLPUSHﻩ02HﻩﻩMOV ﻩA,#0F0HﻩﻩANLﻩA,TEMPER_Lﻩﻩ;舍去小数点后的四位ﻩSWAPﻩAﻩMOV TEMPER_NUM,AﻩMOV A,TEMPER_HﻩANL ﻩA,#07HSWAP AﻩADDﻩA,TEMPER_NUMﻩMOVﻩﻩTEMPER,Aﻩﻩﻩﻩﻩ;转换成十进制数显示MOVﻩB,#10ﻩDIV AB30H,B ;个位MOVﻩﻩMOVﻩB,#10DIV ABﻩﻩMOV31H,B ﻩ;十位ﻩANLA,#0FH ;百位ﻩﻩSWAPﻩAﻩADDﻩA,BﻩMOVﻩTEMPER_BCD,AﻩLCALLCF2;拆分查表ﻩMOVﻩ25H,R3ﻩMOV 26H,R4MOVﻩA,30HﻩANLﻩA,#0FHﻩLCALLCFMOV 24H,R3ﻩ;处理四位小数位数据ﻩMOV A,TEMPER_LﻩANL A,#0FH ;取低四位数据ﻩﻩMOV B,#02HﻩﻩMUL AB ﻩﻩ;字节转为字ﻩﻩMOV DPTR,#NUMSEGﻩMOVC A,@A+DPTRﻩMOV T EMPER_BCD,AﻩLCALLﻩCF2ﻩMOV 22H,R3MOV 23H,R4MOV A,TEMPER_LﻩANLA,#0FHﻩMOVﻩB,#02HﻩMULﻩABﻩINC AﻩﻩMOVC A,@A+DPTRﻩMOVﻩTEMPER_BCD,AﻩLCALLﻩCF2MOVﻩ20H,R321H,R4ﻩMOVﻩﻩ02HﻩPOPﻩﻩPOPDPLﻩPOPﻩDPHRET;--------------小数部分查表------------------------NUMSEG: DW 0000H,0625H,1250H,1875H,2500H,3125H,3750H,4375H DW5000H,5625H,6250H,6875H,7500H,8125H,8750H,9375Hﻩ;--------------------------------------------------;--------------拆分显示整数子程序------------------CF:ﻩﻩPUSHﻩ02HﻩPUSHﻩDPHPUSH DPLﻩMOV DPTR,#LEDSEGﻩﻩMOV R2,TEMPER_BCDﻩﻩANLﻩA,#0FHMOVCﻩA,@A+DPTR ﻩ;查表得字形码ﻩMOVﻩR3,AﻩMOVﻩA,R2ﻩﻩSWAP AﻩﻩANL A,#0FHMOVCﻩA,@A+DPTRMOV R4,AINCﻩR3 ﻩ;加上小数点POPﻩDPLﻩPOP DPHﻩPOP 02HﻩﻩRETﻩ;-----------------------------------------------;--------------拆分显示小数子程序------------------02HCF2:ﻩPUSHﻩﻩPUSH DPHﻩPUSHﻩDPLﻩPUSH ACCﻩMOV DPTR,#LEDSEGﻩﻩMOVﻩR2,TEMPER_BCDﻩMOVﻩA,R2ﻩANL A,#0FHﻩﻩMOVC A,@A+DPTRﻩﻩMOV R3,AMOVA,R2ﻩSWAPﻩAﻩANLﻩA,#0FHMOVCﻩA,@A+DPTRﻩMOVﻩR4,Aﻩ;加上小数点ﻩPOPﻩACCﻩﻩPOP DPLPOPDPH02HﻩﻩPOPﻩRETﻩ;-----------------------------------------------;-----------------led字型码---------------------LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4HDBﻩ0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;----------------------------------------------- INIT_1820:ﻩSETBﻩDQﻩﻩNOPCLR DQﻩMOVﻩR0,#80HTSR1:ﻩDJNZ R0,TSR1ﻩ;延时300usﻩﻩSETB DQMOVﻩR0,#25Hﻩ;96usTSR2: DJNZﻩR0,TSR2ﻩJNBﻩDQ,TSR3LJMP TSR4 ﻩﻩﻩ;延时TSR3:ﻩSETBﻩFLAG1 ﻩ;致标志位ﻩﻩLJMPﻩTSR5ﻩﻩﻩﻩ;ds18b20存在TSR4: CLRﻩFLAG1ﻩﻩﻩ;清标志位ﻩﻩLJMPﻩTSR7ﻩﻩ;ds18b20不存在TSR5: MOVﻩR0,#06BHﻩ;延时200usTSR6: DJNZﻩR0,TSR6TSR7: SETBﻩDQRETDELAY1: MOVR7,#20H;80us延时ﻩﻩDJNZ R7,$ﻩﻩRET;---------------蜂鸣器驱动子程序-------------- BUZZER:PUSH 07HMOVﻩR7,#00HMOVﻩTL0,#33Hﻩ;设置定时0.5us初值ﻩMOV TH0,#0FEHSETB TR0ﻩﻩﻩ;启动t0WAIT:ﻩJNBﻩTF0,$ﻩCLR TF0ﻩMOV TL0,#33HMOV TH0,#0FEHﻩCPLP1.2DJNZﻩR7,WAITﻩCLR T R0SETBﻩP1.207HﻩPOPﻩRET;--------------------------------------------- ;-------------外部中断服务程序----------------INT_7290:PUSHﻩ00HPUSHﻩ01HPUSHﻩ02H03HPUSHﻩ04HﻩPUSHﻩPUSH07HﻩPUSH ACCPUSHﻩPSWSJMPﻩRD1ﻩRD1:JBﻩP3.2,$ﻩﻩ;以查询方式等待下一次按键操作SWAP ALCALLﻩRDKEYﻩCJNE A,#0AH,WAITT ;容错功能调整WAITT: JNC ﻩRD1ﻩﻩMOVﻩﻩTEMPER_BCD,AﻩLCALLCF2MOV B,#0AHﻩﻩMULﻩﻩABﻩMOV ﻩR5,AMOVﻩﻩ23H,R3ﻩMOVﻩﻩR7,#01HﻩMOV ﻩR0,#23HﻩMOV ﻩR2,#13HMOVﻩR3,#WSLA_7290ﻩLCALLﻩWRNBYTKEY2:ﻩJBﻩP3.2,$ ﻩﻩ;以查询方式等待下一次按键操作ﻩLCALL RDKEYﻩCJNEﻩA,#0AH,WAITT2WAITT2:ﻩJNC KEY2ﻩMOVﻩTEMPER_BCD,AﻩLCALLﻩCF2ﻩﻩMOVﻩA,R5ﻩADDﻩA,TEMPER_BCDﻩMOV R5,AﻩMOV ﻩ22H,R3MOV21H,#9CHﻩﻩ;CﻩMOV R7,#02HﻩMOVﻩR0,#21HﻩMOVﻩﻩR2,#11HﻩﻩMOV R3,#WSLA_7290ﻩLCALLﻩWRNBYTﻩ;确定键COMF: JB P3.2,$ﻩ;等待确认键LCALLﻩRDKEYﻩCJNE A,#0FH,COMFﻩﻩMOV 28H,R5ﻩ;上限值放入28h中DOWN:ﻩ;7290复位CLR P1.7LCALLﻩDELAYSETBﻩP1.7CLR IE0 ﻩ;必须清标志POPPSWPOP ACCPOP 07H04HPOPﻩPOPﻩ03HPOPﻩ02HPOP 00HRETI;---------------------------------------------;------------读取键值子程序(键值保存在A中)---RDKEY:MOVﻩR0,#1FHﻩMOVﻩR7,#01HﻩﻩMOVﻩR2,#01HﻩﻩMOVﻩR3,#WSLA_7290ﻩMOVR4,#RSLA_7290ﻩLCALLﻩRDADDﻩMOVﻩA,1FHﻩDECﻩAﻩRET;---------------------------------------------- ;------------延时子程序-----------------------DELAY: PUSHﻩ00Hﻩ;延时子程序ﻩPUSH01HﻩMOVR1,#00LP:ﻩMOVﻩR1,#00HDJNZ R1,$DJNZ R0,LPﻩﻩPOP 01HﻩPOP 00HﻩRET;---------------------------------------------(I2C子程序省略)九.系统调试运行结果说明、分析所出现得问题,设计体会与建议硬件使用ZLG51单片机开发平台,软件使用KEil2软件进行程序的编写编译以及调试。

大连理工大学单片机实验实验二

大连理工大学单片机实验实验二

大连理工大学实验报告实验时间: 2016 年 4 月 1 日星期五时间: 7 :45 ~ 10 :00实验室(房间号): 420 实验台号码: 3 班级:电子1303 姓名:种昆指导教师签字:成绩:实验二存储器读写实验1、实验目的和要求目的:进一步熟悉、掌握Keil集成调试软件和DP-51PROC综合实验系统的使用。

掌握单片机并行端口的编程及分支程序的设计方法。

要求:轮流点亮数码管(一个时刻内只有一个数码管是亮的),利用人眼的视觉暂留现象(即余晖效应),就可以做到看起来是所有数码管都同时亮了。

2、实验算法使P0口的低四位为低电平,从而点亮数码管。

三、实验电路图四、实验流程图开始开始向累加器送入数码管控制字向累加器送入数码管控制字将累加器中的数送入P0口将累加器中的数送入P0口点亮P0低四位中低电平对应的数码管点亮P0低四位中低电平对应的数码管延时延时结束结束五、程序清单ORG 0000HLJMP STARTORG 0020HSTART: MOV SP,#60HREAD: MOV A,#0F7HMOV P1,AMOV A,#9FHMOV P0,ALCALL DEALYMOV A,#0FBHMOV P1,AMOV A,#25HMOV P0,ALCALL DEALYMOV A,#0FDHMOV P1,AMOV A,#0DHMOV P0,ALCALL DEALYMOV A,#0EHMOV P1,AMOV A,#99HMOV P0,ALCALL DEALYSJMP READDEALY: PUSH 01HPUSH 02HMOV R1,#00HLOOP1: MOV R2,#01HDJNZ R2,$DJNZ R1,LOOP1POP 02HPOP 01HRETEND六、实验结果与分析数码管上同时显示4321,与程序设计要求相符。

七、实验体会和建议通过本次实验,学会了Keil集成调试软件和DP-51PROC综合实验系统的使用,掌握单片机并行端口的编程及分支程序的设计方法,对于以后的学习有很大的帮助。

单片机实习报告2篇

单片机实习报告2篇

单片机实习报告单片机实习报告精选2篇(一)实习报告实习单位:XXXX公司实习时间:20XX年X月-20XX年X月一、实习背景在本次实习中,我到了XXXX公司进行单片机相关的实习。

本次实习旨在通过实际操作和实践,深入了解单片机的原理和应用,并提升自己的实践能力和团队合作能力。

二、实习内容1. 学习基础知识在实习开始前,我先通过自学对单片机的基本知识进行了学习,包括单片机的原理、结构、指令系统和编程语言等。

2. 学习开发工具在公司的指导下,我学习了单片机的开发工具,包括Keil开发环境和Proteus仿真软件等。

通过学习和实践,我熟悉了这些工具的基本操作和常用功能。

3. 实际操作在掌握了基础知识和开发工具后,我开始进行实际操作。

根据公司的要求,我完成了一些单片机的应用案例,包括LED灯控制、电机控制、温度测量等。

通过实际操作,我加深了对单片机的理解,并提高了自己的实践能力。

4. 团队合作在实习期间,我积极参与到团队项目中。

与同事合作完成了一个基于单片机的智能家居控制系统的开发,包括温湿度监测、光照控制、门窗报警等功能。

这个项目不仅提高了我的团队合作能力,也进一步加深了我对单片机的应用理解。

三、收获与体会通过这次实习,我对单片机的原理和应用有了更深入的了解。

我不仅学到了书本上没有涉及到的实际操作经验,还学到了与人合作的能力。

在实践中遇到问题时,我学会了积极思考和与他人沟通,寻找解决问题的方法。

同时,我也认识到自己在某些方面的不足,比如对于理论知识的掌握还需要加强,对于一些高级功能的应用还需要进一步学习。

总的来说,这次实习对我来说是一次宝贵的经验,它不仅给我提供了实践机会,也让我认识到自己的不足之处,激发了我进一步深入学习的动力。

我相信,通过不断努力和实践,我能够在单片机领域取得更大的进步。

单片机实习报告精选2篇(二)参加单片机实训课程的心得体会如下:首先,通过单片机实训课程,我对单片机的原理和应用有了更深入的了解。

单片机实训实验报告

单片机实训实验报告

一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。

2. 掌握单片机编程语言C的基本语法和编程技巧。

3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。

4. 提高动手实践能力,培养团队合作精神。

三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。

2. 电脑:用于编程和仿真。

3. 编程软件:Keil uVision5或IAR EWARM等。

四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。

本实验以51单片机为例,介绍其基本原理和编程方法。

51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。

2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。

3. 输入/输出接口:用于与外部设备进行数据交换。

4. 定时器/计数器:用于实现定时和计数功能。

5. 中断系统:用于处理中断事件。

本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。

2. 单片机编程语言C的基本语法和编程技巧。

3. 单片机I/O口的使用和驱动能力。

4. 定时器/计数器的使用和编程。

5. 中断系统的使用和编程。

五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。

(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。

(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。

② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。

③在电脑上编译、下载程序,观察实验效果。

2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。

(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。

2024年单片机实习报告总结模版(2篇)

2024年单片机实习报告总结模版(2篇)

2024年单片机实习报告总结模版____字2024年,我有幸参加了一家知名科技公司的单片机实习项目,并在项目中获得了丰富的实践经验。

在这次实习中,我深入学习了单片机的原理和应用,并通过实际操作掌握了单片机相关技术和工具的使用。

下面是我的实习报告总结:一、实习背景及目标本次实习的背景是为了提高我们对单片机原理和应用的理解,并能够熟练运用单片机技术解决实际问题。

实习的目标是通过项目实践,加深对单片机的认识,并培养我们的动手能力和团队合作精神。

二、实习内容在实习期间,我主要参与了一个基于单片机的智能家居系统的开发。

该系统包括智能灯控、温湿度监测、门禁系统等功能。

我负责了智能灯控的设计和开发。

具体的工作内容包括:1. 硬件设计:我学习了单片机的接口原理和外围电路的设计方法,根据实际需求设计了灯控模块的硬件电路。

在设计过程中,我充分考虑了稳定性、可靠性和安全性等因素,确保了灯控系统的正常运行和安全使用。

2. 软件开发:在硬件设计完成后,我开始进行软件的开发。

我使用C语言编写了单片机的程序,实现了灯的开关、亮度调节和定时控制等功能。

在开发过程中,我注意到了一些技术细节,如处理中断、优化代码和调试错误等,最终实现了功能完备且稳定的灯控系统。

3. 系统集成:在软件开发完成后,我将灯控系统与其他功能模块进行了集成测试,确保了整个智能家居系统的各个功能正常协同工作。

在测试过程中,我不断排查和修复了一些问题,最终确保了系统的稳定性和可靠性。

三、实习收获通过这次实习,我对单片机技术和应用有了更深入的了解,并获得了以下收获:1. 熟悉单片机的原理和应用:我通过实践操作,深入学习了单片机的工作原理、接口特性和指令系统等,对单片机的运行机制有了更深入的认识。

同时,我还学习了单片机在各种应用场景中的具体技术和方法,对于如何灵活运用单片机解决实际问题有了一定的经验。

2. 掌握了单片机的设计和开发技能:在实习期间,我学习了单片机的硬件设计和软件开发技术。

单片机电子实习实验报告

单片机电子实习实验报告

一、实验目的1. 掌握单片机的基本工作原理和编程方法。

2. 熟悉常用单片机的硬件结构和接口。

3. 学习使用单片机进行简单的电子系统设计。

4. 培养动手能力和解决实际问题的能力。

二、实验仪器与设备1. 单片机实验板(含8051单片机、电源、按键、LED灯等)2. 示波器3. 万用表4. 电阻、电容、二极管等电子元件5. 编译器及调试软件三、实验内容1. 单片机最小系统搭建- 目的:学习单片机最小系统的构成和作用。

- 实验步骤:1. 将单片机插入实验板。

2. 连接电源、按键、LED灯等元件。

3. 使用示波器检测单片机的时钟信号。

- 实验结果:成功搭建单片机最小系统,时钟信号正常。

2. 按键控制LED灯- 目的:学习按键的读取和LED灯的控制。

- 实验步骤:1. 编写程序实现按键的读取。

2. 根据按键读取结果控制LED灯的亮灭。

- 实验结果:按键按下时LED灯亮,松开时LED灯灭。

3. 定时器中断控制LED闪烁- 目的:学习定时器中断的应用。

- 实验步骤:1. 编写程序设置定时器中断。

2. 在中断服务程序中控制LED灯闪烁。

- 实验结果:LED灯按照设定的频率闪烁。

4. 串口通信实验- 目的:学习串口通信的原理和应用。

- 实验步骤:1. 编写程序实现串口发送和接收。

2. 使用串口调试助手进行数据传输。

- 实验结果:成功实现串口通信,发送和接收数据。

5. 温度检测实验- 目的:学习使用温度传感器进行温度检测。

- 实验步骤:1. 连接温度传感器。

2. 编写程序读取温度传感器数据。

3. 将温度数据显示在LCD显示屏上。

- 实验结果:成功读取温度数据,并在LCD显示屏上显示。

四、实验总结通过本次单片机电子实习实验,我掌握了以下知识和技能:1. 单片机的基本工作原理和编程方法。

2. 常用单片机的硬件结构和接口。

3. 使用单片机进行简单的电子系统设计。

4. 串口通信、定时器中断、温度检测等应用。

在实验过程中,我遇到了一些问题,如程序调试、硬件连接等,通过查阅资料和请教老师,最终成功解决了这些问题。

单片机课程设计实习报告2篇

单片机课程设计实习报告2篇

单片机课程设计实习报告 (2)单片机课程设计实习报告 (2)精选2篇(一)实习报告1. 实习概述在本次实习中,我参与了单片机课程设计项目的开发工作。

该项目的目标是设计并实现一个功能完善的单片机系统,能完成一些常见的任务,如控制LED灯的闪烁、采集温湿度数据等。

2. 实习过程在实习的第一天,我与项目组的其他成员一起讨论了系统的设计方案。

我们决定采用STM32单片机作为硬件平台,并选择了Keil作为开发环境。

然后,我们开始了系统的搭建工作。

在搭建系统的过程中,我主要负责编写程序代码。

我首先学习了STM32单片机的相关知识,并了解了它的编程方式。

然后,我根据系统的需求,编写了一些基本的程序代码,如控制LED灯的闪烁、读取温湿度传感器的数据等。

在编写代码的过程中,我遇到了一些问题。

例如,我发现LED灯无法正常闪烁,经过调试后发现是我在代码中写错了引脚的定义。

我还遇到了一些编译错误和逻辑错误,通过查阅资料和与同事的讨论,我逐渐解决了这些问题。

在实习的最后几天,我与项目组的其他成员一起测试了系统的功能,并进行了修复和优化。

我们使用示波器和逻辑分析仪对系统进行了验证,确保系统的稳定性和可靠性。

3. 实习总结通过参与单片机课程设计实习项目,我对单片机的硬件和软件实现有了更深入的了解。

我学会了如何使用Keil编写程序代码,并通过实践掌握了调试和排除故障的技巧。

同时,我也学会了如何与团队成员合作,共同完成一个项目。

通过实习,我不仅提高了自己的技术能力,还培养了解决问题的能力和团队合作能力。

我相信这些经验和技能对我的未来发展将非常有帮助。

4. 改进建议在实习过程中,我发现有些文档和资料的描述不够清晰和详细,对我理解项目的要求和实现方式造成了一些困扰。

因此,我建议在今后的实习项目中,关注文档和资料的编写,确保其准确性和完整性。

另外,我还建议在项目开始之前进行一些充分的准备工作,包括学习相关知识和技术,以及对项目的需求和实现方式进行详细的讨论和规划。

单片机实习报告总结2篇

单片机实习报告总结2篇

单片机实习报告总结 (2)单片机实习报告总结 (2)精选2篇(一)在单片机实习中,我学到了很多关于单片机的基本原理和应用知识。

通过实际的操作和编程,我加深了对单片机程序设计的了解,并且掌握了一些基本的电路操作和信号处理技术。

在实习期间,我们完成了多个实验项目,包括LED灯闪烁、按键输入控制LED灯、数码管显示等。

通过这些实验,我熟悉了单片机的引脚功能和输入输出控制方法,并且学会了使用Keil和Proteus等软件进行程序设计和仿真。

在实验中,我遇到了一些问题,比如程序运行错误、电路连接错误等等。

但通过仔细检查和排查,最终成功解决了这些问题,并且从中得到了很多宝贵的经验和教训。

除了实验项目,我们还参观了一些单片机相关的企业和科研机构,并与一些从事单片机研发工作的专业人士进行了交流。

这让我更加了解了单片机在实际应用中的广泛领域,并且对未来的发展前景有了更清晰的认识。

通过这次实习,我不仅学到了专业知识,还培养了一些重要的职业素养,比如团队合作、问题解决能力、沟通能力等等。

这些都对我未来的工作和学习有着重要的影响。

总而言之,这次单片机实习让我受益匪浅,不仅加深了对单片机的理解和掌握,还提升了我在实践中的能力和素养。

我希望在以后的学习和工作中能够继续巩固和应用这些知识和经验,为实现自己的职业目标做出更大的贡献。

单片机实习报告总结 (2)精选2篇(二)单片机实习报告总结本次单片机实习报告总结了我在实习期间学到的知识和经验,对于该领域的的技术和应用有了更深入的了解。

在实习期间,我参与了各种单片机项目的设计和开发,锻炼了自己的实际应用能力。

首先,通过与老师和同学的交流,在实习期间我学会了如何从零开始设计一个单片机系统。

我学会了如何选择合适的单片机型号,了解了不同型号的性能和特点,以及如何根据项目需求选择合适的外设。

在项目的整个开发过程中,我学会了如何使用开发工具,比如KEIL和Proteus,进行程序的开发和仿真测试。

单片机实验四总结报告2(优秀范文五篇)

单片机实验四总结报告2(优秀范文五篇)

单片机实验四总结报告2(优秀范文五篇)第一篇:单片机实验四总结报告 2单片机实验四报告直流电机实验实验一.实验目的利用 PWM 控制直流电机的转动速度。

二.实验设备及器件IBM PC 机一台DP-51PRO 单片机综合仿真实验仪一台三.实验内容学习如何控制直流电机。

PWM功率驱动电路如下:原理图如图3.34,只要ZDJ_A 的电压比ZDJ_B 的电压高,电机正转。

如果ZDJ_B 的电压比ZDJ_A 高,电机反转。

四.实验要求利用实验六的程序,用D1 区的按键KEY2 与KEY3 改变PWM 的占空比来控制直流电机的转速。

五.实验步骤1.用导线连接 A2 区的P11 与D1 区J53 接口的KEY1。

2.用导线连接 A2 区的P12 与D1 区J53 接口的KEY2。

3.用导线连接 A2 区的P10 与B8 区的J78 接口ZDJ_A。

4.B8 区J78 接口的ZDJ_B 连接到C1 区的GND。

5.短接 B8 区JP18 的电机电源跳线。

六.实验参考程序#include “reg52.h”sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;unsigned char PWMH;//高电平脉冲的个数//总脉冲个数 unsigned char PWM;unsigned char COUNTER;void K1CHECK();void K2CHECK();void INTTO()interrupt 1//定时器0中断服务程序,在这里控制P1_0口的输出电平,驱动电机{COUNTER++;//计数值加 1 if((COUNTER!=PWMH)&&(COUNTER==PWM))//如果脉冲计数个数达到了预定的总脉冲个数{COUNTER=1;} P1_0=1;//计数器复位 //P1.0变为高电平1,开始新的下一周期else if(COUNTER==PWMH)//如果脉冲计数个数达到了预定的高电平脉冲数P1_0=0;//P1.0输出为高电平1的脉冲个数已经达到,开始变为低电平0}main(){PWMH=0x02;//预定高电平脉冲个数COUNTER=0x01;PWM=0x15;//预定总脉冲个数TMOD=0x02;TL0=0x38;TH0=0x38;ET0=1;EA=1;TR0=1;while(1){if (P1_1==0)K1CHECK();//扫描按键KEY1,如果符合,进入电机转速加速处理函数 if(P1_2==0)//定时器0在模式2下工作 //定时器每200us 产生一次溢出,设定自动重装的值。

单片机电子实习实验报告

单片机电子实习实验报告

单片机电子实习实验报告一、实习目的和任务本次电子实习的主要目的是通过实际操作,深入理解单片机的工作原理和应用,提高动手能力,并培养团队协作和解决问题的能力。

实习任务是设计和制作一个基于单片机的简易温度监测系统。

二、实习内容和过程1. 理论学习和准备在实习开始前,我们首先学习了单片机的基本原理和编程方法,了解了不同类型的单片机及其应用场景。

同时,我们还学习了温度传感器的工作原理和常见类型。

2. 设计和选型根据实习任务要求,我们设计了简易温度监测系统。

系统主要由单片机、温度传感器、显示模块和控制模块组成。

在选型阶段,我们充分考虑了各种模块的性能、价格和易用性,最终选定了AT89S51单片机、DS18B20温度传感器和LCD1602显示模块。

3. 电路设计和制作在电路设计阶段,我们根据所选模块的引脚和功能,设计了电路图,并进行了仿真测试。

在确认电路设计无误后,我们开始制作电路板。

在制作过程中,我们严格遵守安全操作规程,确保电路板的质量。

4. 编程和调试根据电路设计和功能需求,我们编写了单片机程序。

程序主要包括温度检测、数据处理、显示等功能。

编写完成后,我们进行了程序调试,通过不断优化和修正,确保程序稳定运行。

5. 系统集成和测试将电路板、温度传感器、显示模块等组装成系统后,我们进行了功能测试。

测试过程中,我们发现了部分功能不符合预期,经过分析和修正,最终实现了预期的功能。

三、实习成果和总结通过本次实习,我们成功设计和制作了一个基于单片机的简易温度监测系统。

系统能够实时检测环境温度,并将温度值显示在LCD1602液晶屏上。

此外,我们还通过实习,提高了动手能力、团队协作能力和问题解决能力。

回顾实习过程,我们认识到单片机应用系统的设计和制作并非易事,需要充分考虑各个环节。

在今后的学习和工作中,我们将不断积累经验,努力提高自己在电子工程领域的综合素质。

四、实习体会本次实习让我们深刻体会到理论与实践相结合的重要性。

最新单片机实习报告范文最新4篇

最新单片机实习报告范文最新4篇

最新单片机实习报告范文最新4篇单片机实训报告篇一实训报告班级:学号:姓名:一、实训目的成本会计是一门实践性很强的学科,不通过实际训练、操作,很难提高实际分析与解决问题的能力。

因此,我们不仅需要掌握成本会计核算的理论与方法,更需要在实践中学会针对特定的企业环境进行准确的成本核算与客观理性的成本分析,为企业管理者提供更加有效的成本信息。

为了让我们能够更好的了解会计在实际工作中的工作内容,以便于实际与理论相结合,也更能够适应社会的要求,了解成本核算在实际工作的重要性,学校开展了为期两周的成本会计实训课程。

学校希望通过这次成本会计实训课程的训练,我们都能够对会计有一个更新更深层次的认识,以便于我们能懂得会计作账的基本流程,从而在今后的工作中具有较强的实际动手操作能力。

这次成本会计实训采用了两个实际案例模拟企业的经营环境,分别涉及了分批和分类两种法,我们需要将分批法、分类法所用的各种费用分配表和明细账结合起来,这不仅能够使我们掌握成本核算基本方法的特点,还进一步理解了产品成本计算的基本原理。

同时还能使我们熟练掌握分批法和分类法核算的会计处理,提高并加快了我们的动手能力,做到理论联系实际,增强感性认识,全面地理解制造企业中成本核算的整个流程。

在实训的过程中还培养了我们认真细致、严谨客观的工作作风和理论联系实践的学习态度。

二、实训过程1、熟悉资料,设置各种帐簿,登记起初余额。

由于我们这次实训课程不用编制总账和财务报表,因此任务量在一定程度上有所减轻。

2、根据经济业务,填制记帐凭证。

并附上原始凭证。

要想登记记账凭证,首先需要做的就是编制会计分录,而在编制会计分录的过程中不得不重视以下几点:(1)各种成本费用的归集与分配。

生产成本的归集与分配是本次实训的重头戏,是中心环节。

成本归集与分配过程实际上就是成本计算过程。

在本次实训中,我们按照成本核算的基本程序,先后对材料费用、职工薪酬、基本生产成本、辅助生产成本、制造费用、完工产品等进行了练习。

单片机实验2实验报告

单片机实验2实验报告
LCALL Keyscan
MOV R1, 07H
LJMP W2
CA4: MOV R4, #0FEH
W3: MOV A, R1
XRL A, #04H
JZ K3
MOV A, R1
JNZ TZ
K3: MOV P3, R4
CLR FM
LCALL delay500ms
SETB FM
LCALL delay500ms
v=keyscan();//调键扫描程序
}
break;
case 2:
temp=0x7f;
while(v==2||v==0)/*流水灯逆时针测试*/
{
P3=temp;
delay1s();
a=temp<<7;
temp=temp>>1;
temp=a|temp; /*或者用temp=_cror_(temp,1);*/
v=keyscan();//调键扫描程序
}
break;
case 4: temp=0xfe;
while(v==4||v==0)/*数码管显示数字0-7测试*/
{
P3=temp;
FM=0;
delay500ms();
FM=1;
delay500ms();
a=temp>>7;
temp=temp<<1;
temp=a|temp; /*或者用temp=_crol_(temp,1);*/
{
while(1)
{
switch(v)
{
case 1:
temp=0xfe;/*流水灯顺时针流水测试*/
while(v==1||v==0)
{
P3=temp;

单片机实习报告(优秀5篇)

单片机实习报告(优秀5篇)

单片机实习报告(优秀5篇)电子实习报告篇一因为报告的版本有很多,所以我没有抄下来,但是有一个东西是属于我自己的,那就是自己的感想,不需要抄袭,不需要太多华丽的语言,只是需要内心深处最原始的感触,那就够了。

本周我们班上进行了电子工艺实习,在这一周中,我们学到了很多,包括最后我们都自己看到亲手打造的纯手工的收音机时,内心的深处充满了不可言语的喜悦。

回想一周的时间过的很快,我们没有停下对做出一个收音机的兴趣和热情。

从此至终,我都是一个人在认认真真的学习,遇到不懂的,自己先放下来思考,实在不行看看周围的同学是怎样做的,再实在弄不懂的时候才向师兄或者是老师请教。

因为我知道,一个小小的收音机,里面也是有很多的元器件,有不懂的地方是非常的正常,但是,如果实习完之后,我还是没有弄懂,那就有点对不起老师,甚至是自己啦。

我们实习的第一天是在实验室里练习好焊锡,看起来多么简单易懂,可是当你真正拿起电烙铁的时候,并非像你想象的那样轻松和简单。

你要控制好温度,放电烙铁的地方,以及焊锡的多少,这些都是要思考和练习。

俗话说,熟能生巧,一天过去之后,我们都学的差不多了,对于电阻的焊角已经有一定的熟悉程度了。

实习的第二天是焊接一些元器件,当然在这之前,老师给我们讲了一些收音机的原理,以及元器件是如何进行分布的,还有一些注意事项,这些我们都非常认真的听取,因为在接下来我们将会按照工位的次序进行焊接和排布电子元器件,这其中必需要知道一些实验的原理和工作的一些小细节,因为这些都是非常容易出错的。

第三天我们在老师的指导下,观看了芯片的焊接方式,有点难学,但是熟能生巧,我在尝试了几次之后,也学会了焊接,虽然不是很完美,但是还是可以用的。

焊好之后的时间里,老师让我们大家做电路的检测以及调试,很幸运的是,我的没有出现问题,这可能和我一直以来都很小心的焊接每一个电路点有关,呵呵,当时的内心非常激动,看来做足了准备功夫,后面时就会减少很多的不必要的检查。

大连理工大学单片机实验报告

大连理工大学单片机实验报告

专业资料大连理工大学本科设计报告题目:单总线高精度温度采集系统课程名称:单片机综合设计实验学院(系):信息与通信工程学院专业:电子信息工程班级:电子学号:学生姓名:成绩:2016 年 5 月 5 日一.设计要求1.启动DS18B20进行12位高精度环境温度采集2.利用12864LCD屏/数码管显示数据3.具有温度上限声光报警器4.可以通过键盘设定报警上限值(选)二.设计分析及系统方案设计通过DS18B20进行小数12位温度转换、采集,通过单片机读取DS18B20采集到的12位温度值进行二进制到十六进制的转换,利用ZLG7290进行八位数码管显示;利用键盘进入中断来设定报警上限,当温度高于上限时进入报警子程序。

利用SW1进入中断来查看当前设置的温度报警上下限值,利用ZLG7290和数码管来显示。

主程序不断循环采集温度比较,并可随时进入中断来修改温度上下限和查看温度值。

三.系统电路图四.外围接口模块硬件电路功能描述1.DS18B20:用于测定温度,测量范围-55~+125,分辨率为0.0625℃,数据格式为二进制补码形式。

2.ZLG7290B:用于数码管动态显示驱动,键盘扫描管理。

能够驱动8位共阴极结构的LED数码管或64位独立的LED,同时还能扫描管理多达64个按键的扫描识别,其中八个键可以作为功能键使用。

接口采用I²C结构。

3.蜂鸣器:这里用作报警,为无源蜂鸣器。

五.主程序中主要变量定义六.系统软件中各个子程序的功能描述七.主程序程序流程图8. 程序清单(要求打印格式要规范、重要的语句要有必要的注释)SDA BIT P1.0SCL BIT P1.1TEMPER_L EQU 36HTEMPER_H EQU 35HTEMPER EQU 34H ;转换后温度值TEMPER_BCD EQU 33H ;BCD码温度值TEMPER_NUM EQU 60H ;缓冲单元WSLA_7290 EQU 70HRSLA_7290 EQU 71HFLAG1 BIT 00HDQ BIT P3.3 ;总线控制单元ORG 0000HLJMP MAINORG 0003HLJMP INT_7290ORG 0100HMAIN: MOV SP,#70H;ZLG7290复位CLR P1.7LCALL DELAYSETB P1.7MOV 28H,#1EH ;温度上限初始值30度MOV TMOD,#01H ;模式一,16位计数器SETB EA ;允许INTO中断MODE: JB P1.3,SETTMP ;拨码为0时采集温度;温度采集TMP: CLR EX0MOV 27H,#1FH ;tLP1: LCALL GET_TEMPERLCALL TEMPER_COV;7290显示MOV R7,#08HMOV R0,#20HMOV R2,#10HMOV R3,#WSLA_7290LCALL WRNBYTLCALL DELAYMOV A,TEMPER;判断温度上限MOV 28H,R5CLR CCJNE A,28H,rel ;此处报警温度为30度rel:JC NETLCALL BUZZER ;大于等于时蜂鸣器报警;闪烁MOV 28H,#70H ;闪烁命令字MOV 29H,#7FH ;闪烁命令字MOV R7,#02H ;设定数据个数MOV R0,#28H ;设置源数据首地址MOV R2,#07H ;设置外围器件内部寄存器首地址MOV R3,#WSLA_7290 ;设定外围器件地址LCALL WRNBYT ;调用显示子程序LCALL DELAYLJMP NEXTT;设定温度上限SETTMP:SETB EX0;7290复位CLR P1.7LCALL DELAYSETB P1.7;显示设定内容MOV 27H,#0B6H ;SMOV 26H,#9EH ;EMOV 25H,#1FH ;T.MOV R7,#03HMOV R0,#25HMOV R2,#15HMOV R3,#WSLA_7290LCALL WRNBYTLCALL DELAYSJMP NEXTTNET: MOV 28H,#70H ;不能闪烁MOV 29H,#00HMOV R7,#02HMOV R0,#28HMOV R2,#07HMOV R3,#WSLA_7290LCALL WRNBYTLCALL DELAYNEXTT: CALL DELAYSJMP MODEGET_TEMPER:SETB DQ ;定时入口BCD: LCALL INIT_1820JB FLAG1,S22LJMP BCD ;若ds18b20不存在则返回S22: LCALL DELAY1MOV A,#0CCH ;跳过rom匹配0cchLCALL WRITE_1820MOV A,#44H ;发出温度转换命令LCALL WRITE_1820LCALL DELAYCBA: LCALL INIT_1820JB FLAG1,ABCLJMP CBAABC: LCALL DELAY1MOV A,#0CCH ;跳过rom匹配LCALL WRITE_1820MOV A,#0BEH ;发出读温度命令LCALL WRITE_1820LCALL READ_18200RETWRITE_1820: ;写ds18b20程序MOV R2,#8CLR CWR1: CLR DQMOV R3,#6 ;延时24usDJNZ R3,$RRC AMOV DQ,CMOV R3,#23 ;延时60usDJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRETREAD_18200: ;从1820中读出两个字节温度数据PUSH 01HMOV R4,#2MOV R1,#36HRE00: MOV R2,#8RE01: CLR CSETB DQNOPCLR DQNOPNOPSETB DQMOV R3,#2DJNZ R3,$MOV C,DQMOV R3,#23HDJNZ R3,$RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00POP 01HRETU8TEMPER_COV: ;将读出的数据转换PUSH DPHPUSH DPLPUSH 02HMOV A,#0F0HANL A,TEMPER_L ;舍去小数点后的四位SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_HANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER,A;转换成十进制数显示MOV B,#10DIV ABMOV 30H,B ;个位MOV B,#10DIV ABMOV 31H,B ;十位ANL A,#0FH ;百位SWAP AADD A,BMOV TEMPER_BCD,ALCALL CF2 ;拆分查表MOV 25H,R3MOV 26H,R4MOV A,30HANL A,#0FHLCALL CFMOV 24H,R3;处理四位小数位数据MOV A,TEMPER_LANL A,#0FH ;取低四位数据MOV B,#02HMUL AB ;字节转为字MOV DPTR,#NUMSEGMOVC A,@A+DPTRMOV TEMPER_BCD,ALCALL CF2MOV 22H,R3MOV 23H,R4MOV A,TEMPER_LANL A,#0FHMOV B,#02HMUL ABINC AMOVC A,@A+DPTRMOV TEMPER_BCD,ALCALL CF2MOV 20H,R3MOV 21H,R4POP 02HPOP DPLPOP DPHRET;--------------小数部分查表------------------------ NUMSEG: DW 0000H,0625H,1250H,1875H,2500H,3125H,3750H,4375H DW 5000H,5625H,6250H,6875H,7500H,8125H,8750H,9375H;--------------------------------------------------;--------------拆分显示整数子程序------------------CF: PUSH 02HPUSH DPHPUSH DPLMOV DPTR,#LEDSEGMOV R2,TEMPER_BCDANL A,#0FHMOVC A,@A+DPTR ;查表得字形码MOV R3,AMOV A,R2SWAP AANL A,#0FHMOVC A,@A+DPTRMOV R4,AINC R3 ;加上小数点POP DPLPOP DPHPOP 02HRET;-----------------------------------------------;--------------拆分显示小数子程序------------------ CF2: PUSH 02HPUSH DPHPUSH DPLPUSH ACCMOV DPTR,#LEDSEGMOV R2,TEMPER_BCDMOV A,R2ANL A,#0FHMOVC A,@A+DPTRMOV R3,AMOV A,R2SWAP AANL A,#0FHMOVC A,@A+DPTRMOV R4,A;加上小数点POP ACCPOP DPLPOP DPHPOP 02HRET;-----------------------------------------------;-----------------led字型码--------------------- LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;-----------------------------------------------INIT_1820:SETB DQNOPCLR DQMOV R0,#80HTSR1: DJNZ R0,TSR1 ;延时300us SETB DQMOV R0,#25H ;96usTSR2: DJNZ R0,TSR2JNB DQ,TSR3LJMP TSR4 ;延时TSR3: SETB FLAG1 ;致标志位LJMP TSR5 ;ds18b20存在TSR4: CLR FLAG1 ;清标志位LJMP TSR7 ;ds18b20不存在TSR5: MOV R0,#06BH ;延时200usTSR6: DJNZ R0,TSR6TSR7: SETB DQRETDELAY1: MOV R7,#20H ;80us延时DJNZ R7,$RET;---------------蜂鸣器驱动子程序-------------- BUZZER:PUSH 07HMOV R7,#00HMOV TL0,#33H ;设置定时0.5us初值MOV TH0,#0FEHSETB TR0 ;启动t0WAIT: JNB TF0,$CLR TF0MOV TL0,#33HMOV TH0,#0FEHCPL P1.2DJNZ R7,WAITCLR TR0SETB P1.2POP 07HRET;---------------------------------------------;-------------外部中断服务程序---------------- INT_7290:PUSH 00HPUSH 01HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWSJMP RD1RD1:JB P3.2,$ ;以查询方式等待下一次按键操作SWAP ALCALL RDKEYCJNE A,#0AH,WAITT ;容错功能调整WAITT: JNC RD1MOV TEMPER_BCD,ALCALL CF2MOV B,#0AHMUL ABMOV R5,AMOV 23H,R3MOV R7,#01HMOV R0,#23HMOV R2,#13HMOV R3,#WSLA_7290LCALL WRNBYTKEY2: JB P3.2,$ ;以查询方式等待下一次按键操作LCALL RDKEYCJNE A,#0AH,WAITT2WAITT2: JNC KEY2MOV TEMPER_BCD,ALCALL CF2MOV A,R5ADD A,TEMPER_BCDMOV R5,AMOV 22H,R3MOV 21H,#9CH ;CMOV R7,#02HMOV R0,#21HMOV R2,#11HMOV R3,#WSLA_7290LCALL WRNBYT;确定键COMF: JB P3.2,$ ;等待确认键LCALL RDKEYCJNE A,#0FH,COMFMOV 28H,R5 ;上限值放入28h中DOWN:;7290复位CLR P1.7LCALL DELAYSETB P1.7CLR IE0 ;必须清标志POP PSWPOP ACCPOP 07HPOP 04HPOP 03HPOP 02HPOP 00HRETI;---------------------------------------------;------------读取键值子程序(键值保存在A中)---RDKEY: MOV R0,#1FHMOV R7,#01HMOV R2,#01HMOV R3,#WSLA_7290MOV R4,#RSLA_7290LCALL RDADDMOV A,1FHDEC ARET;----------------------------------------------;------------延时子程序-----------------------DELAY: PUSH 00H ;延时子程序PUSH 01HMOV R1,#00LP: MOV R1,#00HDJNZ R1,$DJNZ R0,LPPOP 01HPOP 00HRET;---------------------------------------------(I2C子程序省略)九.系统调试运行结果说明、分析所出现得问题,设计体会与建议硬件使用ZLG51单片机开发平台,软件使用KEil2软件进行程序的编写编译以及调试。

大连理工大学软件学院单片机实验5报告

大连理工大学软件学院单片机实验5报告

大连理工大学软件学院《单片机原理与应用设计》实验报告姓名:学号:班级:实验时间:实验台:Proteus仿真平台_指导教师:成绩:实验五一、实验目的和要求1. 通过按键控制,完成数码管的显示计数控制。

2. 学习单片机的基本接口技术。

3. 学习74HC595、74HC138使用及与51单片机的控制方法。

二、实验原理和内容实验原理:1.根据38译码器的片选,一次选中一个数码管不能选择多位的特性,选择很短的时间间隔向8个晶体管传输数据,并循环显示8LED的内容,利用计时器,通过中断次数来实现依次显示时间的控制。

2.利用段码表,通过不断的更新段码,依次传输数据。

3.使用74HC595芯片,接收51单片机传输的串行数据,进行并行输出,并使用数码管对应的段码,完成0、1、2、3、4、5、6、7、8的依次输出,输出到数码管上实验内容:用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

三、主要仪器设备及软件编程环境Keil 4+Proteus 8四、实验步骤与编程代码:ORG 0000HLJMP MAINORG 000BHLJMP IT0PORG 0013H //P3.3触发的中断的入口LJMP IT1PORG 0030HNUMTAB: // 0 1 2 3 4 56 7 8 9DB 00111111B, 00000110B, 01011011B, 01001111B, 01100110B, 01101101B, 01111101B, 00000111B, 011111111B, 01101111BMAIN:MOV R3,#1HMOV A,#0011111BMOV R2,#8HMOV R1,#78HSET0:MOV @R1,AINC R1DJNZ R2,SET0 //初始化置零SETB EASETB ET0MOV TMOD,#01BMOV TH0,#0FCHMOV TL0,#018H //1msSETB TR0SETB EX1 // 打开外部中断1SETB IT1LOOP_START:MOV P0,#00 //P0清零MOV R6,#8H //循环8次赋值MOV R0,#78HNUM_LOAD: //移动MOV R7,#8H //循环8次CLR A //Acc清零MOV A,@R0 //把要显示的数放到累加器A中CJNE R6, #4, BIT_LOADADD A, #128 //小数点BIT_LOAD: //74HC595:8位串行输入,8位并行输出 RLC A //带进位的左移MOV P0.5,C //把移出位放到SER引脚CLR P0.4SETB P0.4DJNZ R7,BIT_LOAD //八次移位实8位串行输入INC R0 //移动到下一个要显示的值CLR P0.3SETB P0.3LCALL DELAY //极其短暂延迟INC P0 //(P0.0~P0.2) 对应LED移动DJNZ R6,NUM_LOADLJMP LOOP_STARTDELAY:MOV R4,#10HLOOP_DELAY1:MOV R5,#100LOOP_DELAY2:DJNZ R5,LOOP_DELAY2DJNZ R4,LOOP_DELAY1RETIT0P:CJNE R3,#0H,LOOP_DEAD //启动开关MOV 49H,R0MOV 48H,R1MOV 47H,AMOV 46H,DPH //DPTR_H MOV 45H,DPL //DPTR_LMOV 44H,R7 //入栈操作MOV 43H,R6MOV 42H,R5MOV 41H,R4CALL UPDATELOOP_DEAD:RETIUPDATE:MOV R1,#7FH //8MOV DPTR,#NUMTAB //载入NUMTAB MOV A,60HINC AMOV 60H,ACJNE A,#0AH,ADD8MOV 60H,#0//7MOV R1,#7eHMOV A,61HINC AMOV 61H,ACJNE A,#0AH,ADD7MOV 61H,#0//6 MOV R1,#7DHMOV A,62HINC AMOV 62H,ACJNE A,#0AH,ADD6MOV 62H,#0//5 MOV R1,#7CHMOV A,63HINC AMOV 63H,ACJNE A,#0AH,ADD5MOV 63H,#0//4 MOV R1,#7BHMOV A,64HINC AMOV 64H,ACJNE A,#0AH,ADD4MOV 64H,#0//3 MOV R1,#7AHMOV A,65HINC AMOV 65H,ACJNE A,#0AH,ADD3MOV 65H,#0//2 MOV R1,#79HMOV A,66HINC AMOV 66H,ACJNE A,#0AH,ADD2MOV 66H,#0MOV R1,#78H //1MOV A,67HINC AMOV 67H,AMOVC A,@A+DPTRMOV @R1,AADD2: //2 MOV A,66HMOV R1,#79HMOVC A,@A+DPTRMOV @R1,AADD3: //3 MOV A,65HMOV R1,#7AHMOVC A,@A+DPTRMOV @R1,AADD4: //4 MOV A,64HMOV R1,#7BHMOVC A,@A+DPTRMOV @R1,AADD5: //5 MOV A,63HMOV R1,#7CHMOVC A,@A+DPTRMOV @R1,AADD6: //6 MOV A,62HMOV R1,#7DHMOVC A,@A+DPTRMOV @R1,AADD7: //7 MOV A,61HMOV R1,#7EHMOVC A,@A+DPTRMOV @R1,AADD8: //8 MOV A,60HMOV R1,#7FHMOVC A,@A+DPTRMOV @R1,ALOOP_RST:MOV R0,49HMOV R1,48HMOV A,47HMOV DPH,46H //DPTR_HMOV DPL,45H //DPTR_LMOV R7,44HMOV R6,43HMOV R5,42HMOV R4,41HMOV TH0,#0FCHMOV TL0,#18H //重置定时器的值 SETB TR0 //开启定时器RETIT1P:MOV 68H,A;MOV 69H,R1;MOV A,R3;XRL A,#01H; //改变开关MOV R3,A;MOV R1,69H;MOV A,68H;RETI;END电路图:五、实验数据与结果分析成功,详见录像六、讨论、建议参考了上次的代码思路,举一反三。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连理工大学实验报告
实验时间:2016 年 3 月30 日星期三时间:15 :15 ~ 17 :30 实验室(房间号):419 实验台号码:14 班级:姓名:
指导教师签字:成绩:
实验二MCS-51单片机并行端口实验
一、实验目的和要求
1. 进一步熟悉,掌握Keil集成调试软件和DP-51PROC综合实验系统的使用。

掌握单片机并行端口的编程及分支程序的设计方法。

2. 轮流点亮数码管,利用人眼的视觉暂留现象使数码管看起来都是亮的。

二、实验算法
将P1口的低四位依次给低电平并循环,同时点亮P0口低四位中低电平对应的数码管。

三、实验电路图
四、实验流程图
五、程序清单
ORG 0000H
LJMP START
ORG 0030H START: MOV SP,#60H S1: MOV P1,#0FEH
MOV P0,#9FH
CALL DELAY
MOV P1,#0FDH
MOV P0,#25H
CALL DELAY
MOV P1,#0FBH
MOV P0,#0DH
CALL DELAY
MOV P1,#0F7H
MOV P0,#99H
CALL DELAY
SJMP S1
DELAY: PUSH 01H
PUSH 02H
MOV R1,#05H
DELAY1: MOV R2,#05H
DJNZ R2,$
DJNZ R1,DELAY1
POP 02H
POP 01H
RET
END
六、实验结果与分析
数码管从左向右依次显示4321,改变延时可以看到数码管依次点亮。

七、实验体会和建议
通过这次实验,更加熟悉了Keil软件的使用以及调试,这次实验中数码管的点亮和流水灯的逻辑很相像,但耗费时间稍长。

相关文档
最新文档