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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实践汇编Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实践汇编Word文档格式.docx

1、/ DELAY:MOV R1,#0FFHDJNZ R1,$五、定时器功能实例5.1 定时1秒报警定时器1每隔1秒钟将p1.o的输出状态改变1 次,以达到定时报警的目的。实际应用例如:定时报警器。程序实例(DIN1.ASM):ORG 000BHAJMP DIN0 ;定时器0入口TFLA G EQU 34H ;时间秒标志,判是否到50个0.2秒,即50*0.2=1秒MOV TMOD,#00000001B;定时器0工作于方式1MOV TL0,#0AFHMOV TH0,#3CH ;设定时时间为0.05秒,定时20次则一秒11SETB EA ;开总中断SETB ET0 ;开定时器0中断允许SETB TR

2、0 ;开定时0运行LOOP: AJMP LOOPDIN0:是否到一秒/ INCC: INC TFLAGMOV A,TFLAGCJNE A,#20,REMOV TFLAG,#00HCPL P1.0/ RE:RETI5.2 频率输出公式介绍:f=1/ts51 使用12M晶振,一个周期是1微秒使用定时器1工作于方式0,最大值为65535,以产生200HZ的频率为例:200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电12平或低电平的时间为2500 微秒。这样,定时值应设为65535-2500=63035,将它转换为十六进制则为:F63B。具体程序请看f200.asm频率递增:200H

3、Z:63035:F63B250HZ:63535:F82F300HZ:63868:F97C5.3 200HZ频率输出利用定时器定时,在P1.0 口产生200HZ 的频率输出。传感器前级推动。程序实例(F200.ASM):ORG 001BHAJMP DIN0CLR P1.0 ;产生一个低电平,实际上是从p1.0口产生频率MOV TMOD,#00010000B ;定时器1工作于方式0MOV TH1,#0F6HMOV TL1,#3BH ;频率产生的时间,详细请见频率公式13SETB TR1 ;开定时器1运行SETB ET1 ;开定时器1允许 AJMP LOOP ;无限循环 CPL P1.0 ;产生一个

4、高电平,下次来就是低电平(因为取反),一个高电平和一个低电平形成一个周期重置频率产生时间RETI ;返回5.4 200250HZ变化频率输出利用定时器定时时间的变化,由P1.0 口产生200250HZ变化的频率。传感器前级推动、频率发生器。程序实例(F250.ASM):AJMP DIN1定义频率200和300/ F2H EQU 30HF2L EQU 31HF3H EQU 32HF3L EQU 33H14/ ;定义频率保持初值/ MOV R1,#50MOV R2,#02H频率赋初值/ MOV F2H,#0F6HMOV F2L,#3BHMOV F3H,#0F8HMOV F3L,#2FH/ CLR

5、P1.0 ;在P1.0口产生一个低电平,一个脉冲是由一个高电平和一个低电平组成的定时器工作于方式1MOV TH1,F2HMOV TL1,F2L ;200HZ输出DIN1:CPL P1.0 ;取反P1.0口,实际是为了不断的将p1.0的电平关系转换,即产生了频率频率保持时间/ DJNZ R1,REMOV R1,#50DJNZ R2,RE15/ MOV A,F2HCJNE A,F3H,XIA ;频率高位到300HZ的高位了吗?AJMP JIA ;频率高位没到300HZ的高位值,直接将低位值加1XIA: INC F2LMOV A,F2LCJNE A,#00H,REINC F2HMOV A,F2HCJ

6、NE A,F3H,RE/频率高位加到300HZ的高位值了,低位加一,到300HZ的低位值了吗,没到出去,到了关定时器JIA:INC F2L ;到了将200HZ频率的低位加1CJNE A,#F3L,RECLR TR1RE:MOV TL1,F2L16六、数显09999显示利用S51的串行口功能,实现数码管09999 的循环显示。电子计分牌。程序实例(9999.ASM):GEE EQU 30HSHI EQU 31HBEI EQU 32HQIAN EQU 33H ;定义个十百千MOV GEE,#00HMOV SHI,#00HMOV BEI,#00HMOV QIAN,#00H ;赋初值MOV SCON,

7、#00H ;串行口工作于方式0.同步移位显示个,十,百,千/ DISPLAY:MOV DPTR,#SETTABMOV A,GEEMOVC A,A+DPTR MOV SBUF,A JNB TI,D117CLR TIMOV DPTR,#SETTAB MOV A,SHI JNB TI,D2 CLR TIMOV DPTR,#SETTAB MOV A,BEID3: JNB TI,D3 CLR TIMOV DPTR,#SETTAB MOV A,QIAN MOVC A,A+DPTR MOV SBUF,AD4: JNB TI,D4个,十,百,千的依次加一/INC GEECJNE A,#0AH,DISPLAYI

8、NC SHIMOV A,SHI18INC BEIMOV A,BEIINC QIANMOV A,QIANMOV QIAN,#00HAJMP DISPLAY/延时/ DELAY: MOV R1,#0FFHE1: MOV R2,#0FFHDJNZ R2,$DJNZ R1,E1/ SETTAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;数显代码七、AD 转换7.1 AD转换(数码显示)利用ADC0809模拟通道3输入电压,经单片机19处理后在数码管上用相对应的16进制数显示出来,05V对应为0

9、-0FFH,实际应用例如:数据采集。程序操作:程序写完上电运行后,用本机配带的专用起微调图15所示电位器,会在数码管上看到随不同电压而变化的对应16进制值。也可以用万用表实ADC0809IN3脚电压,来检验所对应显示的16进制数。图15程序实例(ad.asm):ACALL AD ;呼叫AD子程序将转换的数字量屏蔽高位低位送显/ MOV 31H,30HMOV A,30HANL A,#0FHMOVC A,A+DPTRMOV SBUF,A将转换的数字量屏蔽低位高位送显/ MOV A,30H20ANL A,#0F0HSWAP A JNB TI,D2/ AJMP MAIN1 ;返回主程序AD: MOV

10、DPTR,#7F00H ;指向转换地址MOV A,#03H ;指向转换口MOVX DPTR,A ;转换MOV R1,#64H DJNZ R1,D3 ;等100微秒转换完MOVX A,DPTR ;转换后的值给AMOV 30H,A ;转换的值给30H ;MOV R2,#0FFHD14: MOV R3,#0FFHD12: DJNZ R3,D12DJNZ R2,D14SETTAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6HDB 0EEH,3EH,9CH,7AH,9EH,8EH217.2 十六进制两位数加法器(数码显示)将ADC0809输入的两个

11、不同电压(相同电压也可相加,只是为举例说明,所以取不同电压)所对应的16进制数相加显示出来。取代加法运放电路。程序写完上电运行后,用本机配带的钟表起微调图16所示电位器,输入两个不同电压,数码管会显示两个不同的对应16进制数,随后数码管会显示两个16 进制数相加的值。程序实例(add2.asm):ADNUMBER EQU 30H ;AD转换值ADDNUMBER EQU 31H ;加数值1ADL EQU 32H ;/ADH EQU 33H ;ADL转换高低位值DISL EQU 34H ;DISH EQU 35H ;显示高低位值ADDTOTAL EQU 36H ;第一次AD转换值ADDJW EQU

12、 37H ;加法进位数ADDHOLD EQU 38H赋初值/ MOV ADDHOLD,#00HMOV ADDNUMBER,#00HMOV ADL,#00HMOV ADH,#00HMOV DISL,#00H22MOV DISH,#00HMOV ADDJW,#00HMOV ADDTOTAL,#00H/ MAIN1:ACALL CAIFEN ;呼叫AD值拆分为高低的程序ACALL DISPLAY ;呼叫显示子程序MOV A,ADNUMBER ;取AD值CJNE A,ADDHOLD,ADD3 ;与上次AD值比较,不相等,即输入了新的AD值,去AD3执行AJMP MAIN1 ;是相等的,证明没有输入新的

13、AD值,回去显示老的AD值ADD3: MOV A,ADDHOLDCJNE A,#00H,ADD4MOV ADDHOLD,ADNUMBER ;有一种情况就是是第一次进来,AD保持值里面是放的初值00,与取的AD值不同,是这种情况,也返回去AJM MAIN1ADD4: MOV ADDNUMBER,ADDHOLD ;是真的输入了新的AD值,将上次AD值给加数,为调加法程序做准备MOV ADDHOLD,ADNUMBER ;将这次的AD值也保持起来。准备与上一个AD值相加显示这次输入的AD值/ ACALL DELAYACALL CAIFEN23ACALL DISPLAY/ DISPLAY1:ACALL

14、ADD1 ;呼叫加法子程序显示/AD转换MOV DPTR,#7F00H; DJNZ R1,D1 ;MOV ADNUMBER,A ;拆分AD值程序/ CAIFEN:MOV A,ADNUMBERMOV ADL,A ;取低位MOV ADH,A ;取高位MOV DISL,ADL24MOV DISH,ADH ;给显示值显示/ DISPLAY:MOV A,DISL JNB TI,D3MOV A,DISHMOV A,ADDJWD5: JNB TI,D5MOV SBUF,#00HD6: JNB TI,D6/ 25加法程序/ ADD1:CLR CMOV A,ADDNUMBER ;取上次AD值ADDC A,ADD

15、HOLD ;与这次AD值相加MOV ADDTOTAL,A ;将此次加的值给和值JNC ADDJW1 ;有无进位?INC ADDJW ;有进位,进位值给ADDJWADDJW1: ANL A,#0FHMOV DISL,A ;加值取低位MOV A,ADDTOTALMOV DISH,A ;加值取高位MOV R3,#0AHDD1:D2 :DJNZ R1,D2DJNZ R3,DD1267.3 软件滤波程序介绍(7.317.34):您如果接触过模电就知道,在采集电压量时经常会碰到干扰,而在模电中经常所采用的方法就是加电容滤波,这是用硬件实现的。实际上软件完全可以达到滤波的效果,现在介绍的是一种最经典的方法。

16、在一次电压量的采集中,在很短的时间内对它进行6 次采集,将它转换为数字量后求和(7.31),分析出6次输入中的最大值和最小值(7.32),然后减去最大值和最小值(7.33),除以4(7.44)得到平均值。这样实际上就完成了一次软件滤波。省去了复杂的硬件,而且取得了好而精确的效果。精确数据采集。程序写入上电运行后,用本实验仪自带的钟表起微调电位器依次输入6个电压量。7.31程序会显示和值,7.32会继续显示最大和最小值,7.33程序会继续显示减后所剩的值,7.34程序会继续显示除4后的值。算法说明:为什么要选择取6个数进行计算呢?因为在汇编中做计算是非常麻烦的,取6个数,减去最大值和最小值后,取

17、平均值是除4.计算机的内部计算都是二进制,而二进制每除一个2,实际上是向右移一次。所以为了计算方便,我们选择取6个数,最后在算除法的时候,只需要用单片机自带的右移位命令移2次就行了。277.31 十六进制六位数加法(数码显示)程序实例(add6.asm):ADDFLAG EQU 39H ;加标志ENDFLAG EQU 40HMOV ADDFLAG,#00HMOV ENDFLAG,#00H28显示AD值/ ACALL DELAYACALL ADMAIN3:加这次的AD值,并判是否加了六次,是的话就进入死循环ACALL DELAYACALL ADD1INC ADDFLAGMOV A,ADDFLAGCJNE A,#06H,MAIN2没有加到六次,继续取值加,如果没有来新AD值,还是去

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1