单片机2修改

合集下载

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用实现定时和计数的方法一般有:软件定时、专用电路和可编程定时器/计数器三种方法。

软件定时:执行一个循环程序进行时间延迟。

定时准确,不需要外加硬件电路,但会增加CPU 开销。

专用硬件电路定时:可以实现请精确的定时和计数,但参数调节不方波。

可编程定时器/计数器:不占用CPU 时间,能与CPU 并行工作,实现精确的定时和计数,又可以通过变成设置其工作方式和其他参数,使用方便。

以下说明仅试用宏晶的STC89C52!!定时器2:T2MOD,T2CON,TH2,TL2,RC2H,RC2L.T2MOD:0C9H(不可位寻址)000000T2OEDCENT2OE:定时器输出使能位DECN:向上/向下计数使能位。

定时器2 可配制成向上/向下计数器。

0:向上计数(模式状态) 1:向下计数(尽量不使用)T2CON:0XC8H(可位寻址)TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2TF2:7 上/下溢出标志位,定时器2 溢出时置位,必须有用软件清零!当RCLK 或TCLK=1 时,TF2 将不会置位。

EXF2:6 定时器2 外部标志,当EXEN2=1 且T2EX 的负跳变产生捕获或重装时,EXF2 置位。

定时器2 中断使能时,EXF2=1 将使CPU 从中断向量处执行定时器2 中断子程序。

EXF2 位必须用软件清零。

在递增/递减计数器模式(DCEN=1)中,EXF2 位不会引起中断。

RCLK:5 接收时钟标志。

RCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的接收时钟。

RCLK=0 时,将定时器1 的溢出脉冲作为串口模式1 和模式3 的接收时钟。

TCLK:4 发送时钟标志位。

TCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的发送时钟。

TCLK=0 时,将定时器1 的溢出脉冲作为串口模式1 和模式3 发送时钟。

EXEN2:3 定时器2 外部使能标志。

stc89c2单片机系统故障及处理方法

stc89c2单片机系统故障及处理方法

stc89c2单片机系统故障及处理方法
STC89C2单片机系统故障及处理方法
一、单片机系统故障
1、硬件结构故障
1)电源电压不稳定或变化较大:检查电源电压滤波及器件。

2)系统工作环境温度过高:调整系统工作环境温度。

3)相关器件工作异常:更换或维护器件。

4)外部接口电路不稳定:检查外部接口电路,如把一些简单的接口电路去掉,重新设计或安装电源稳压电路,同时查看外部设备的工作条件是否正常。

5)系统烧损:换上新的舞台设备,检查器件,查看外部接口电路,查看电源电压是否稳定。

2、软件结构故障
1)单片机软件编程不正确:检查单片机软件编程条件,修改单片机软件编程内容。

2)调试程序有误:检查调试程序,重新编程。

3)内存的读写错误:重新审查读写模块。

4)输出数据错误:检查输出数据模块,检查与输出数据模块相连的设备。

二、故障处理方法
1、在处理单片机故障时,要根据系统故障的具体现象和原因确定下一步处理方法,因此,要先对系统进行定位,排除可能存在的硬
件或软件问题,判断故障的原因,才能采取有效的处理措施。

2、如果检测到硬件结构故障,应检查硬件设备,如电源滤波器、单片机编程模块、外部接口等,重新维护设备,或者重新更换设备,以保证系统的正常工作。

3、如果检测到软件结构故障,应检查软件程序,如单片机编程、调试程序、读写模块、输出模块等,重新编写软件程序,以保证系统的正常工作。

单片机延时程序怎么写(二)2024

单片机延时程序怎么写(二)2024

单片机延时程序怎么写(二)引言概述:在单片机编程中,延时程序是非常常见且必要的一部分。

在上一篇文章中,我们已经介绍了如何使用循环来实现延时。

然而,这种方法可能不是最佳的选择,特别是在需要准确延时的情况下。

在本文中,我们将介绍一种更加精确和高效的延时程序编写方法。

正文内容:一、使用定时器来实现延时1. 配置定时器的基本参数,如计数模式、计数频率等。

2. 设置定时器的初值和重载值,用于设定延时的时间。

3. 启动定时器开始计时。

4. 等待定时器计时完毕,即延时时间到达。

5. 定时器计时完毕后,关闭定时器并清除中断标志。

二、使用硬件延时器来实现延时1. 硬件延时器是一种特殊的定时器,可以实现更高精度的延时。

2. 配置硬件延时器的时钟源和计数模式。

3. 设置硬件延时器的初值和重载值,用于设定延时的时间。

4. 启动硬件延时器开始计时。

5. 等待硬件延时器计时完毕,即延时时间到达。

三、使用外部晶振来实现延时1. 外部晶振可以提供更准确的时钟信号,从而实现更精确的延时。

2. 连接外部晶振到单片机的时钟输入引脚。

3. 配置单片机的时钟源为外部晶振。

4. 根据外部晶振的频率设置延时时间。

5. 使用循环检测的方法等待延时时间到达。

四、使用软件延时函数来实现延时1. 软件延时函数是一种基于循环的延时实现方法。

2. 根据单片机的时钟频率和所需延时时间计算循环次数。

3. 使用循环进行延时,每次循环耗时固定。

4. 根据所需延时时间和循环耗时计算实际应该循环的次数。

5. 注意考虑单片机的优化设置,避免编译器优化影响延时准确性。

五、延时程序的优化技巧1. 选择合适的延时方法,根据实际需求和要求选择最合适的延时实现方法。

2. 考虑延时时间的准确性,根据需求选择合适的时钟源和计数模式等参数。

3. 避免使用不必要的中断和其他程序操作,以确保延时程序的准确性。

4. 根据硬件特性和需求进行延时函数的优化,提高程序的执行效率。

5. 针对不同的延时需求,编写相应的延时函数库,方便重复使用和维护。

单片机 实验2-外部中断程序设计-中断按键按下次数计数数码管显示-硬件和程序设计参考

单片机 实验2-外部中断程序设计-中断按键按下次数计数数码管显示-硬件和程序设计参考

硬件电路参考如下:程序参考如下:#pragma sfr#pragma interrupt INTP0 LED_INTP0 /* 定义使用INTP0中断,中断函数名LED_INTP0*/ #pragma di /*禁止使用中断功能声明*/#pragma ei /*允许使用中断功能声明*//*数码管编码数组*/unsigned char LED_light[10]={0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x3F}; unsigned char j=0; /*按键次数变量*/void hdinit() /*硬件初始化*/{PM1=0; /*P1口输出数码管字型码,所以设置为输出*/PU1=0XFF; /*由于P1口直接驱动数码管显示,为增大驱动,设置为内部上拉*/PM12.0=0; /*P12.0口线要作为中断多功能,设置为输出和内部上拉 */PU12.0=1;PIF0=0; /*中断请求标志,没有中断请求*/PMK0=0; /*中断屏蔽标志,允许中断*/PPR0=1; /*中断优先级,低优先级*/EGP.0=1; /*与EGN组合,上升沿有效*/EGN.0=0;}void main (void){DI(); /*首先做准备,禁止中断*/IMS=0XCC;IXS=0X00;hdinit();EI(); /*准备完成,允许中断*/while(1){ /*啥也不干,就等待中断,仅是在这个实验中使用中断,实际不是这样/*}}__interrupt void LED_INTP0() /*中断函数*/{ P1= LED_light[j]; /*P1赋值,数码管显示相应数值*/j++; /*按键次数加一*/if(j==10) /*如果按键次数达到十次,按键计数归0*/{j=0;} }思考: 如果用两位数码管,从0—99循环计数又该怎样设计硬件和软件呢?。

单片机二进制BCD码转换实验程序流程图

单片机二进制BCD码转换实验程序流程图

二进制BCD码转换一、实验目的1.掌握简单的数值转换算法2.基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。

掌握各种数制之间的转换是一种基本功。

我们将给定的一字节二进制数,转换成二十进制(BCD)码。

将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。

三、实验内容及步骤1.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。

2.启动PC机,打开KEIL软件,软件设置为模拟调试状态。

在所建的Project文件中添加TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA) (在MEMORY#3中输入D:30H 回车),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。

用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。

修改源程序中给累加器A的赋值,重复实验,观察实验效果。

3.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

四、流程图及源程序(见光盘中的程序文件夹)1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图。

STC15F2K60S2单片机定时器编程

STC15F2K60S2单片机定时器编程

STC15F2K60S2单片机定时器编程一、STC15F2K60S2 单片机定时器概述STC15F2K60S2 单片机内部集成了 5 个定时器,分别是 2 个 16 位的定时器/计数器 T0 和 T1,2 个 8 位的定时器 T2 和 T3,以及 1 个独立波特率发生器定时器T4。

这些定时器都具有不同的特点和应用场景。

T0 和 T1 是传统的 16 位定时器/计数器,可以工作在定时模式和计数模式。

在定时模式下,通过设置定时器的初值和溢出周期,可以实现精确的定时功能;在计数模式下,可以对外部脉冲进行计数。

T2 和 T3 是 8 位定时器,具有自动重载功能,使用起来更加方便。

T4 是独立波特率发生器定时器,主要用于串行通信中的波特率设置。

二、定时器的工作模式1、定时模式在定时模式下,定时器对内部的系统时钟进行计数。

通过设置定时器的初值和溢出周期,可以实现不同时长的定时功能。

例如,如果系统时钟频率为 12MHz,要实现 1ms 的定时,我们可以计算出定时器的初值为 65536 1000,然后将初值写入定时器的寄存器中。

2、计数模式在计数模式下,定时器对外部引脚输入的脉冲进行计数。

当计数值达到设定的阈值时,产生溢出中断。

三、定时器的相关寄存器1、定时器控制寄存器(TCON)TCON 寄存器用于控制定时器的启动、停止、溢出标志等。

例如,TR0 和 TR1 位分别用于控制 T0 和 T1 的启动和停止,TF0 和 TF1 位则分别表示 T0 和 T1 的溢出标志。

2、定时器模式寄存器(TMOD)TMOD 寄存器用于设置定时器的工作模式和计数方式。

例如,可以通过设置 TMOD 寄存器的某些位来选择定时器是工作在定时模式还是计数模式,以及是 8 位模式还是 16 位模式。

3、定时器初值寄存器(TH0、TL0、TH1、TL1、TH2、TL2、TH3、TL3)这些寄存器用于存储定时器的初值。

在定时模式下,通过设置初值可以控制定时器的溢出周期;在计数模式下,初值则决定了计数的阈值。

第2节-单片机系统的仿真与调试

第2节-单片机系统的仿真与调试

图2-2-7 AT89C51的编辑对话框
三、绘制导线
1.画导线三、绘制导线
Proteus的智能化可以在你想要画线的时候进行自动检 测。当鼠标的指针靠近一个对象的连接点时,鼠标的指针 就会出现一个“ ”符号,鼠标左键点击元器件的连接点, 移动鼠标到需要连接的连接点,鼠标再次变为绿色,单击 左键就出现了连接线。此时软件自动定出线路径。如图24-8所示。这就是Proteus的线路自动路径功能(简称WAR), 如果你只是在两个连接点用鼠标左击,WAR将选择一个合适 的线径。WAR可通过使用工具栏里“WAR”命令按钮
本节主要以单片机最小系统电路为基础,对2.1节程 序设计进行仿真调试,使读者初步掌握Proteus应用过程。
2.2.1 Proteus ISIS的工作界面
Proteus是标准的Windows安装程序。 8.0以下版本在 计算机上安装完毕后会在开始菜单的程序中出现Proteus 7 Professional的程序组,完成授权认证之后,可以运行 ARES 7 Professional 或 者 ISIS 7 Professional , 其 中 Proteus ISIS 7 Professional主要应用电子电路、单片 机的电路原理图设计和仿真。
图2-2-8连接导线
2.画总线
为了简化原理图,也可以用一条导线代表数条并行的 导线,这就是所谓的总线。当电路中多根数据线、地址线、 控制线并行时经常使用总线设计。点击工具箱的总线按 钮 ,即可在编辑窗口画总线。单击开始绘制,双击左 键结束本段绘制,右击取消继续绘制。当多条点击工具的 按钮,画总线分支线,它是用来连接总线和元器件管脚的。 画总线的时候为了和一般的导线区分,一般画斜线来表示 分支线,此时需要关闭自动布线功能,点击图标 。

单片机第2章练习题参考答案(可编辑修改word版)

单片机第2章练习题参考答案(可编辑修改word版)

一、单项选择题1.MCS—51 单片机的CPU 主要的组成部分为A.运算器、控制器B.加法器、寄存器C.运算器、加法器D.运算器、译码器2.单片机能直接运行的程序叫。

A.源程序B。

汇编程序C。

目标程序D。

编译程序3.单片机中的程序计数器PC 用来。

A.存放指令B.存放正在执行的指令地址C.存放下一条指令地址D.存放上一条指令地址4.单片机上电复位后,PC 的内容和SP 的内容为。

A.0000H,00H B。

0000H,07H C。

0003H,07H D。

0800H,08H5.单片机8031 的EA 引脚。

A.必须接地B。

必须接+5V C。

可悬空D。

以上三种视需要而定6.PSW 中的RS1 和RS0 用来。

A.选择工作寄存器区号B。

指示复位 C。

选择定时器D。

选择工作方式7.对于8031 单片机,其内部RAM 。

A.只能位寻址B.只能字节寻址C.既可位寻址又可字节寻址D.少部分只能位寻址8.80C51 单片机若晶振频率为fosc=12MHz,则一个机器周期等于µS。

A.1/12 B.1/2 C.1 D.29.MCS—51 单片机的数据指针DPTR 是一个16 位的专用地址指针寄存器,主要用来。

A.存放指令B.存放16 位地址,作间址寄存器使用C.存放下一条指令地址D.存放上一条指令地址10.MCS—51 的片内外的 ROM 是统一编址的,如果EA 端保持高电平,8051 的程序计数器PC 在地址范围内。

A.0H—FFFFH B.0000H—FFFFH C.0001H—0FFFH D.0000H—0FFFH11.MCS—51 的专用寄存器SFR 中的堆栈指针SP 是一个特殊的存贮区,用来,它是按后进先出的原则存取数据的。

A.存放运算中间结果B.存放标志位C.暂存数据和地址D.存放待调试的程序12.单片机的堆栈指针SP 始终是指示。

A.堆栈底B.堆栈顶C.堆栈地址D.堆栈中间位置二、问答题1、80C51单片机芯片包含哪些主要逻辑功能部件?各有什么主要功能?2、MCS-51单片机的 EA信号有何功能?在使用 8031时 EA信号引脚应如何处理?3、简述程序状态字PSW中各个位的作用。

单片机定时器方式2的工作原理

单片机定时器方式2的工作原理

单片机定时器方式2的工作原理
单片机定时器方式2的工作原理如下:
在定时器方式2中,定时器/计数器被配置为一个16位的定时器模式。

当定时器/计数器的计数达到最大值(对于8051单片机,最大值为65535)时,计数器会自动回滚到0,并产生一个溢出事件。

当定时器/计数器溢出时,定时器/计数器的输出比较寄存器将被立即加载到输出比较寄存器中。

这意味着在溢出发生后,输出比较寄存器的值将立即被复制到输出比较寄存器中,并产生一个中断请求。

在定时器方式2中,输出比较寄存器的值可以通过编程来设置。

当输出比较寄存器的值被设置后,定时器/计数器的当前计数值将与输出比较寄存器的
值进行比较。

如果定时器/计数器的计数值小于输出比较寄存器的值,则定
时器/计数器的计数值将递增,直到定时器/计数器的计数值等于输出比较寄存器的值。

当定时器/计数器的计数值等于输出比较寄存器的值时,输出比较寄存器的
值将被复制到输出比较寄存器中,并产生一个中断请求。

此时,定时器/计
数器的计数值将被清零,并重新开始计数。

因此,通过设置输出比较寄存器的值,可以控制定时器/计数器的计数值何时达到溢出值,从而控制定时器的定时时间。

单片机课程实验二: 独立按键电路设计

单片机课程实验二: 独立按键电路设计

单片机课程实验二:独立按键电路设计专业:通信工程学号:1610111183 姓名:石万里一、实验步骤:在实验一STC89C52单片机控制8个流水灯的实验的基础上进行此实验。

本次实验目标:通过两个独立按键控制流水灯的变化,使得8个流水灯代表的8进制数,在按下K1键后自动加一,按下K2键后,自动减一,采用下降沿外部中断触发。

电路图在实验一的基础上进行改装,让P32与P33各自通过一个独立按键接地,手绘电路图如图1.1所示:图1.1独立按键电路图1.2独立按键电路焊接成果实验程序编写烧录后,在keil软件中生产hex文件,再烧录到单片机芯片中,再给电路板上电即可。

之后是实验程序的编写,流水灯程序编写好并在学习板上测试成功后,即可把芯片放到自己焊接的电路板上上电测试电路板,如果成功即可找老师验收,不成功需要用万用表对电路板进行测试,测试时先把万用表档位调到欧姆档,测试本实验焊接的独立按键电路是否存在开路,并检查是否存在有未焊接的部分,是否有虚焊漏焊的情况,是否上电测试时晶振未安装,电路板检查后继续进行测试,然后再检查、测试,直到自己焊接的电路板功能正常。

若是在学习板上程序未成功,则需要对程序进行修改,重新编译、烧录,不断测试。

二、流水灯程序:org 0000Hljmp mainorg 0003hljmp jiayiorg 0013hljmp jianyiorg 100h main:setb ex0setb IT0setb ex1setb IT1setb eamov r4,#07hmov r3,#07hmov r2,#02hmov a,#0fehmov p1,aloop2:acall delay next: rl aacall delaymov p1,adjnz r4,next here: acall delay//mov a,p1rr amov p1,adjnz r3,heremov r4,#07hmov r3,#07hdjnz r2,loop2acall delay loop1:mov a,#07chmov p1,asjmp loop1 delay:mov r5,#19h delay1:mov r6,#19h delay2:mov r7,#0ffhdjnz r7,$djnz r6,delay2djnz r5,delay1 retjiayi:mov a,p1dec aacall delaymov p1,asjmp jiayiretijianyi:mov a,p1inc aacall delaymov p1,asjmp jianyiretiend三、实验总结:实验结果如下图所示:前五张图片是加一结果,最后两张图片是减一结果因为拍照速度太慢,故加一减一在图中看起来可能不连续,但程序完全正确,已经过实验验证,本人建议最好录视频作为作业上交此实验是建立在实验一的基础上进行的,故相对较为简单,只需要P32与P33各自加独立按键接地即可。

单片机实验报告二 单片机IO口实验

单片机实验报告二 单片机IO口实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.16 实验成绩:实验二单片机I/O口实验(一)实验目的1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时程序的编写。

2.熟练掌握STC型开发板的使用方法和注意事项。

3.掌握应用STC_ISP烧录过程;(二)设计要求利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。

其中流水灯的变化形式多样。

(三)实验原理STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现:1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添加。

根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。

图12.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中“STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()”选项,如图2所示。

单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3所示:图2图33.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P4.6、P4.7所连接的LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。

STC15F2K60S2单片机中断编程

STC15F2K60S2单片机中断编程

STC15F2K60S2单片机中断编程在单片机的世界里,中断就像是一位特殊的“信使”,能够在关键时刻打断单片机的正常工作流程,让它优先处理一些紧急而重要的任务。

STC15F2K60S2 单片机作为一款功能强大的微控制器,其中断系统为我们提供了高效、灵活的事件处理方式。

接下来,让我们一起深入探索 STC15F2K60S2 单片机中断编程的奥秘。

一、中断的概念中断,简单来说,就是当单片机正在执行一个任务时,突然收到一个外部或内部的信号,这个信号会让单片机暂停当前任务,转而去处理更紧急的事情。

处理完紧急任务后,再返回原来被中断的地方继续执行之前的任务。

想象一下,你正在专心看书(单片机正在执行主程序),突然有人敲门(中断发生),你会先放下书去开门(处理中断),然后再回来继续看书(返回主程序)。

二、STC15F2K60S2 单片机的中断源STC15F2K60S2 单片机拥有丰富的中断源,包括外部中断、定时/计数器中断、串行口中断等。

外部中断可以通过引脚的电平变化或者边沿触发来产生中断请求。

比如,当连接在某个引脚的传感器检测到特定状态时,就会触发中断。

定时/计数器中断则可以用于实现精确的定时控制或者对外部脉冲进行计数。

当定时时间到或者计数器计满时,就会产生中断。

串行口中断则用于处理串行通信过程中的各种事件。

三、中断优先级在多个中断同时发生的情况下,中断优先级就显得尤为重要。

STC15F2K60S2 单片机为每个中断源都设置了不同的优先级。

高优先级的中断可以打断正在执行的低优先级中断。

就好像在医院里,病危的病人会优先得到医生的救治。

通过合理设置中断优先级,可以确保关键任务能够及时得到处理。

四、中断编程的步骤要进行 STC15F2K60S2 单片机的中断编程,通常需要以下几个步骤:1、开启中断允许在单片机的特殊功能寄存器中,有相应的控制位来允许或禁止中断。

我们需要将这些控制位置为允许状态,才能使中断生效。

2、配置中断源根据我们使用的中断源,设置相应的触发方式、工作模式等参数。

单片机程序调试步骤(二)2024

单片机程序调试步骤(二)2024

单片机程序调试步骤(二)引言概述:在进行单片机程序开发时,调试是一个非常重要的环节。

在前文中我们已经介绍了单片机程序调试步骤的一部分,本文将进一步探讨单片机程序调试步骤的其他方面。

正文:一、程序调试前准备工作1. 确定调试目标:明确需要调试的程序功能和预期的效果。

2. 安装调试工具:选择适合的调试工具,如调试器、仿真器等,并进行正确的安装和配置。

3. 准备测试样本:准备一些测试样本,用于验证程序的正确性和稳定性。

二、程序调试工具的使用1. 设置断点:在关键代码行设置断点,以便在程序执行到该行时暂停,方便查看变量值和程序流程。

2. 单步执行:通过单步执行功能,逐行执行程序并观察程序的执行情况,发现潜在错误。

3. 观察变量值:在程序执行过程中,关注关键变量的数值变化,排查变量赋值错误和计算错误等问题。

4. 运行到断点:通过运行到断点功能,将程序执行到设定的断点处,以便跳过一些无需调试的代码部分。

5. 仿真功能:利用仿真功能模拟实际硬件环境,提高调试效率和安全性。

三、问题定位与解决1. 堆栈追踪:当程序执行过程中发生异常或错误时,通过堆栈追踪功能,定位错误出现的位置和原因。

2. 日志记录:在关键代码中添加日志记录功能,以便查看程序的执行过程和变量值,有助于问题的定位和解决。

3. 分模块调试:将程序分成多个模块,逐个模块进行调试,逐步缩小问题所在的范围。

4. 二分法调试:对于较大的程序,可以采用二分法调试,即将程序切分成两个部分,确定哪一部分出现了问题。

四、调试结果分析与修复1. 结果对比:将程序输出的结果与预期结果进行对比,找出有差异的地方。

2. 缺陷修复:根据调试结果和分析,对程序中的缺陷进行修复,并再次进行测试验证。

3. 优化改进:在修复缺陷的基础上,对程序进行优化改进,提升程序的性能和稳定性。

五、遇到的常见问题与解决方法1. 程序死机:可能是程序中出现了死循环或死锁等问题,需要通过调试工具的断点定位功能找到问题所在。

实验二 单片机定时器计数器编程

实验二  单片机定时器计数器编程

实验二单片机定时器/计数器编程一、实验目的1、掌握单片机定时器/计数器的工作方式;2、掌握单片机定时器/计数器的编程方法。

二、实验内容1、学习单片机定时器/计数器的工作方式、初始化以及应用等;2、利用单片机定时器/计数器编写程序驱动开发板上的LED灯按一定规律工作。

基本要求:利用定时器1控制LEDB闪烁,闪烁频率为2Hz。

提高要求:读懂教材定时器/计数器的应用实例4和5,在实验室开发板上采用分模块设计的方法编程实现以下两个任务之一:1、控制LEDB闪烁,2.5秒一个周期,亮0.5s,灭2s,周而复始。

2、将教材例5对P1.0和P1.1的控制,改为对LEDB和LEDG的控制,时序不变。

三、实验设备1、STC单片机开发板;2、PC机以及串口线。

四、实验分析及关键代码(1)利用定时器1控制LEDB闪烁,闪烁频率为2Hz。

实验分析:控制LEDB闪烁,频率为2Hz,即0.5s。

解决思路:定时器工作方式选0x01,计数器初值为(65536-50000),循环10次即为0.5s。

代码如下:#include<reg51.h>#define uchar unsigned char sbit A=P2^4;uchar i=0;void main (){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1){while(TF0){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){A=!A;i=0;}}}}(2)控制LEDB闪烁,2.5秒一个周期,亮0.5s,灭2s,周而复始。

解决思路:设置两个循环,计数器初值设为(65536-50000),亮灯循环10次,灭灯循环40次。

代码如下:#include<reg51.h>#define uchar unsigned charsbit A=P2^4;uchar i=0;void main (){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1){while(TF0){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){A=1;}if(i==50){A=0;i=0;}}}}五、实验总结对软件及计数器的操作及代码不太熟悉,多次查询课本及上网查找资料后懂得计数器工作方式及计数操作,其他问题迎刃而解。

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的GPIO口的编程,调试程序、调节电路来达到正确的显示效果。

最终按照要求实现了单片机控制数码管的计数器。

关键词:单片机、数码管、GPIO口、计数器一、实验介绍数码管是一种介于机械仪表和液晶显示器之间的电子显示器件,广泛应用于计时器、计数器、仪表等电子产品中。

本实验旨在通过单片机控制数码管的显示来加深对GPIO口的使用和调试程序的理解,同时了解数码管的原理。

本实验主要分为两部分:数码管显示基础实验和数码管控制开关实验。

通过这两部分的实验可以了解数码管的工作原理和单片机的基本控制方式。

二、实验原理2.1 数码管的基本原理数码管显示器将数字显示为一组符号,例如“0”到“9”。

表示不同数字的符号被编码成一个数字码。

七段数码管用一个七段数码字母来表示数字,如下表所示:| 数字 | a | b | c | d | e | f | g || ---- | - | - | - | - | - | - | - || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 || 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 || 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 || 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 || 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 || 6 | 0 | 0 | 1 | 1 | 1 | 1 | 1 || 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 || 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |通过控制数码管的七个LED灯的亮灭,可以实现不同符号显示。

单片机-02_CIP511

单片机-02_CIP511

A累加器
位7-0: ACC:累加器 该寄存器为算术操作用的累加器。
B 寄存器
位7-0: B寄存器 该寄存器为某些算术操作的第二累加器。
2.3 电源管理方式 CIP-51 有两种可软件编程的电源管理方式:空闲和 停机。 在空闲方式,CPU 停止运行,而外设和时钟处于活 动状态。 由于在空闲方式下时钟仍然运行,所以功耗与进入 空闲方式之前的系统时钟频率和处于活动状态的外 设数目有关。
2.2.3 通用寄存器 数据存储器的低32 字节,从地址0x00 到0x1F,可 以作为4 个通用寄存器区访问。每个区有8 个寄存 器,称为R0 - R7。在某一时刻只能选择一个寄存 器区。 程序状态字(PSW是一个特殊功能寄存器,字节地址 D0h)中的RS0(PSW.3)和RS1(PSW.4)位用 于选择当前的寄存器区(见图2.6 中关于PSW 的说 明)。这允许在进入子程序或中断服务程序时进行 快速现场切换。间接寻址方式使用R0 和R1 作为间 址寄存器。
关闭闪速存储器可以减小功耗,与进入空闲方式类 似。 关闭振荡器可以消耗更少的功率,但需要靠复位来 重新启动MCU。
电源控制寄存器(PCON特殊功能寄存器)用于控 制CIP-51 电源管理方式。
位7、位6、位4、位3:和串口0 串口1有关, 讲串口再详细讲述。 位5、位2:保留
位1: STOP:停机方式选择。 向该位写‘1’将使CIP-51 进入停机方式。该位读 出值总是为0。
2.2.6 特殊功能寄存器 从0x80 到0xFF 的直接寻址存储器空间为特 殊功能寄存器(SFR)。SFR 提供对CIP-51 的资源和外设的控制及CIP-51 与这些资源和 外设之间的数据交换。 CIP-51 具有标准8051 中的全部SFR,还增 加了一些用于配置和访问专有子系统的SFR。 这就允许在保证与MCS-51 指令集兼容的前提下增加新的功能。表2.1 列出了CIP-51 系统控制器中的全部SFR。

51单片机定时器模式2与波特率的应用

51单片机定时器模式2与波特率的应用

51单片机定时器模式2与波特率的应用单片机定时器模式2与波特率在通信领域有着广泛的应用。

定时器模式2是一种非常常见的定时器工作模式,可以精确地生成指定的时间间隔,而波特率则是通信中用来描述数据传输速率的参数。

在串口通信中,波特率是非常重要的一个参数。

波特率定义了单位时间内传输的比特数,通常以每秒钟传输的比特数(bps)来表示。

波特率越高,传输速度越快,但同时需要更高的传输能力和更高的抗干扰能力。

在通信中,发送端和接收端必须使用相同的波特率来进行通信,否则将无法正确地接收和发送数据。

单片机定时器模式2可以用来生成固定的时间间隔,通常用作定时器中断。

在串口通信中,定时器中断可以用来在发送和接收数据时定时产生中断,用来检测接收缓冲区中是否有数据到达或者发送缓冲区是否已经空闲,从而及时进行数据的接收或发送。

下面以串口通信为例,详细介绍单片机定时器模式2和波特率的应用。

首先,通过单片机定时器来设置波特率。

单片机的主时钟通常是一个固定的频率,比如12MHz。

通过定时器模式2,可以将主时钟的频率分频,从而得到一个与波特率相匹配的频率信号。

具体的分频系数计算公式为:分频系数=(2^SMOD)*(256-PRESCALER)其中,SMOD是特殊功能寄存器的位,如果设置为1,表示使用双倍波特率模式,否则为普通波特率模式;PRESCALER是定时器的预分频值,可以自由选择。

通过调整分频系数,可以得到与波特率相匹配的定时器溢出时间,从而实现波特率的设置。

例如,假设要设置波特率为9600bps,可以先计算得到分频系数,然后通过设置定时器的预分频值和计数器初值来实现。

接下来,在数据传输过程中,可以利用定时器模式2的中断功能来实现接收和发送的时机控制。

在接收数据时,可以使用定时器模式2的中断函数来检测接收缓冲区中是否有数据到达,如果有,则立即从缓冲区中读取数据。

在发送数据时,可以设置定时器的中断函数来检测发送缓冲区是否已经空闲,如果已经空闲,则将要发送的数据写入发送缓冲区。

(完整版)STC89C52单片机定时器2的使用

(完整版)STC89C52单片机定时器2的使用

52单片机有3个定时器,T2是一个16位自动重载的,像T0和T1的方式2一样,只不过它是16位重载,如果作为计数器或定时用,中断用的是5,就是interrupt 5,T2的引脚是P1.0口。

P1.0作为I/O 口用了以后T2计数是不行了,不过定时或是作为串口时钟还是可以的。

T2CON(T2的控制寄存器),字节地址0C8H:0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8HTF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RT2 各位的定义如下:TF2:定时/计数器2溢出标志,T2溢出时置位,并申请中断。

只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1),T2溢出时不对TF2置位。

EXF2:当EXEN2=1时,且T2EX引脚(P1.0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。

EXF2也是只能通过软件来清除的。

RCLK:串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器TCLK:串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器EXEN2:T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:禁止外部时钟触发T2;EXEN2=1:当T2未用作串行波特率发生器时,允许外部时钟触发T2,当T2EX引脚输入一个负跳变的时候,将引起T2的捕获或重装,并置位EXF2,申请中断。

TR2:T2的启动控制标志;TR2=0:停止T2;TR2=1:启动T2C/T2:T2的定时方式或计数方式选择位。

只能通过软件的置位或清除;C/T2=0:选择T2为定时器方式;C/T2=1:选择T2为计数器方式,下降沿触发。

CP/RT2:捕获/重装载标志,只能通过软件的置位或清除。

单片机2个按键互锁c语言程序,单片机按键点动互锁程序源程序 -回复

单片机2个按键互锁c语言程序,单片机按键点动互锁程序源程序 -回复

单片机2个按键互锁c语言程序,单片机按键点动互锁程序源程序-回复如何编写一个单片机按键点动互锁的C语言程序?单片机按键点动互锁是一种常见的应用场景,通过编写相关的C语言程序可以实现按键的互锁功能。

在这篇文章中,我将一步一步地回答如何编写这样一个程序。

首先,我们需要了解一些基本概念和原理。

单片机是一种集成电路,可以实现各种功能。

按键是一种输入设备,通常用于接收用户的输入信号。

点动是指按下按钮后立即释放按钮。

互锁是指两个或多个按键之间的相互作用,在某一个按键按下的同时,其他按键是不能按下的。

接下来,我们就可以开始编写程序了。

第一步,我们需要定义端口和引脚的初始状态。

在单片机中,端口是一组相邻的IO引脚,我们可以将某个引脚设为输入或输出。

在这个程序中,我们需要将两个按键连接到单片机的两个不同的引脚上,并将这两个引脚设为输入。

C#include <reg51.h>sbit button1 = P1^0;sbit button2 = P1^1;其中,sbit关键字用于定义一个特殊的数据类型,表示单片机的一个引脚。

第二步,我们需要实现一个延时函数,用于保证按键被稳定地读取。

由于单片机的执行速度非常快,如果没有延时函数,可能会导致按键抖动。

Cvoid delay(unsigned int k){unsigned int i, j;for(i = 0; i < k; i++)for(j = 0; j < 123; j++);}第三步,我们需要编写一个函数用于检测按键的状态。

在这个函数中,我们将使用一个while循环来检测按键是否被按下。

Cunsigned char button_pressed(){while(1){if(button1 == 0){delay(10); 延时10msif(button1 == 0){while(button1 == 0); 等待按键释放return 1; 返回按键1被按下的状态}}if(button2 == 0){delay(10); 延时10msif(button2 == 0){while(button2 == 0); 等待按键释放return 2; 返回按键2被按下的状态}}}}在这个函数中,我们首先检测按键1的状态,如果按键1被按下,延时一段时间后再次检测按键1的状态,如果按键1仍然被按下,则返回按键1被按下的状态。

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

8、已知程序执行前有A=01H,SP=42H,(41H)=FFH,(42H)=FFH。

下述程序执行后:POP DPHPOP DPLMOV DPTR,#3000HRL AMOV B,AMOVC A,@A+DPTRPUSH AMOV A,BINC AMOVC A,@A+DPTRPUSH ARETORG 3000HDB 10H,80H,30H,80H,50 H,80H请问:A= 80H ,SP= 42H,(41H)= 30H ,(42H)= 80H 。

9、在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的片选端提供信号。

10、在MCS-51中,PC和DPTR都用于提供地址,但PC是为了访问程序存储器提供地址,而DPTR是为访问数据存储器提供地址。

11、16KB RAM存储器的首地址若为3000H,则末地址为 6FFF H。

二.选择题(每题2分,共16分)1、8051与8751的区别是:A、内部数据存储但也数目的不同B、内部程序存储器的类型不同C、内部数据存储器的类型不同D、内部的寄存器的数目不同2、判断以下有关PC和DPTR的结论是否正确?A、DPTR是可以访问的,而PC不能访问。

对B、它们都是8位的存储器错C、它们都有加1的功能。

错D、DPTR可以分为两个8位的寄存器使用,但PC不能。

对3、PC的值是A、当前正在执行指令的前一条指令的地址B、当前正在执行指令的下一条指令的地址C、当前正在执行指令的地址D、控制器中指令寄存器的地址4、判断下列说法是否正确A、 8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。

错B、内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。

错C、程序计数器PC不能为用户编程时直接使用,因为它没有地址。

对5、下列说法错误的是:A、各中断发出的中断请求信号,都会标记在MCS -51系统的IE寄存器中。

B、各中断发出的中断请求信号,都会标记在MCS -51系统的TCON与SCON寄存器中。

C、各中断发出的中断请求信号,都会标记在MCS -51系统的IP寄存器中。

D、各中断发出的中断请求信号,都会标记在MCS -51系统的TMOD寄存器中。

6、在MCS-51中,需要外加电路实现中断撤除的是:A、电平方式的外部中断B、定时中断C、外部串行中断D、脉冲方式的外部中断7、判断下列的说法是否正确?A、特殊功能寄存器SCON,与定时器/计数器的控制无关。

B、特殊功能寄存器TMOD,与定时器/计数器的控制无关。

C、特殊功能寄存器IE,与定时器/计数器的控制无关。

D、特殊功能寄存器TCON,与定时器/计数器的控制无关。

8、判断下列说法是否正确?A、在8155H芯片中,决定端口和RAM单元编址的信号线是AD7-AD0和WR。

B、由于8155H不具有地址锁存功能,因此在与8031的接口电路中必须加地址锁存器。

C、8255A的B口可以设置成方式2。

D、8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上。

9、区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是:A、看其芯片的型号是ROM还是RAMB、看其离MCS-51芯片的远近C、看其位于地址范围的低端还是高段看其是与RD 信号连接还是与PSEN信号连接10、下列说法正确的是:A、同一级别的中断请求按时间的先后顺序响应。

B、同级中断不能嵌套。

C、低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。

D、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。

三.简答题(每题4分,共20分)1、片内RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么?2、如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-51单片机正在工作?3、若SP=60H,标号LABEL所在的地址为3456H。

LCALL指令的地址为2000H,执行指令如下:2000H LCALL LABEL后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL 直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?4、定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?5、常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式?四.计算与编写程序(共40分)4、根据硬件图计算ADC0809的8个模拟量输入通道的地址,并编写程序实现8个通道的模拟量循环采集,采集结构存放至片内RAM 40H~47H中。

(15分)一.填空题(每空1分,共20分)1、答:CPU、存储器、I/O口2、答:同步3、答:PC、PC4、答:累加器A,DPTR、PC5、答:1041H6、答:地址7、答:A的内容为 4BH 。

8、答:A= 80H ,SP= 42H ,(41H)= 30H ,(42H)= 80H ,PC= 8030H 。

9、答:片选。

10、答:程序、数据 11、答: 6FFF H。

二.选择题(每题2分,共16分)1、答:B2、答:对、对、对、对3、答:B4、答:错、错、对。

5、答:A、C、D6、答:A7、答:A对,B、C、D错8、答:错、错、错、错9、答:A、D对10、答:A、B、C对三.简答题(每题4分,共20分)1、片内RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么?答:工作寄存器区、位寻址区、数据缓冲区2、答: ALE引脚3、答:1)SP=SP+1=61H (61H)=PC的低字节=03H SP=SP+1=62H (62H)=PC的高字节=20H 2)PC=3456H 3)可以 4)2KB=2048 Byte4、答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。

定时时间与时钟频率和定时初值有关。

5、常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式?解:一.独立编址方式:独立编址方式就是I/O地址空间和存储器地址空间分开编址。

独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。

但是,却需要设置一套专门的读写I/O的指令和控制信号。

二.统一编址方式:这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。

统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。

MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。

四.计算与编写程序(共40分)4、根据硬件图计算ADC0809的8个模拟量输入通道的地址,并编写程序实现8个通道的模拟量循环采集,采集结构存放至片内RAM 40H~47H中。

(15分)解:根据电路连接图可计算出ADC0809的8个模拟量输入通道的地址为:7F00H~7F07H(5分)循环采集的程序设计如下:ORG 0000HAJMP MAINORG 0030HMAIN:MOV DPTR,#7F00HMOV R0,#40HMOV R7,#8LOOP:MOVX @DPTR, AJNB P3.2,$MOVX A,@DPTRMOV @R0,A INC DPTRINC R0DJNZ R7,LOOPMOV DPTR,#7F00HMOV R0,#40HMOV R7,#8AJMP LOOPEND (10分)单片机原理复习资料一、单选题1、十进制数126其对应的十六进制可表示为()A、8 FB、8 EC、F ED、7 E2、十进制数89.75其对应的二进制可表示为()A、10001001.01110101B、1001001.10C、1011001.11D、10011000.113、二进制数110010010对应的十六进制数可表示为() A、192H B、C90H C、1A2H D、CA0H4、二进制数110110110对应的十六进制数可表示为() A、1D3H B、1B6H C、DB0H D、666H5、一3的补码是() A、10000011 B、11111100 &n bsp; C、11111110 D、111111016、下列表达式错误的是() A、X补+Y补=〔X+Y〕补 B、X=〔X补〕补 C、X= X D、X•Y+X•Y =X+Y7、CPU主要的组成部部分为()A、运算器、控制器B、加法器、寄存器C、运算器、寄存器D、运算器、指令译码器8、计算机的主要组成部件为()A、CPU,内存,I/O□B、CPU,键盘,显示器C、主机,外部设备D、以上都是9、INTEL 8051 CPU是()位的单片机A、16B、4C、8D、准1610、对于INTEL 8031来说,EA脚总是()A、接地B、接电源C、悬空D、不用11、在计算机中“A”是用()来表示的A、BCD码B、二一一十进制编码C、余三码 &nb sp;D、ASC I I码12、在单片机中,通常将一些中间计算结果放在()中 A、累加器 B、控制器 C、程序存储器 D、数据存储器13、程序计数器PC用来()A、存放指令B、存放正在执行的指令地址C、存放下一条的指令地址D、存放上一条的指令地址14、数据指针DPDR在()中A、CPU控制器B、CPU运算器C、外部程序存储器D、外部数据存储器15、指令和程序是以()形式存放在程序存储器中A、源程序B、汇编程序C、二进制编码D、BCD码16、单片机应用程序一般存放在()A、RAMB、ROMC、寄存器D、CPU17、单片机上电后或复位后,工作寄存器R0是在() A、0区00H单元 B、0区01H单元 C、0区09H单元 D、SFR18、进位标志CY在()中A、累加器B、算逻运算部件ALU &n bsp;C、程序状态字寄存器PSWD、DPOR19、单片机8051的XTAL1和XTAL2引脚是()引脚 A、外接定时器 B、外接串行口 C、外接中断 D、外接晶振20、8031复位后,PC与SP的值为()A、0000H,00HB、0000H,07HC、0003H,07H寄存器D、0800H,00H21、单片机的堆栈指针SP始终是()A、指示堆栈底B、指示堆栈顶C、指示堆栈地址D、指示堆栈长度22、P0、P1口作输入用途之前必须()A、相应端口先置1B、相应端口先置0C、外接高电平D、外接上拉电阻23、一个EPROM的地址有A0----A11引脚,它的容量为() A、2KB B、4KB C、11KB D、12KB24、8031单片机中既可位寻址又可字节寻址的单元是() A、20H B、30H C、00H D、70H25、8031单片机中片内RAM共有()字节A、128B、256C、4KD、64K26、执行指令MOVX A,﹫DPTR时,WR.RD脚的电平为() A、WR高电平,RD低电平 B、W R低电平,RD高电平 C、WR高电平,RD高电平 D、WR低电平,RD低电平27、INTEL 8031的PO□,当使用外部存储器时它是一个() A、传输高8位地址□ B、传输低8位地址□ C、传输低8位数据□ D、传输低8位地址/数据总线□28、当标志寄存器P S W的R S O和R S I分别为1和0时,系统选用的工作寄存器组为()A、组0B、组1C、组2D、组329、下列指令中错误的是() A、MOV A,R4 B、MOV 20H,R4 C 、MOV R4,R3 D、MO V﹫R4,R330、下列指令中不影响标志位CY的指令有()A、ADD A,20HB、CLR C 、RRC A D、INC A31、LJMP跳转空间最大可达到()A、2KBB、256B C 、128B D、64KB32、计算机内部数据之所以用二进制形式表示,主要是()A、为了编程方便B、由于受器件的物理性能限制C 、为了通用性 D、为了提高运算速度33、8051单片机共有()中断源A、4B、5 C 、6 D、734、8051单片机共有()个中断优先级A、2B、3 C 、4 D、535、外部中断源I E 1(外部中断1)的向量地址为()A、0003HB、000BH&n bsp; C 、0013H D、002BH36、累加器A的位地址为()A、E 7 HB、F 7 H C 、D 7 H D、87H37、寄存器B的位地址为()A、E 7 HB、F 7 H C 、D 7 H D、87H38、8051的内部RAM中,可以进行位寻址的地址空间为()A、00H∽2FHB、20H∽2FH C 、00H∽FFH D、20H∽FFH39、设累加器A的内容为0 C 9 H,寄存器R2的内容为54H,C Y=1,执行指令S U B B A, R2 后结果为() A、(A)=74H B、(R2)=74H C 、(A)=75H D、(R2)=75H40、设(A)=0 C 3 H,(R0)=0 A A H,执行指令A N L A,R0后,结果() A、(A)=82H &nbs p; B、(A)=6CH C 、(R0)=82 D、(R0)=6CH 41、8051的程序计数器P C为16位计数器,其寻址范围是() A、8K B、16 K C 、32 K D、64 K 42、提高单片机的晶振频率,则机器周期()A、不变B、变长 C 、变短 D、不定43、在堆栈操作中,当进栈数据全部弹出后,这时S P应指向() A、栈底单元 B、7FH单元 C 、栈底单元地址加1 D、栈底单元地址减144、8051单片机中,唯一一个用户不能直接使用的寄存器是()A、P S WB、D P T R C 、P C D、B45、8051单片机中,唯一一个用户可使用的16位寄存器是()A、P S WB、D P T R C 、A C C &n bsp; D、P C46、执行如下三条指令后,30H单元的内容是()M O V R 1,#30H M O V 40H,#0 E H M O V ﹫R 1,40H A、40H B、30H C 、0 E H D、F F H47、有如下程序段: M O V R 0,#30H S E T B CC L R A AD D C A,#0 0H M O V ﹫R 0,A 执行结果是() A、(30H)=0 0H B、(30H)=0 1HC 、(00H)=0 0H D、(00H)=0 1H48、从地址2132H开始有一条绝对转移指令A J M P addr11,指令可能实现的转移范围是() A、2000H∽27FFH B、2132H∽2832H C 、2100H∽28FFHD、2000H∽3FFFH49、中断是一种() A、资源共享技术 B、数据转换技术 C 、数据共享技术 D、并行处理技术50、执行M O V I E,#81H指令的意义是:()A、屏蔽中断源B、开放外部中断源0 C 、开放外部中断源1 D、开放外部中断源0和1二、多选题1、所谓系统总线,指的是() A、数据总线 B、地址总线 C、内部总线 D、外部总线 E、控制总线2、系统内存包括()A、硬盘B、软盘C、RAMD、ROME、光盘3、数123可能是() A、二进制数 B、八进制数C、十六进制数D、四进制数E、十进制数4、8051单片机寻地方式有() A、寄存器间接寻址方式 B、立即寻址方式 C、直接寻址方式 D、变址间接寻址方式 E、位寻址方式8、如下程序段: C L R C M O V A,#BCH A D DC A,#65H 则其结果为() A、(A)=21H B、CY=1 C 、AC=1 D、CY=0 E、AC=09、8051CPUD在访问外部存储器时,地址的输出是() A、P2口输出高8位地址 B、P1口输出高8位地址 C、P0口输出低8位地址 D、P1口输出低8位地址 E、P2口输出低8位地址10、8051CPU具有() A、4K字节的程序存储器 B、128字节的数据存储器 C、32线并行I/0□ D、全双工串行I/0□一个 E、2个16位定时器/计数器11、对于JBC bit,rel指令,下列说法正确的是() A.bit位状态为1时转移 B.bit位状态为0时转移 C.bit位状态为1时不转移 D.bit位状态为0时不转移 E.转移时,同时对该位清零12、对于DIV AB指令的执行结果,下列说法正确的是()A.商在A中 B.余数在B中 C.商在B中 D.余数在A中 E.如果除数为0,则溢出标志位置1。

相关文档
最新文档