




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章作业1、说明准时器T0的四种工作方式。(P.145第6题)M1M0工作模式功能说明00013位的准时/计数模式,TL0的高3位没用。01116位的准时/计数模式1028位、初始值自动加载的准时/计数模式。113将T0分红两个互相独立的、8位的准时/计数模式。2、假定单片机晶振fosc=6MHz,若要求准时分别为0.1ms,1ms,10ms,准时器T0工作在方式0、方式1、方式2时,其初值应为多少?晶振fosc=6MHz,则机器周期为2us准时0.1ms时的初始值:50=110010B模式0:(213模式
TH0=#FEH0;TL0=#0EH16TH0=#0FFH;TL0=#0CEH8模式2:(2-50)=(256-50)=206=11001110B准时1ms时的初始值:500=111110100B模式0:(213模式1:(216准时10ms时的初始值:模式1:(2163、假定单片机晶振fosc=6MHz,请利用T0和P1.0输出矩形波,矩形波的高电平宽50us,低电平宽300us。(P.145第13)晶振fosc=6MHz→机器周期为2us准时器T0使之工作于模式3准时50us的初值为:256-25=231(E7H)准时300US的初值为:256-150=106(6AH)方法1:MOVTMOD,#00000011B;T0工作于模式3MOVTCON,#0;清TR0,TF0MOVTL0,#0E7H;高电平初值。256-25SETBP1.0;P1.0口输出高电平SETBTR0;启动准时器T0LOOP1:JNBTF0,LOOP1;检测T0能否溢出CLRTF0;消除溢出标记CLRTR0;封闭准时器MOVTL0,#6AH;写低电平初值256-150SETBTR0;启动准时器T0CLRP1.0;使P1.0输出低电平LOOP2:JNBTF0,LOOP2;检测T0能否溢出CLRTF0;消除溢出标记CLRTR0;封闭准时器MOVTL0,#0E7H;写高电平初值256-25SETBTR0;启动准时器T0SETBP1.0;使P1.0输出高电平SJMPLOOP1;重复方法2:MOVTMOD,#03H;T0工作于模式3MOVTCON,#0;清TR0,TF0MOVTL0,#0E7H;高电平初值。256-25SETBP1.0;P1.0口输出高电平SETBTR0;启动准时器T0LOOP:JNBTF0,LOOP;检测T0能否溢出CLRTF0;消除溢出标记CLRTR0;封闭准时器JNBP1.0,NEXT;P1.0口为低电平转移,;高电平次序履行MOVTL0,#6AH;准时器T0写入低电平的准时初值SETBTR0;启动准时器T0CLRP1.0;P1.0口输出低电平SJMPLOOP;返回重复NEXT:MOVTL0,#0E7H;准时器T0写入高电平的准时初值SETBTR0;启动准时器T0SETBP1.0;P1.0口输出高电平SJMPLOOP;返回重复4、假定单片机晶振fosc=12MHz,用T1准时,试编程由P1.0和P1.1引脚分别输出周期为2ms和500us的方波。(P.145第14题)晶振fosc=6MHz→机器周期为1us准时器T0使之工作于模式1准时250us的初值为:方法一:MOVTMOD,#10H;T1工作于模式1MOVTCON,#0;TR1、TF1清零MOVTH1,#0FFH;65536-250=(FF06H)MOVTL1,#05H;MOVR7,#4;2ms是500us的4倍SETBP1.0;P1.0置高电平SETBP1.1;P1.1置高电平SETBTR1;启动准时器T1LOOP:JNBTF1,LOOP;准时器能否溢出?CLRTF1;准时器溢出后,消除准时器溢出标记CPLP1.1;取反P1.1DJNZR7,NEXT;4倍关系能否知足?MOVR7,#4;重写4倍关系CPLP1.0;取反P1.0NEXT:CLRTR1;封闭准时器T1MOVTH1,#0FFH;重写准时器T1的初值MOVTL1,#06H;SETBTR1;启动准时器T1SJMPLOOP;返回重复方法二:MOVTMOD,#20H;T1工作于模式2MOVTCON,#0;TR1、TF1清零MOVTH1,#6;准时500us的初值(256-250)=6MOVTL1,#6;MOVR7,#4;500us与2ms是4倍的关系SETBP1.0;将P1.0置高电平SETBP1.1;将P1.1置高电平SETBTR1;启动准时器T1LOOP:JNBTF1,LOOP;准时器T1能否溢出CLRTF1;清溢出标记TF1CPLP1.1;取反P1.1口DJNZR7,LOOP;(R7)-1→(R7),(R7)能否为0CPLP1.0;取反P1.0口MOVR7,#4;重写R7SJMPLOOP;返回重复5、编写程序,其功能为:当P1.2引脚的电平上跳时,对P1.1输入的脉冲入行记数;当P1.2引脚的的电平下跳时,停止记数,并将结果存入R7R6中。(P.146第17题)MOVTMOD,#05H;准时器T0工作于方式1,计数方式MOVTCON,#0;消除TF0、TR0。MOVTH0,#0;准时器T0初始值清零MOVTL0,#0;LOOP1:JNBP1.2,LOOP1;P1.2的电平能否上跳SETBTR0;启动准时器T0开始计数LOOP2:JBP1.2,LOOP2;P1.2的电平能否下跳CLRTR0;停止计数MOVA,TL0;将计数结果写入R7、R6,MOVR6,A;R6MOVA,TH0;MOVR7,A;R7
写入低8位写入高8位6、设fosc=12MHz,编写程序,其功能为:对2,产生200us的准时,并用查问T0溢出标记
T0进行初始化,使之工作于模式TF0的方法,控制P1.0引脚输出周期为2ms的方波。(P.146第18题)MOVTMOD,#02H;T0MOVTCON,#0;MOVTH0,#56;(256-200)=56MOVTL0,#56;MOVR7,#5;200usSETBTR0;SETBP1.0;LOOP:JNBTF0,LOOP;CLRTF0;DJNZR7,LOOP;MOVR7,#5;CPLP1.0;SJMPLOOP;
工作于模式2,准时方式消除TF0、TR0。与1ms是5倍的关系启动准时器T0将P1.0置高电平检测T0的溢出标记消除T0的溢出标记能否到5次从头写入计数次数取反P1.0口周而复始7、fosc=6MHz,用模式1编程实现:以准时器T1进行外面事件计数,每计数1000个脉冲后,准时器循环不只。(P.145
T1转为准时工作方式,准时10ms后又转为计数方式,这样第8题)MOVTCON,#0;清TF1、TR1START:MOVTMOD,#50H;T1工作于模式1,计数方式MOVTH1,#0FCH;(65536-1000)=FC18HMOVTL1,#18H;SETBTR1;启动T1,计数开始LOOP1:JNBTF1,LOOP1;检测T1溢出标记CLRTF1;消除T1溢出标记MOVTMOD,#10H;T1工作于模式1,准时方式CLRTR1;封闭T1MOVTH1,#0ECH;(65536-5000)=EC6EHMOVTL1,#6EH;SETBTR1;启动准时器T1LOOP2:JNBTF1,LOOP2;检测T1溢出标记CLRTF1;消除T1溢出标记CLRTR1;封闭T1SJMPSTART;循环不只第5章参照作业及答案8、89C51单片机的P3.3口有1Hz的方波输入,P3.5口有频次介于1KHz—5KHz的周期信号输入,试利用准时器T1的有关功能,编程计算该周期信号的频次,并将其存于片外RAM2100H单元中。MOVTMOD,#D0H;T1:方式1、计数、开关由TR1和P3.3结合控制CLRTF1;消除溢出标记CLRTR1;封闭准时器MOVTH1,#0;写入计数初值MOVTl1,#0;LOOP1:JNBP3.3,LOOP1;等候P3.3为高电平SETBTR1;启动准时器T1LOOP2:JBP3.3,LOOP2;等候计数结束CLRTR1;封闭准时器T1CLRC;消除进位标记MOVA,TL1;读取计数脉冲数的低8位RLCA;低8位×2MOVDPTR,#2100H;片外目的数据储存器地点指针MOVX@DPTR,A;低8位存入要求的目标地点INCDPTR;目标地点+1MOVA,TH1;读取计数脉冲数的高8位RLCA;低8位×2MOVX@DPTR,A;低8位存入要求的目标地点方法二:利用中止方式思路:P3.3引脚上输入1Hz的方波,即每隔1秒钟中止一次,利用中止间隔测P3.5引脚的脉冲数。ORG0000HSJMPMain
;转移到主程序ORG001BHAJMPT1
;转移到真实的中止服务程序ORG0030HMain:MOVTMOD,#50HCLRTF1CLRTR1MOVIE,#08HMOVIP,#0MOVTH1,#0MOVTL1,#0CLRF0SETBEASJMP$
;准时器T1:方式1、计数、开关由软件控制;消除准时器溢出标记;封闭准时器T1;同意准时器T1中止;未设置中止优先级别;计数初值;;消除开始计数标记;开中止;等候中止T1:JBF0,NEXTSETBTR1SETBF0SJMPNEXT1NEXT:CLRTR1CLRF0MOVDPTR,#2100HMOVA,TL1MOVX@DPTR,AMOVA,TH1INCDPTRMOVX@DPTR,ANEXT1:JNBP3.3,NEXT1RETI
;判断能否开始计数;启动计数器;计数标记置1;转移;封闭计数器;计数标记清0;地点指针指向目标地点;读计数器的低8位;存计数器的低8位;读计数器的高8位;地点指针加1;存计数器的高8位;等候P3.3引脚上出现高电平;中止返回9、当系统采纳6MHz晶体振荡器时,由T0工作在方式为2,利用中止响应,产生周期为2ms(脉冲宽度为1ms)的方波序列,并由P1.0输出。1)写出T0准时器的方式控制字,T0准时器初值计算。2)试编写程序达成此功能。思路:方波的周期为2ms,每隔1ms对P1.0取反,可达成题目要求。系统晶体振荡器的频次为6MHz,机器周期为2us,准时器T0在方式2时,最大准时256us×2=512us,达不到1ms的要求,故将准时器T0的初始值选为:256-250=6(准时0.5ms),两次后取反P1.0口。(1)T0的初始值为:X=256-250=6T0
的控制字为:MOVTMOD,#20H
MOVTCON,#0(2)参照程序以下:ORG0000HSJMPMainORG000BHAJMPT0ORG0030HMain:MOVTMOD,#20HCLRTR0CLRTF0MOVIE,#02HMOVIP,#0MOVTH0,#6MOVTL0,#6MOVR7,#2SETBTR0SETBEA
;准时器T1工作于方式2;封闭准时器T1;消除准时器T1溢出标记;同意准时器T1中止;不设置安闲级别;准时器T1初值;(256-250=6);准时0.5ms与1ms的2倍的关系;启动准时器T1;开中止SJMP$T0:DJNZR7,NEXTCPLP1.0MOVR7,#2NEXT:RETI
;
两次能否到?未到则中止返回,到则持续;取反P1.0口;重置2倍的关系;中止返回10、有一个频次为10MHz的方波信号,要求用准时器对该方波信号计数,每计满100个脉冲,将P1.1脚上的电平取反。思路:利用准时器T0方式2对P3.2引脚上输入的脉冲入行计数,每计数100,取反P1.0口。准时器T0在方式2时的初始值为:X=256-100=156(9CH)采纳对准时器T0的溢出标记TF0扫描的方式编程。参照程序以下:MOVTMOD,#06HCLRTR0CLRTF0MOVTH0,#156MOVTL0,#156SETBTR0LOOP:JNBTF0,LOOPCLRTF0CPLP1.0SJMPLOOP
;准时器T0工作于方式2;封闭准时器T0;消除准时器T0的溢出标记;计数100的初值;256-100=156;启动准时器T0;等候溢出;消除准时器T0的溢出标记;取反P1.0口;重复循环11、(同第7题)按以下要求编写8051单片机准时器的初始化程序:(1)T0作为准时,准不时间为10ms.(2)T1作为计数,记满1000溢出。(1)设晶振fosc=12MHz,则T0在方式1时的初始值为X=65536-10000=55536准时器T1在方式1时的初始值为:Y=65536-10001000=512+256+128+64+32+8=111111000初始化参照程序MOVTMOD,#01010001B;T0方式1(准时),T1方式1(计数)MOVTCON,#0;清TR0、TF0、TR1、TF1MOVIE,#0AH;同意T0、T1中止MOVIP,#0;不设置优先级MOVTH0,#D8H;T0的初始值MOVTL0,#0F0H;65536-10000=D8F0HMOVTH1,#0FEH;T1的初始值MOVTL1,#08H;65536-1000=FE08HSETBTR0SETBTR1SETBEA
;启动准时器T0;启动准时器T1;开中止12、要求从P1.1引脚输出1000Hz方波,晶振频次为12MHz。试设计程序。思路:1)只需使P1.1每隔500μs取反一次即可获得1ms方波;。2)将T1设为准时方式0:GATE=0,C/T(—)=0,M1M0=00;T0不用可为随意,只需不使其进入方式3,一般取0即可。故TMOD=00H。下边计算500μs准时T1的初值:机器周期:T=1μs,设初值为X则:=F00CH由于在作13位计数器用时,TL1高3位未用,应写0,X的低5位装入TL1的低5位,因此TL1=#0CH;X的高8位应装入TH1,因此TH1=#F0H。参照源程序以下:MOVTCON,#0MOVTMOD,#0MOVTH1,#0F0HMOVTL1,#0CHSETBTR1LOOP:JNBTF1,LOOPCLRTF1CPLP1.1CLRTR1MOVTH1,#0F0HMOVTL1,#0CHSETBTR1
;清TF1、TR1;准时器T1工作于方式0;准时500us的初值;8192-500=7692=F00CH;启动准时器T1;等候准时500us的溢出;消除溢出标记;取反P1.1口;封闭准时器T1;重写准时500us的初值;重写准时500us的初值;启动准时器T1SJMPLOOP13、试用准时/计数器T1对外面事件计数。要求每计数100,就将T1改成准时方式,控制P1.7输出一个脉宽为10ms的正脉冲,而后又转为计数方式,这样频频循环。设晶振频次为12MHz。准时器T1确立工作于方式1计数100的初始值为:65536-100100=64+32+4=01100100B准时10ms的初始值为:65536-10000参照程序以下:LOOP3:CLRTR1CLRTF1MOVTMOD50HMOVTH1,#0FFHMOVTL1,#9CHSETBTR1LOOP1:JNBTF1,LOOP1MOVTMOD,#10HCLRTF1CLRTR1MOVTH1,#0ECHMOVTL1,#78HSETBTR1LOOP2:JNBTF1,LOOP2CPLP1.7SJMPLOOP3
;封闭准时器T1;消除准时器T1的溢出标记;准时器T1工作于方式1,计数;计数100的初值;65536-100=FF9CH;启动准时器T1;等候计数100溢出;准时器T1工作于方式1,准时;消除准时器溢出标记;封闭准时器T1;准时10ms的初值;65536-5000=EC78H;启动准时器T1;等候准时10ms溢出;取反P1.7口;返回循环14、若单片机晶振为12MHz,利用准时器1方式1,产生1ms的准时,在P1.0脚产生周期为2ms方波,用查问方式工作,查问标记为TF1。已知fosc=12MHz→1个机器周期为1us1ms=1000us初值=65536-1000=5453664536变换为二进制:T0的低8位:00011000(18H)T0的高8位:11110000(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延边自治州中石油2025秋招笔试模拟题含答案油品分析质检岗
- 国家能源伊春市2025秋招面试专业追问及参考计算机与自动化岗位
- 国家能源鹤壁市2025秋招电气工程类面试追问及参考回答
- 中国移动枣庄市2025秋招笔试行测题库及答案通信技术类
- 赣州市中储粮2025秋招面试专业追问题库信息技术岗
- 白城市中石化2025秋招笔试提升练习题含答案
- 2025年材料成型考试题及答案
- 2025年厨房消毒考试试题及答案
- 2025年公文办理考试题及答案
- 采购内勤考试试题及答案
- 低空物流高质量发展实施方案
- 高三物理一轮复习-光学名师公开课获奖课件百校联赛一等奖课件
- DB34-T 4859-2024 农村河道清淤规范
- 国庆节主持词开场白
- 前列腺癌根治术护理查房课件
- 经销商加盟合同模板
- 英语四级核心词690个附高频词汇表
- 国家开放大学《建筑工程质量检验》形考任务1-4附参考答案
- 一级学科中英文名称对照表
- 2001年版与2011年版义务教育英语课程标准
- 月骨脱位与月骨周围脱位-课件
评论
0/150
提交评论