ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:29.14KB ,
资源ID:8674998      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8674998.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(温控及pwm的程序.docx)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

温控及pwm的程序.docx

1、 ORG 00H LJMP START ORG 100H START: ;;-----初始化 MOV SP,#60H ;;初始化堆栈指针 Set18B20:;;-----DS18B20初始化 ;;DS18B20复位 ACALL Reset JB RFail,LOOP ;;复位失败则直接跳至显示部分 ;;对DS18B20发出Skip ROM命令 MOV A,#0CCH ACALL Write ;;对DS18B20发出温度转换命令 MOV A,#44H ACALL Write SetDisT:MOV DisTime,#3 ;;设置下一个循

2、环体的循环8次 LOOP: ACALL Display ;;显示 JB RFail,Set18B20 ;;DS18B20复位失败时,在显示完一次后重新复位 DJNZ DisTime,LOOP JNB DS18B20,$ ;;判断DS18B20是否已完成温度转换 ACALL GetTemp ;;从DS18B20读出温度值 ACALL DealTemp ;;温度值处理 ACALL SendDisDT ;;根据当前系统状态设置显示内容 SJMP SetDisT ;;;;;;; ;;根据当前状态给显示模块设置显示参数 SendDisDT: MOV D

3、ian,#7FH ;;最高位为0代表显示小数点 ;;传送温度值 MOV A,TempH ;;送高位数据 MOV VAR,TempL ;;送低位数据 ACALL TransData RET ;;A中保存高位值,Var中保存低位值 TransData: ;;取个位值 MOV B,#10 DIV AB MOV DisData2,B ;;取十位值 JZ HavNot1 ;;判断商是否为0 MOV B,#10 DIV AB MOV DisData3,B JZ HavNot2 ;;判断商是否为0 MOV DisData4

4、A SJMP XiaoShu ;;跳至百位符号处理部分 HavNot1:MOV DisData3,#10 ;;十位开始没有数字 HavNot2:MOV DisData4,#10 ;;百位开始没有数字 SignJudge:;;符号处理部分 JNB VAR.7,XiaoShu ;;当为负数显示符号 MOV A,#10 CJNE A,DisData3,BWSign MOV DisData3,#11 ;;负号在十位 SJMP XiaoShu BWSign:MOV DisData4,#11 ;;负号在百位 XiaoShu:;;小数处理部分,用查表法获取小数值,

5、精确到小数点后1位 MOV A,VAR ANL A,#0FH MOV DPTR,#XSTab MOVC A,@A+DPTR MOV DisData1,A RTransTemp: RET XSTab: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9 DS18B20通迅模块组 -------复位模块 Reset: ;;3微秒高电平 SETB DS18B20 MOV R7,#250 CLR RFail ;;清0复位失败标记 CLR DS18B20 ;;延迟501uS DJNZ R7,$ SETB DS18B20

6、释放总线(拉高数据线) ;;等待DS18B20作出复位成功反应,最大等待时间为69uS MOV R7,#17 Wait: JNB DS18B20,RReset ;;若DS18B20在作出复位成功反应,不再等待 DJNZ R7,Wait SETB RFail ;;70uS内DS18B20作出复位成功反应,置1复位失败标记 RReset: ;;延迟350Us MOV R7,#174 DJNZ R7,$ SETB DS18B20 RET / ;;-------向DS18B20写一个字的模块,要写的内容提前装入ACC中 Wri

7、te: MOV R6,#8 ;写8位 WriteBit: ;;2微秒高电平 SETB DS18B20 MOV R7,#3 ;;7微秒低电平 CLR DS18B20 DJNZ R7,$ ;;ACC低位送至DS18B20 RRC A MOV DS18B20,C ;;延迟60Us MOV R7,#28 DJNZ R7,$ ;;是否已写完8位 DJNZ R6,WriteBit RWrite: SETB DS18B20 RET ; / ;;-------从DS18B20读回一个字节的内容,读回的内

8、容装入ACC中 Read: MOV R6,#8 ;;读回8位 MOV A,#0 ;;读回的内容装入ACC中 ReadBit: ;;2微秒高电平 SETB DS18B20 MOV R7,#7 ;;2微秒低电平 CLR DS18B20 NOP ;;16微秒高电平 SETB DS18B20 DJNZ R7,$ ;;读回一位数据放入ACC中 MOV C,DS18B20 RRC A ;;延迟66Us MOV R7,#33 DJNZ R7,$ ;;是否已读完8位 DJNZ

9、 R6,ReadBit RRead: SETB DS18B20 RET / ;;-------与DS18B20通迅,读回两字节温度值,并装入ACC中TempL和TempH中 GetTemp: ACALL Reset ;;复位 JB RFail,RGetTemp ;;判断复位是否成功 ;;复位成功 ;;对DS18B20发出Skip ROM命令 MOV A,#0CCH ACALL Write ;;对DS18B20发出读命令 MOV A,#0BEH ACALL Write ;;从DS18B20读回低8位温度值 ACALL Read

10、 MOV TempL,A ;;从DS18B20读回高8位温度值 ACALL Read MOV TempH,A ACALL Reset ;;复位 JB RFail,RGetTemp ;;判断复位是否成功 ;;对DS18B20发出Skip ROM命令 MOV A,#0CCH ACALL Write ;;对DS18B20发出温度转换命令 MOV A,#44H ACALL Write RGetTemp: RET 温度数据处理模块 DealTemp: ;;将整数的二进制数部分移到一个字节,符号位和小数部分移到一个字节 MOV R1,

11、Var MOV Var,TempH MOV A,TempL XCHD A,@R1 ;;符号位、小数部分至VAR(@R1),整数部分至ACC SWAP A ;;整数部分处理 JNB Var.7,NotNeg ;;判断是否为负数 CPL A ;;为负数,取反后加1得其绝对值 ;;小数部分取反 XRL Var,#1FH ;; INC Var NotNeg: MOV TempH,A MOV TempL,Var RET 显示模块 -------显示DisData(30H)从开始的三个字节保存显示信息 Display: M

12、OV DPTR,#Tab ;;**显示小数部分 MOV A,DisData1 MOVC A,@A+DPTR MOV P2,A CLR Wei1 ACALL Delay SETB Wei1 ;;**显示个位 MOV A,DisData2 MOVC A,@A+DPTR ;;小数点处理 ANL A,Dian MOV P2,A CLR Wei2 ACALL Delay SETB Wei2 ;;**显示十位 MOV A,DisData3 MOVC A,@A+DPTR MOV P2,A CLR Wei3 ACALL D

13、elay SETB Wei3 ;;**显示百位 MOV A,DisData4 MOVC A,@A+DPTR MOV P2,A CLR Wei4 ACALL Delay SETB Wei4 RET Tab: ;;0~9、空白、负号的编码 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH ;;延迟 Delay: MOV R6,#6 DD1:MOV R5,#250 DJNZ R5,$ DJNZ R6,DD1 RET END …………………………

14、………………………………………………………………………… org 00h ajmp start org 30h ;**********检测键盘状态的程序**************** START: mov p0,#0ffh ;置p0为输入口,将P0口置为1,用于检查按键是否按下 jnb p0.0,QIDONG ;按键S2按下,p0.0为0,进入启动(正转)程序 jnb p0.1,FANZHUAN ;按键S3按下,p0.1为0,进入反转程序 jnb p0.2,JITING ;按键S4按下,p0.2为0,进入急停程序 jnb p0.3,JIASU ;按键S5按下,p0.3为

15、0,进入加速程序 jnb p0.4,JIANSU ;按键S6按下,p0.4为0,进入减速程序 jnb p0.5,TINGZHI ;按键S7按下,P0.5为0,进入停止程序 ajmp start ;************启动程序,默认为顺时针转动,转速为2000RPM*********** QIDONG: LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动 JNB P0.0,QI LJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序 QI: clr p0.6 ;p0.6接电机R/S端,将其清零表示电机可以运行 se

16、tb p0.7 ;p0.7接DIR端,为1,则与COM端断开,电机正转 mov p2,#0Bh ;p2.0接CH1,p2.1接CH2,p2.2接CH3,将速度设定为2000RPM lcall XIANSHI ;显示设定速度 LJMP START ;执行完启动程序后,回到检测按键状态程序 ;***************反转程序,也即逆时针转动***************** FANZHUAN: LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动 JNB P0.1,FAN LJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序

17、 FAN: clr p2.3 ;接通BRK端,使电机急停 lcall PANTING ;调用判停程序,能从判停程序中返回,说明机已停 setb p2.3 ;断开BRK端,解除急停状态 clr p0.7 ;接通DIR端,使电机逆时针转动 lcall XIANSHI ;显示设定速度 LJMP START ;执行完启动程序后,回到检测按键状态程序 ;*****************急停程序********************* JITING: LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动 JNB P0.2,JI LJMP START ;软件消抖后

18、若p0.0为1,则认为按键未按下,回到检测按键状态程序 JI: clr p2.3 ;接通BRK端,使电机急停 lcall PANTING ;调用判停程序,若能从中返回,说明电机已停 LJMP START ;执行完启动程序后,回到检测按键状态程序 ;***************加速程序,每按一次键,加速500rpm**************** JIASU: LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动 JNB P0.3,JIA LJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序 JIA: mov a,

19、p2 ;将p2的值复制到累加器a中 anl a,#07h ;取ch3ch2ch1的值,并放到累加器a中 jz START ;若a中值为0,则速度已经最大,不再加速,回到检测按键状态程序 mov r0,p2 dec r0 mov p2,r0 ;加速500rpm(参考电机驱动器说明中的多段速度选择部分) lcall XIANSHI ;显示设定的速度 LJMP START ;执行完启动程序后,回到检测按键状态程序 ;********************减速程序,每按一次键,减速500rpm**************** JIANSU: LCALL YANSHI ;调用

20、延时子程序,目的:软件消除按键抖动 JNB P0.4,JIAN LJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序 JIAN: mov a,p2 anl a,#07h ;取ch3ch2ch1的值 cjne a,#07h,JS ;若a中数值为07h,则速度已为0, ljmp START ;若速度为0,则程序回到开始程序,不再减速,以防出错 JS: mov a,P2 inc a mov P2,a ;减速500rpm(参考电机驱动器说明中的多段速度选择部分) lcall XIANSHI ;显示设定的速度 ljmp STAR

21、T ;执行完启动程序后,回到检测按键状态程序 ;********************停止程序*********************** TINGZHI: LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动 JNB P0.5,TING LJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序 TING: setb p0.6 ;p0.6接R/S端,为1,则与COM端断开 lcall PANTING ;调用判停程序,若能从中返回,说明电机已停 LJMP START ;执行完启动程序后,回到检测按键状态程序 ;****

22、延时10ms,这是一个子程序,功能是延时10毫秒************* YANSHI: mov a,#0 ;对累加器a置零,延时用 y: mov r1,#00h ;对寄存器r1置零,延时用 inc r1 cjne r1,#0ffh,y ;延时1ms inc a cjne a,#10,y ;延时10×1=10ms ret ;*******判停程序,这是一个子程序,若能从判停程序中返回,则说明电机已停******** PANTING: jnb p2.4,yanshi250ms ;若speed端为0,则进入延时程序 ajmp PANTING

23、若speed端为1,则返回PANTING,等待speed端出现0电平 yanshi250ms: clr p2.6 ;允许对计数器置数 mov p3,#08h ;对计数器置入数8 setb p2.6 ;计数器开始计数 mov a,#0 ;对累加器a置零,延时用 y250: mov r1,#00h ;对寄存器r1置零,延时用 inc r1 jb p2.5,PANTING ;若期間Tc为1,则电机未停,返回PANTING,继续判断 cjne r1,#0ffh,y250 ;延时1ms inc a cjne a,#250,y250 ;延时250ms, ret ;若至延时

24、结束Tc一直不改变状态,则说明speed端口无脉冲输出,认为电机停转,程序 ;返回。 ;在电机停转之前,单片机不响应按键状态的改变。 ;*******************显示程序,这是一个子程序************************** XIANSHI: mov a,p2 ;将当前的速度设定值读入a中 anl a,#07h ;取ch3ch2ch1的值,存入a中 mov b,#4 mul ab ;取得低位速度值对应的相对地址,存入a中 add a,r3 ;得到低位字符地址,放在a中 mov scon,#00h ;初始化串行口方式0 mov r2,#0 ;利用

25、r2来控制显示字符数 mov dptr,#tab ;字形表的入口地址 mov r3,a ;低位速度值地址存入r3 x: add a,r2 ;利用a与r2的和获得字符地址 movc a,@a+dptr ;查表获得字型码,放在a中 mov sbuf,a ;串口显示 l: jnb ti,l ;等待发送完毕 clr ti ;发送标志ti清零 inc r2 mov a,r3 cjne r2,#4,x ;发送四个字符 ret tab: db 03h,03h,49h,0dh db 03h,03h,03h,0dh db 03h,03h,49h,27h db 03h,03h,03h,27h db 03h,03h,49h,9fh db 03h,03h,03h,9fh db 03h,03h,49h,0ffh db 03h,0ffh,0ffh,0ffh END

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服