单片机例题
单片机考试题目及答案

单片机考试题目及答案一、选择题(每题2分,共20分)1. 单片机是一种集成了CPU、存储器、I/O接口等功能的微型计算机,其英文缩写是:A. CPUB. RAMC. ROMD. MCU答案:D2. 下列哪个是51系列单片机的特有寄存器?A. ACCB. PSWC. SPD. PC答案:B3. 在8051单片机中,以下哪个指令是用于将累加器A的内容与外部数据存储器中的数据进行交换?A. MOV A, @DPTRB. MOVX A, @DPTRC. MOV DPTR, #20HD. MOV A, #20H答案:B4. 8051单片机的定时器/计数器0和1,其定时器模式下的工作方式有:A. 1种B. 2种C. 3种D. 4种答案:C5. 下列哪个中断源在8051单片机中具有最高优先级?A. 定时器0中断B. 外部中断0C. 定时器1中断D. 串行中断答案:B二、填空题(每空2分,共20分)1. 单片机的最小系统通常包括________、________和________。
答案:时钟电路、复位电路、电源电路2. 8051单片机的P0口是________位的双向I/O口。
答案:83. 8051单片机的中断向量地址是固定的,其中外部中断0的中断向量地址是________。
答案:03H4. 8051单片机的定时器0和定时器1都可以被配置为________模式,用于计数外部事件。
答案:计数器5. 在8051单片机中,使用MOV指令可以实现寄存器之间的数据传输,例如MOV A, R0,表示将________的数据传送到________。
答案:R0寄存器;累加器A三、简答题(每题10分,共30分)1. 请简述单片机的中断系统的作用及其重要性。
答案:单片机的中断系统允许单片机在执行程序的过程中,对外部事件或内部条件做出快速响应。
中断系统的重要性在于它能够实现多任务处理,提高系统的实时性和效率。
2. 描述8051单片机的串行通信方式及其特点。
单片机例题

1.P3.0按键控制P1.0灯亮灭2.按键1数码管显示1,按键2数码管显示2,按键3数码管显示3,按键4数码管显示43.用两位数码管显示一个十进制数,变化范围为00-60,开始时显示00,按键S1每按下一次,数值加1;按键S2每按下一次,数值减1;按键S3每按下一次,数值归零。
4.矩阵键盘,数码管显示各个序号5.P3.0控制灯全亮,P3.1全灭。
中断口0控制流水灯向下,中断口1控制流水灯向上6.流水灯7.数码管显示1238.数码管三位分别从0显示到F9.数码管从0显示到999910.中断控制LED灯前四盏灭和后四盏亮11.中断口1控制l ed灯闪烁12.定时器0延时1S控制第一盏灯闪烁13.中断口0控制数码管从0到60显示14.按键KEY1进行调分、调时状态切换,进入调整状态时,时钟停止走动,这时按下按键KEY2可实现分、时的调整。
按键使用外部中断来产生。
15.串口初始化16.中断,定时总结1.P3.0按键控制P1.0灯亮灭#includ e<reg51.h>#d efine LED P1sbit Key=P3^0;//按键定义void Delayxms(unsigned int xms){ unsigned int i,j;for(i=xms;i>0;i--){for(j=110;j>0;j--);}}void main(){Key=1;whil e(1){if(Key==0){Delayxms(10);if(!Key){LED=~LED;}}}}2.按键1数码管显示1,按键2数码管显示2,按键3数码管显示3,按键4数码管显示4#includ e<reg51.h>#d efine LED P1unsigned char cod e led[]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; sbit Key1=P3^0;sbit Key2=P3^1;sbit Key3=P3^2;sbit Key4=P3^3;void display(unsigned char num){P2=0xf0;P0=l ed[num];}void Delayxms(unsigned int xms){unsigned int i,j;for(i=xms;i<0;i--){for(j=110;j>0;j--);}}unsigned char Key_scan(){unsigned char KeyValue;P3 |=0xf0;if(Key1==0){Delayxms(10);if(!Key1){KeyValue=1;whil e(!Key1);}}if(Key2==0){Delayxms(10);if(!Key2){KeyValue=2;whil e(!Key2);}}if(Key3==0){Delayxms(10);if(!Key3){KeyValue=3;whil e(!Key3);}}if(Key4==0){Delayxms(10);if(!Key4){KeyValue=4;whil e(!Key4);}}return KeyValue;}void main(){whil e(1){display(Key_scan());}}3.用两位数码管显示一个十进制数,变化范围为00-60,开始时显示00,按键S1每按下一次,数值加1;按键S2每按下一次,数值减1;按键S3每按下一次,数值归零。
单片机 11道编程例题及答案

1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕。
试编程实现。
ORG 0030H MOV R0,#inbuf MOV R1,#outbuf MOV R4,#10HLOOP:MOV A,@R0 ; 从内部RAM取数 CJNE A,#0DH,LL ;是否为回车符CRSJMP STOP ;是转停止传送 LL: MOVX @R1,A ;不是则传送到外部RAMINC R0 INC R1 DJNZ R4,LL;沒传送完则循环 STOP: SJMP $2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。
编程实现在表中找出最小数。
(3AH存放在运行程序时的最小的数)ORG 0030HMOV R0,#listMOV A,@R0 ;取第一个正数LOOP: INC R0 ;指向下一个正数MOV 3AH,@R0CJNE A,3AH,CHK ;前一个数与后一个数比较CHK: JC LOOP1 ;前一个数小,则转MOV A,@R0 ;前一个数大,取后一个数LOOP1: XCH A,3AHCJNE A,#0FFH,LOOPXCH A,3AH ;取最小数MOV 3BH,A SJMP $3.内部RAM的X,Y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。
若X为正奇数,Z =X+Y;若X为正偶数,Z =X∨Y;若X为负奇数,Z =X∧Y;若X为负偶数,Z =X⊕Y。
分析:负数:第7位为1,正数:第7位为0 奇数:第0位为1,偶数:第0位为0 ORG 0000H MOV A,20H CLR C RL A JC FS ;移到负数处处理RR A RR A ;第0位移到C 再判定一下是不是1 JC ZJS ;到正奇数处MOV A,20H ORL A,21H MOV 22H,A SJMP OKZJS: MOV A,20H ADD A,21H MOV 22H,A SJMP OKFS: MOV A,20H CLR C RR A JC FJS ;第0位是1,移到正奇数处理MOV A,20H XRL A,21H MOV 22H,A SJMP OKFJS: MOV A,20H ANL A,21H MOV 22H,A OK: END4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。
(完整版)单片机试题及其答案

一填空题1. A T89S51单片机芯片共有 40 个引脚,MCS-51系列单片机为 8 位单片机。
2. AT89S51单片机有 2 级优先级中断。
3. AT89S51内部数据存储器的地址范围是 00H-7FH ,位地址空间的字节地址范围是20H-2FH ,对应的位地址范围是 00H-7FH ,外部数据存储器的最大可扩展容量是64k字节。
4. 单片机也可称为微控制器或嵌入式控制器。
5.当MCS-51执行MOVC A,@A+PC指令时,伴随着 PSEN 控制信号有效。
6. 当单片机复位时PSW= 00 H,当前的工作寄存器区是0区,R4所对应的存储单元地址为 04 H。
7. MCS-51系列单片机指令系统的寻址方式有寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址加变址、位寻址。
(相对寻址也可)8. 51系列单片机的典型芯片分别为AT89S51 、 8031 、 AT89C51 。
9. A T89S51的 p3 口为双功能口。
10. 由A T89S51组成的单片机系统在工作时EA引脚应该接地。
二选择题1.如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHD A, @ R1;结果(A)=(A)A.42HB.20HC.12HD.15H2. AT89S51复位后,PC与SP的值为分别为(B)A.0000H、00HB.0000H、07HC.FFFFH、00HD.0000H、FFH3. 堆栈数据的进出原则是(B)A.先进先出 B.先进后出 C.后进后出 D.进入不出4. 已知:R0=28H (28H)=46H,顺序执行下面三条指令后MOV A,#32H; MOV A,45H ; MOV A,@R0执行结果A的内容为( A )A.46HB.28HC.45HD.32H5. AT89S51单片机中,唯一一个用户不能直接使用的寄存器是(C).A. PSWB.DPTR C . PC D. B三判断题1.AT89S51单片机可执行指令:MOV 35H,@R3。
单片机原理例题和习题

例 4.1(顺序结构)被加数存于片内RAM的32H、31H、30H 单元,加数存于片内RAM的35H、34H、33H单元相加之和存于片内RAM的32H、31H、30H单元,进位存于片内RAM 的00H单元。
程序如下:START: MOV R0, #30HMOV R1, #33HMOV A, @R0ADD A, @R1MOV @R0, AINC R0INC R1MOV A, @R0ADDC A, @R1MOV @R0, AINC R0INC R1MOV A, @R0ADDC A, @R1MOV @R0, ACLR AADDC A, #00HMOV 00H, ARET例 4.2(分支结构)假定在片外RAM的2000H、2001H、2002H 这3个连续单元中,2000H和2001H单元存放着两个无符号数。
要求找出两个无符号数中较大者,并存放于2002H单元。
程序如下:ORG 0100HSTART: CLR CMOV DPTR, #2000HMOVX A, @DPTRMOV R2, AINC DPTRMOVX A, @DPTRSUBB A, R2JNC LOOP1XCH A, R2LOOP0: INC DPTRMOVX @DPTR, ARETLOOP1: MOVX A, @DPTRSJMP LOOP0例4.5两个多字节数的减法。
设有2个n字节无符号数,分别存放在片内的ram单元中,低字节在前,高字节在后。
CLR CMOV R2,#NLOOP:MOV A,@R0SUBB A,@R1MOV @R0,AINC R0INC R1DJNZ R2,LOOPRET 例4.3(循环结构)将片内RAM的20H单元为起始地址的数据串(最长为32 Bytes),传送到外部RAM的2000H单元为首地址的区域,直到发现“$”字符的ASCⅡ码为止。
程序如下:START: MOV R0, #20HMOV DPTR, #2000HMOV R7, #32LOOP0: MOV A, @R0XRL A, #24HJZ LOOP1MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R7, LOOP0LOOP1: RET例4.7假设被乘数放在r6和r7中,乘数放在r4和r5中,求乘积放于40H~43H单元中,低字节在前。
单片机考试题及答案

单片机考试题及答案一、选择题(每题2分,共20分)1. 单片机的英文缩写是:A. CPUB. MCUC. ROMD. RAM答案:B2. 下列哪个不是单片机的组成部分?A. 中央处理器B. 存储器C. 输入/输出接口D. 显示器答案:D3. 8051单片机的内部RAM是:A. 128字节B. 256字节C. 512字节D. 1024字节答案:B4. 单片机的程序存储器通常使用的是:A. RAMB. ROMC. EPROMD. EEPROM答案:C5. 单片机的I/O口可以配置为:A. 只读B. 只写C. 推挽输出D. 开漏输出答案:D6. 下列哪个不是单片机的中断源?A. 定时器溢出B. 外部中断C. 串行通信D. 显示器答案:D7. 8051单片机的定时器/计数器的计数范围是:A. 0到255B. 0到511C. 0到1023D. 0到2047答案:A8. 单片机的看门狗定时器的主要作用是:A. 计时B. 计数C. 监视程序运行D. 控制I/O口答案:C9. 下列哪个不是单片机的常用编程语言?A. C语言B. 汇编语言C. Java语言D. C++语言答案:C10. 单片机的I/O口的模式设置通常包括:A. 推挽输出B. 开漏输出C. 上拉输入D. 以上都是答案:D二、填空题(每题2分,共20分)1. 单片机的CPU主要由______、______和______组成。
答案:算术逻辑单元、控制单元、寄存器组2. 单片机的______存储器用于存储程序代码。
答案:程序3. 8051单片机的定时器/计数器有______个。
答案:24. 单片机的中断优先级可以通过______寄存器来设置。
答案:IP5. 单片机的______模式可以减少功耗。
答案:睡眠6. 单片机的______接口允许单片机与外部设备进行数据交换。
答案:I/O7. 单片机的______寄存器用于存储程序计数器的值。
答案:PC8. 单片机的______功能可以防止程序死循环。
单片机考试试题及答案

单片机考试试题及答案一、选择题(每题2分,共20分)1. 单片机中,CPU的主要功能是()。
A. 存储数据B. 处理数据C. 传输数据D. 显示数据答案:B2. 在8051单片机中,下列哪个寄存器是用于存储程序计数器的地址?A. SPB. PCC. DPTRD. ACC答案:B3. 下列哪项不是单片机的I/O接口?A. 定时器/计数器B. 串行通信接口C. 模数转换器D. 键盘答案:C4. 单片机的中断系统通常由哪两部分组成?A. 中断源和中断服务程序B. 中断向量表和中断服务程序C. 中断向量表和中断源D. 中断源和中断向量表答案:B5. 在8051单片机中,下列哪个指令用于将累加器的内容传送到外部数据存储器?A. MOVXB. MOVC. MOVCD. MUL答案:A二、填空题(每题2分,共20分)1. 单片机的______是单片机的核心部件,负责执行程序。
答案:CPU2. 8051单片机的定时器/计数器共有______个。
答案:23. 在8051单片机中,______指令用于将内部RAM的某个单元的内容传送到累加器。
答案:MOV4. 单片机的______接口用于实现单片机与外部设备的通信。
答案:串行通信5. 单片机的______功能允许它在执行当前任务的同时响应外部事件。
答案:中断三、简答题(每题10分,共30分)1. 请简述单片机的中断优先级是如何工作的?答案:单片机的中断优先级是指在多个中断请求同时发生时,单片机根据中断源的重要性来决定先响应哪一个中断请求。
通常,中断优先级由中断向量表中的地址顺序决定,优先级高的中断源对应的中断向量地址在表中靠前。
2. 描述单片机的I/O接口的作用。
答案:单片机的I/O接口是单片机与外部设备进行数据交换的通道。
它允许单片机接收外部设备的数据输入,并将处理后的数据输出到外部设备。
3. 简述单片机的定时器/计数器的作用。
答案:单片机的定时器/计数器用于提供精确的时间控制和事件计数。
单片机课堂例题

D6
D5
D4
D3
D2
D1
D0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
T1控制
TMOD=10H
T0控制
中断方式:
ORG 0000H
LJMP MAIN
ORG 001BH
AJMP LOOP
MAIN: MOV TMOD,#10H
MOV TH1,#0FFH
MOV TL1,#083H
SETB EA
SETB ET1
sbit K3=P1^6;
code uchar
seg7code[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90};
code uchar seg7bit[6]={0x01,0x02,0x04,0x08,0x10,0x20};
main()
{
KEY3接P1.6。KEY0按下个位显示“1”,KEY1按下
十位显示“2”, KEY2按下百位显示“3” KEY3按
下千位显示“4”
C4
C1
C2
30PF
30PF
X1
R14
R15
R16
R17
R18
R19
R20
R21
10k10k10k10k10k10k10k10k
U1
10uF
19
XTAL1
CRYSTAL
VREF--标准电压, DAC0832:-10V~+10V
• 分析:
DELAY: MOV
• 1VDx=51;2VDx=102
R7,#N
上升段:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定时/计数器应用1
本题要求:AT89C51单片机扩展16KB外部程序存储器,目代码存放于外部存储器中,P1.0口接一个发光二极管,编写程序,控制发光二极管闪烁,时间间隔1s,采用AT89C51内部定时器计时。
基础知识:关于内部计数器的编程,主要是定时常数的设置和有关控制寄存器的设置。
内部计数器在单片机中主要有定时器和计数器两个功能。
本题目使用的是定时器,定时1s。
CPU运行定时中断方式,实现每1s输出状态发生一次反转,即发光管每隔1s亮一次。
定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。
TMOD 用于设置定时器/计数器的工作方式0~3,并确定用于定时还是计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
内部计数器用作定时器时,是对机器周期计数。
每个机器周期的长度是12个振荡器振荡周期。
本题中单片机晶振采用12MHz,定时/计数器工作于方式2(8位自动重装方式)定时器,定时器100微妙中断一次,所以定时常数的设置可按以下方法计算:
机器周期=12/12MHz=1μs
(256−定时常数)×1μs=100μs
定时常数=156。
然后对100微妙中断次数计数10000次,就是1s。
在本题的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完成之后再打开相应的中断。
在Proteus ISIS编辑环境中按表1所列的元件清单添加元件,并在Proteus ISIS 的编辑区域中按图1所示的原理图连接硬件电路。
表1 元件清单
元件名称所属类所属子类
AT89C51 Microprocessor ICs 8051 Family
CAP Capacitors Generic
CAP-POL Capacitors Generic
CRYSTAL Miscellaneous
RES Resistors Generic
BUTTON Switches & Relays Switches
LED-YELLOW Optoelectronics LEDs
NOT Simulator Primitives Gates
图1 电路原理图
1、程序流程
主程序
定时器中断服务程序
2、源程序
定时/计数器应用2
本题要求:用AT89C51单片机的定时/计数器T0产生2s的定时时间,每当2s定时到来,更换指示灯闪亮,每个指示灯闪亮的时间为0.2s。
即,开始D1指示灯闪亮0.2s,当2s定时到来之后,D2开始闪亮0.2s,如此循环,0.2s的闪亮时间也由定时/计数器T0来完成。
扩展32KB外部程序存储器,目代码存放于外部存储器中。
基础知识:AT89C51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。
只要通过设置特殊功能寄存器TMOD,即可完成。
定时/计数器的启动时间也是通过软件设定TCON寄存器来完成的。
本题目中选择16位定时工作方式,对于T0来说,最大定时65536μs,即65.536ms,无法达到所需的2s定时,须通过软件来处理这个问题。
若取T0的最大定时为50ms,即要定时1s需经过40次的50ms的定时。
对于这40次可以采用软件方法来统计。
因此,设定TMOD=00000001B,即TMOD=01H。
要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算
⁄
TH0=(2 −50000)256
TL0=(2 −50000) MOD 256
定时2s,采用16位定时50ms,共定时40次才可达到2s,每50ms产生一次中断,定时的40次数在中断服务程序中完成,同样,对于0.2s的定时,需要4次中断才可达到0.2s。
由于每次2s定时完成时,D1~D4要交替闪亮。
采用ID 号来识别,当ID=0时,D1闪亮;当ID=1时,D2在闪亮;当ID=2时,D3闪亮;当ID=3时,D4闪亮。
在Proteus ISIS编辑环境中按表1所列的元件清单添加元件,并在Proteus ISIS 的编辑区域中按图1所示的原理图连接硬件电路。
表1 元件清单
元件名称所属类所属子类
AT89C51 Microprocessor ICs 8051 Family
CAP Capacitors Generic
CAP-ELEC Capacitors Generic
CRYSTAL Miscellaneous
RES Resistors Generic LED-YELLOW Optoelectronics LEDs
图1 电路原理图
1、程序流程
2、源程序
定时/计数器应用3
本题要求:用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。
扩展32KB外部程序存储器,目代码存放于外部存储器中。
基础知识:AT89C51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。
只要通过设置特殊功能寄存器TMOD,即可完成。
定时/计数器的启动时间也是通过软件设定TCON寄存器来完成的。
本题目中选择16位定时工作方式,对于T0来说,最大定时65536μs,即65.536ms,无法达到所需的1s定时,须通过软件来处理这个问题。
若取T0的最大定时为50ms,即要定时1s需经过20次的50ms的定时。
对于这20次可以采用软件方法来统计。
因此,设定TMOD=00000001B,即TMOD=01H。
要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算
⁄
TH0=(2 −50000)256
TL0=(2 −50000) MOD 256
一、硬件设计
在Proteus ISIS编辑环境中按表3所列的元件清单添加元件,并在Proteus ISIS 的编辑区域中按图3所示的原理图连接硬件电路。
表3 元件清单
元件名称所属类所属子类
AT89C51 Microprocessor ICs 8051 Family
CAP Capacitors Generic
CAP-ELEC Capacitors Generic
CRYSTAL Miscellaneous
RES Resistors Generic 7SEG-COM-CAT-GRN Optoelectronics 7-Segment Displays PULLUP Modelling Primitives Digital [Miscellaneous]
图3 电路原理图
二、程序设计
1、程序流程
2、源程序
PWM输出控制
本题要求:用电位器调节AT89C51的PWM输出占空比,将A/D转换后的数据作为延时常数。
当电位器阻值发生变化时,ADC0808输出的值发生相应变化,进而调节单片机输出的PWM占空比。
基础知识:PWM是单片机上常用的模拟量输出方法,通过外接的转换电路,可以将脉冲的占空比变成电压。
程序中通过调整占空比来调节输出模拟电压。
占空比是指脉冲中高电平与低电平的宽度比。
一、硬件设计
在Proteus ISIS编辑环境,按表1所列的元件清单添加元件。
按原理图连接硬件电路(包括晶振和复位电路)
表1 元件清单
元件名称所属类所属子类
AT89C51 Microprocessor ICs 8051 Family
CAP Capacitors Generic
CAP-ELEC Capacitors Generic
CRYSTAL Miscellaneous —
RES Resistors Generic
POT-HG Resistors Variable
ADC0808 Data Converters A/D Converters
二、程序设计 1、程序流程
2、源程序
1、单片机概述
1.1 8051单片机简介
1.2 8051引脚介绍
1.3 8051单片机定时/计数器
2、硬件设计
2.1 8051单片机振荡电路2.2 8051单片机复位电路
2.3 “题目要求的电路设计”
3、软件设计
3.1 程序流程图
3.2 源程序
4、设计结果
4.1 电路原理图
4.2 程序运行结果图
参考文献。