第4章单片机原理课后答案(可编辑修改word版)

合集下载

完整word版第4章单片机原理课后答案

完整word版第4章单片机原理课后答案

习题1. C51特有的数据类型有哪些?答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能。

sfr16寄存器型2. C51中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51中的存储器类型有6种,分别表示的存储器区域是:data:直接寻址的片内RAM低128B,访问速度快bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAMpdata:用Ri间接访问的片外RAM低256Bxdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:程序存储器ROM 64KB空间3. 在C51中,bit位与sbit位有什么区别?答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。

定义时不能指定地址,只能由编译器自动分配。

sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。

定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。

4. 在C51中,通过绝对地址来访问的存储器有几种?答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。

5. 在C51中,中断函数与一般函数有什么不同?答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。

中断函数用interruptm修饰符,m的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2中断函数需要注意如下几点。

(1) 中断函数不能进行参数传递(2) 中断函数没有返回值(3) 在任何情况下都不能直接调用中断函数(4) 如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同(5) C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容(6) C51编译器从绝对地址8m+3处产生一个中断向量(7) 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明6. 按给定的存储类型和数据类型,写出下列变量的说明形式。

北京交通大单片机第4章参考答案

北京交通大单片机第4章参考答案

3-5 指出下列指令中45H代表什么。

MOV A,#45HMOV A,45HMOV 45H,46HMOV C,45HMOV A,#45H中的45H代表立即数45H,该立即数为16进制。

MOV A,45H 中的45H代表直接地址45H单元。

MOV 45H,46H中的45H代表目的操作数所指定的单元为45H。

MOV C,45H中的45H代表45H位。

3-6 分析下列程序执行的结果。

(1)MOV A,#60HMOV R0,#40HMOV @R0, AMOV 41H, R0XCH A, R0执行结果为:(A)=40H(R0)=60H(40H)=60H(41H)=40H (2)MOV DPTR,#2003HMOV A,#18HMOV 20H,#38HMOV R0,#20HXCH A,@R0执行结果为:(DPH)=20H(DPL)=03H(A)=38H(20H)=18H(R0)=20H(3)MOV 20H,#01HMOV A,20HINC ACPL AMOV DPTR,#2000HMOVX @DPTR, A执行结果为:(20H)=01H(A)=FDH(DPTR)=2000H(2000H)=FDH3-8 按要求写出相应的指令。

(1)把寄存器R6的内容送到累加器A中。

(2)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。

(3)清除内部RAM 3FH 单元的高4位。

(4)使累加器A的最低位置1。

(5)清除进位位。

(6)使ACC.4和ACC.5置1。

(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。

(8)把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。

(1)MOV A,R6(2)MOV DPTR,#1000HMOVX A,@DPTRMOV R0,#30HMOV @R0,A(3)ANL 3FH,#0FH(4)ORL A,#01H(5)CLR C(6)ORL A,#30H(7)CLR AMOV DPTR,#2000HMOVC A,@A+DPTRMOV 20H,A(8)CLR AMOV DPTR,#2000HMOVC A,@A+DPTRMOV DPTR,#3000HMOVX @DPTR,A3-10 编写程序段完成如下要求。

单片机微型计算机原理及接口技术课后习题答案第4章

单片机微型计算机原理及接口技术课后习题答案第4章

单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。

4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。

MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。

4-4 说明一下指令中源操作数所在的存储器类型。

(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。

(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。

(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。

(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。

4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。

单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案【篇一:《单片机原理及接口技术(第2版)张毅刚》第4章习题及答案】第4章 at89s51单片机的中断系统思考题及习题41.外部中断1的中断入口地址为 ,定时器1的中断入口地址为。

答:0013h;001bh2.若(ip)=00010100b,则优先级最高者为,最低者为。

答:外部中断1,定时器t13.中断服务子程序与普通子程序有哪些相同和不同之处?答:reti指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断,而ret指令则没有这个操作。

除了这一点两条指令不同外,其它操作都相同。

4.下列说法正确的是。

答:da. 各中断源发出的中断请求信号,都会标记在at89s51的ie寄存器中b. 各中断源发出的中断请求信号,都会标记在at89s51的tmod寄存器中c. 各中断源发出的中断请求信号,都会标记在at89s51的ip寄存器中d. 各中断源发出的中断请求信号,都会标记在at89s51的tcon与scon寄存器中5.at89s51单片机响应外部中断的典型时间是多少?在哪些情况下,cpu将推迟对外部中断请求的响应?答:在一个单一中断的系统里,at89s51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。

在下述三种情况下,at89s51将推迟对外部中断请求的响应:(1)at89s52正在处理同级或更高优先级的中断。

(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。

(3)正在执行的指令是reti或是访问ie或ip的指令。

如果存在上述三种情况之一,at89s52将丢弃中断查询结果,将推迟对外部中断请求的响应。

6.中断查询确认后,在下列各种at89s51单片机运行情况下,能立即进行响应的是。

a. 当前正在进行高优先级中断处理b. 当前正在执行reti指令c. 当前指令是div指令,且正处于取指令的机器周期d. 当前指令是mov a,r3答:d7. at89s51单片机响应中断后,产生长调用指令lcall,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送,使程序执行转向中的中断地址区。

单片机原理及应用(张毅刚-第三版)课后习题答案(全)

单片机原理及应用(张毅刚-第三版)课后习题答案(全)

第1章思考题及习题1参考答案一、填空1. 除了单片机这一名称之外,单片机还可称为或。

答:微控制器,嵌入式控制器.2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于一块芯片上。

答:CPU、存储器、I/O口、总线3. AT89S52单片机工作频率上限为 MHz。

答:33 MHz。

4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提高。

答:成本,可靠性。

二、单选1. 单片机内部数据之所以用二进制形式表示,主要是A.为了编程方便B.受器件的物理性能限制C.为了通用性D.为了提高运算速度答:B2. 在家用电器中使用单片机应属于微计算机的。

A.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用答: B3. 下面的哪一项应用,不属于单片机的应用范围。

A.工业控制 B.家用电器的控制 C.数据库管理 D.汽车电子设备答:C三、判断对错1. STC系列单片机是8051内核的单片机。

对2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断源、1个定时器(且具有捕捉功能)。

对3. 单片机是一种CPU。

错4. AT89S52单片机是微处理器。

错5. AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。

错6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。

对7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。

对8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP的长处。

对四、简答1. 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。

而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。

单片机第4章习题答案

单片机第4章习题答案

第4章习题答案一、填空题1.机器语言2.机器汇编、手工汇编3.AREA1=1000H、BUF=1004H、TIME=01H、ACK=1006H4.(A)=4FH、(R0)=4BH、(R1)=E5H、(21H)=D8H、(22H)=4BH、(2FH)=E5H二、简答题1.什么叫伪指令?伪指令与指令有什么区别?答:所谓伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编时,由汇编程序处理的操作,它们可以完成如数据定义、分配存储器、指示程序结束等功能。

2.汇编语言的格式是怎样的?汇编语言语句格式为:标号:操作码操作数;注释3.MCS-51系列单片机有哪些伪指令?它们的用途是什么?(1)编起始地址命令ORG功能:规定此命令之后的程序或数据的存放起始地址。

(2)定义字节伪指令格式:[标号:] DB X1,X2, (X)功能:从指定地址开始,存放若干字节数据。

(3)字定义伪指令格式:[标号:] DW Y1,Y2,…,Yn功能:从指定地址开始,存放若干字数据。

(4)汇编结束伪指令END功能:该伪指令指出结束汇编,即使后面还有指令,汇编程序也不处理。

(5)赋值伪指令格式:标号 EQU 表达式功能:将表达式的值(数据或地址)赋给标号。

(6)位定义伪指令格式:[标号] BIT 位地址功能:将位地址赋给标号。

4.汇编语言程序设计分为哪几个步骤?答:汇编语言程序设计一般要经过以下几个步骤:(1)分析问题,明确任务(2)确定算法(3)画出程序流程图(4)编写源程序(5)汇编和调试5.结构化程序设计有哪几种常用的程序结构?答:顺序结构、分支结构、循环结构和子程序结构6.子程序调用时,参数的传递方法有哪几种?答:常用的参数传递方法有:工作寄存器或累加器、指针寄存器、堆栈和程序段等。

7.分析下列程序的功能。

X DATA 30HY DATA 32HMOV A,XJNB ACC.7,TRUECPL AADD A,#01HTRUE:MOV Y,A答:该段程序的功能是:当30H单元的最高位不为0时,则把30H单元的内容送32H 单元,当30H单元的最高位为0时,则把30H单元的内容求反加1后送32单元。

单片机原理课后习题参考答案

单片机原理课后习题参考答案

第2章部分习题参考解答1、试述MCS-51单片机内部有哪些主要逻辑部件并说出其功能,画出片内结构图。

MCS-51单片机的内部除包含CPU外,还包含程序存储器、数据存储器、定时器/计数器、并行I/O接口、串行I/O接口、总线控制逻辑和中断控制逻辑等逻辑部件,其结构框图如图所示:其中,CPU是单片机的最核心部分,它是整个单片机的控制和指挥中心,完成所有的计算和控制任务。

振荡器和时序逻辑,产生CPU工作所需要的内部时钟。

中断控制逻辑用来应付一些临时到达的突发事件,并能保证当有多个突发事件发生时,CPU能够有序地为这些事件进行服务,所有突发事件服务完成后CPU 还能继续以前的工作。

并行I/O接口和串行I/O接口作为CPU与外部设备通信的信息传输通道。

程序存储器用于存放单片机的程序。

数据存储器用于存放内部待处理的数据和处理后的结果。

定时器/计数器主要是完成对外部输入脉冲的计数或者根据内部的时钟及定时设置,周期性的产生定时信号。

64K总线控制逻辑,用于产生外部64KB存储空间的有关读写控制信号。

2、MCS-51单片机有4个8位并行口(P0、P1、P2、P3),哪个口可作为地址/数据利用总线?P0口可作为地址/数据复用总线口。

3、P0口作为通用I/O口使用时,在输出状态下应注意什么?在输入状态下应注意什么?P0口作为通用I/O口使用时,输出级是漏极开路的,因此在输出状态下外部应加上拉电阻。

在输入状态下应先向端口锁存器写入1,这样引脚便处于悬浮状态,可作高阻抗输入。

5、MCS-51单片机的最大寻址空间是多少?为什么?MCS-51单片机,程序存储器空间采用片内、片外统一编址的方式,共有64KB,地址范围为000OH~FFFFH。

片内有256字节数据存储器地址空间,地址范围为00H~FFH。

片外数据存储器空间有64KB,其地址范围也是000OH~FFFFH。

7、MCS-51单片机片内低128字节的RAM中,分了几个基本区域?说出这些区域的名称。

单片机原理及应用课后全答案(完整张毅刚版)

单片机原理及应用课后全答案(完整张毅刚版)

第一章单片机概述1.2 除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。

1.3 单片机与普通计算机的不同之处在于其将(微处理器)、(存储器)和(各种输入输出接口)三部分集成于一块芯片上。

4 、单片机的发展大致分为哪几个阶段?答:单片机的发展历史可分为四个阶段:第一阶段(1974 年----1976 年):单片机初级阶段。

第二阶段(1976 年----1978 年):低性能单片机阶段。

第三阶段(1978 年----现在):高性能单片机阶段。

第四阶段(1982 年----现在):8 位单片机巩固发展及16 位单片机、32位单片机推出阶段1.5 单片机根据其基本操作处理的位数可分为哪几种类型?答:单片机根据其基本操作处理的位数可分为:1 位单片机、4 位单片机、8 位单片机、16 位单片机和32 位单片机。

1.6 MCS-51 系列单片机的基本芯片分别为哪几种?它们的差别是什么?答:基本芯片为8031、8051 、8751 。

8031 内部包括1 个8 位cpu 、128BRAM,21个特殊功能寄存器(SFR )、4 个8 位并行I/O 口、1 个全双工串行口,2 个16 位定时器/ 计数器,但片内无程序存储器,需外扩EPROM芯片。

8051 是在8 031 的基础上,片内又集成有4KBROM,作为程序存储器,是1 个程序不超过4KB 的小系统。

8751 是在8 031 的基础上,增加了4KB 的EPROM,它构成了1 个程序小于4KB 的小系统。

用户可以将程序固化在EPROM 中,可以反复修改程序。

1.7 MCS-51 系列单片机与80C51 系列单片机的异同点是什么?答:共同点为它们的指令系统相互兼容。

不同点在于MCS-5 1 是基本型,而80C51 采用CMOS工艺,功耗很低,有两种掉电工作方式,一种是CPU 停止工作,其它部分仍继续工作;另一种是,除片内RAM继续保持数据外,其它部分都停止工作。

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

习题1.C51 特有的数据类型有哪些?答:C51 特有的数据类型有位型bit、特殊位型sbit、8 位特殊功能寄存器型sfr 和16 位特殊功能寄存器型sfr16。

2.C51 中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51 中的存储器类型有 6 种,分别表示的存储器区域是:data:直接寻址的片内RAM 低128B,访问速度快bdata:片内RAM 的可位寻址区(20H~2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAM pdata:用Ri 间接访问的片外RAM 低256Bxdata:用DPTR 间接访问的片外RAM,允许访问全部64KB 片外RAMcode:程序存储器ROM 64KB 空间3.在C51 中,bit 位与sbit 位有什么区别?答:bit 位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。

定义时不能指定地址,只能由编译器自动分配。

sbit 位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。

定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。

4.在C51 中,通过绝对地址来访问的存储器有几种?答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。

5.在C51 中,中断函数与一般函数有什么不同?答:中断函数是C51 的一个重要特点,C51 允许用户创建中断函数。

中断函数用interruptm 修饰符,m 的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2中断函数需要注意如下几点。

(1)中断函数不能进行参数传递(2)中断函数没有返回值(3)在任何情况下都不能直接调用中断函数(4)如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同(5)C51 编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容(6)C51 编译器从绝对地址8m+3 处产生一个中断向量(7)中断函数最好写在文件的尾部,并且禁止使用extern 存储类型说明6.按给定的存储类型和数据类型,写出下列变量的说明形式。

(1)在data 区定义字符变量val1。

char data varl;(2)在idata 区定义整型变量val2。

int idata var2;(3)在xdata 区定义无符号字符型数组val3[4]。

unsigned char xdata val3[4];(4)在xdata 区定义一个指向char 类型的指针px。

char xdata *px;(5)定义可寻址位变量flag。

bit fllag;(6)定义特殊功能寄存器变量P3。

sfr P3=0xb0;(7)定义特殊功能寄存器变量SCON。

sfr SCON=0x98;(8)定义16 位的特殊功能寄存器T0。

sfr16 T0=0x8a;7.下列程序段汇编后,从2000H 单元开始的单元内容是什么?ORG 2000HTAB:DB 01H,34H,’a’,’C’DW 5567H,87H(2000H)=01H; (2001H)=34H; (2002H)=61H; (2003H)=43H;(2004H)=55H; (2005H)=67H; (2006H)=00H; (2007H)=87H;8.编程实现将片外RAM 的20H~30H 单元的内容,全部移到片内RAM 的20H 单元的开始位置,并将原位置清零。

程序:MOV R0,#20HMOV DPTR,#20HMOV R2,#11HLOOP:MOVX A,@DPTRMOV @R0,AMOV A,#00MOVX @DPTR,AINC DPTRINC R0DJNZ R2,LOOPSJMP $9.编程将片外RAM 的1000H 单元开始的50 个字节的数据相加,结果存放于R7R6 中。

MOV DPTR,#1000HMOV R2,#50MOV R7,#00MOV R6,#00LOOP:MOVX A,@DPTRADD A,R6MOV R6,AMOV A,R7ADDC A,#0MOV R7,AINC DPTRDJNZ R2,LOOPSJMP $10.编程实现R4R3⨯R2,结果存放于R7R6R5 中。

程序:ORG 0100HMUL1:MOV A,R2MOV B,R3MUL AB ;R2⨯R3,结果的低字节直接存入积的R5MOV R5,A ;结果的高字节存入R6 中暂存起来MOV R6,BMUL2:MOV A,R2MOV B,R4MUL AB ;R2⨯R4,结果的低字节与R6 相加后,再存入R6 中ADD A,R6MOV R6,AMOV A,B ;结果的高字节加上进位位后存入R7 中ADDC A,#00MOV R7,ASJMP $11.用查表的方法实现将R2 中一位十六进制数转换成ASCII 码并放回R2。

程序:(设一位十六进制数放在R2 中,轮换的ASCII 也放于R2 中)C16STASC:MOV DPTR,#TABMOV A,R2MOVC A,@A+DPTRMOV R2,ARETTAB:DB 30H,31H,32H,33H,34H,35H,36H,37HDB 38H,391H,41H,42H,43H,44H,45H,46H12.设8051 的P1 中各位接发光二极管,分别用汇编语言和C 语言编程实现逐个轮流点亮二极管,并循环显示。

参考程序:ORG 0000HLJMP MAINORG 0100H ;主程序MAIN:MOV A,#01HLOOP:MOV P1,ACALL DELAYRL ASJMP LOOPSJMP $DELAY:MOV R7,#0FFHDJNZ R7,$ RETENDC 语言程序:#include <reg51.h> //包含特殊功能寄存器库void delay(unsigned int x);void main(){unsigned char i,j;while(1){i=01;for (j=0;j<8;j++){P1=i;delay(100);i=i*2;}}}void delay(unsigned int x){unsigned char j;while(x--){for (j=0;j<125;j++);}}13.8051 系统中,已知振荡频率为12MHz,用定时/计数器T0,使P1.0 输出周期为2ms 的方波。

要求分别用汇编语言和C 语言进行编程。

解:分析:从P1.0 输出周期为2ms 的方波,只须P1.0 每1ms 取反一次则可。

当系统时钟为12MHZ,定时/计数器T0 工作于方式1 时,最大的定时时间为65.536ms,满足1ms 的定时要求,方式控制字应设定为00000001B(01H)。

定时1ms,计数值N 为1000,初值X=65536-1000=64536,则TH0=FCH,TL0=18H。

采用中断处理方式:程序如下:ORG 0000HLJMP MAINORG 000BH ;中断处理程序MOV TH0,#0FCHMOV TL0,#18HCPL P1.0RETIORG 0100H ;主程序MAIN:MOV TMOD,#01HMOV TH0,#0FCHMOV TL0,#18HSETB EASETB ET0SETB TR0SJMP$ENDC 语言程序:#include <reg51.h> //包含特殊功能寄存器库sbit P1_0=P1^0; //P1 口0 位定义成位变量P1_0void main(){ TMOD=0x01;TH0=0xFC;TL0=0x18;EA=1;ET0=1;TR0=1;while(1);}void time0_int(void) interrupt 1 //定时计数器0 中断服务程序{TH0=0xFC;TL0=0x18;P1_0=!P1_0;}14.8051 系统中,已知振荡频率为12MHz,用定时/计数器T1,使P1.1 输出周期为2s 的方波。

要求分别用汇编语言和C 语言进行编程。

解:从P1.1 产生2s 的方波,应产生500ms 的周期性的定时,定时到对P1.1 取反就可实现。

由于定时时间较长,一个定时/计数器T1 不能直接实现,采用定时/计数器T1 产生周期性为10ms 的定时,然后用一个寄存器R2 对10ms 计数100 次来实现。

系统时钟为12MHZ,定时/计数器T1 定时10ms,计数值N 为10000,只能选方式1,方式控制字为00010000B(10H),初值X:X=65536-10000=55536=1101100011110000B则TH1=11011000B=D8H,TL1=11110000B=F0H。

定时/计数器T1 采用中断处理方式。

汇编程序:ORG 0000HLJMP MAINORG 001BHLJMP INTT1ORG 0100HMAIN:MOV TMOD,#10HMOV TH1,#0D8HMOV TL1,#0F0HMOV R2,#00HSETB EASETB ET1SETB TR1SJMP $INTT1:MOV TH1,#0D8HMOV TL1,#0F0HINC R2CJNE R2,#64H,NEXTCPL P1.1MOV R2,#00HNEXT:RETIENDC 语言程序:#include <reg51.h> //包含特殊功能寄存器库sbit P1_1=P1^1;char i;void main(){ TMOD=0x01;TH0=0xD8;TL0=0xf0;EA=1;ET0=1;i=0;TR0=1;while(1);}void time0_int(void) interrupt 1 //中断服务程序{ TH0=0xD8;TL0=0xf0; i++;if (i= =100) {P1_1=! P1_1;i=0;}}15.8051 系统中,已知振荡频率为6MHz,用定时器T0,使P1.0 输出周期为400μs 的方波。

用定时器T1,使P1.1 输出周期为1ms 的方波。

要求分别用汇编语言和C 语言进行编程。

解:分析:从P1.0 输出周期为400μs 的方波,只须P1.0 每200μs 取反一次则可。

当系统时钟为12MHZ,定时/计数器T0 工作于方式2 时,最大的定时时间为256μs,满足200μs 的定时要求,所以定时/计数器T0 选择方式2;从P1.1 输出周期为1ms 的方波,只须P1.0 每0.5ms 取反一次则可。

相关文档
最新文档