单片机上机题目
单片机上机题

《单片机应用技术》期末答辩试题(上机题)1.以已完成的电路图和部分完成的软件程序为基础,按以下要求设计流水彩灯程序。
(不得改动电路及程序已有内容)要求:(1)两种流水方式:一种从左至右,一种从右至左。
(2)彩灯流水方向为从左至右时:D1→D1D2→D2D3→D3D4→D4D5→D5D6→D6D7→D7D8→D8。
(3)彩灯流水方向为从右至左时:D8→D7D8→D6D7→D5D6→D4D5→D3D4→D2D3→D1D2→D1。
(4)彩灯的流水方向由开关控制:每按一次开关,流水方向切换一次。
(5)一次循环的时间大约为2S。
2.外部晶振为12MHz,利用定时中断的方法,在P2.1端口输出频率为25Hz、占空比为3/4的矩形波,同时在P2.2端口输出频率为125Hz、占空比为1/8的矩形波。
要求:完成软、硬件设计。
3.利用串口发送数据的方法,在TXD口产生频率为640Hz、占空比为1/2的矩形波。
要求:完成软、硬件设计。
4.以已完成的电路图和部分完成的软件程序为基础,按以下要求设计秒表程序。
(不得改动电路及程序已有内容)要求:(1)计时及显示范围为11.1S~22.2S;两个控制开关。
(2)初始状态显示11.1,不计时;(3)K1开关可以启动和暂停计时;(4)K2开关在任意时刻都可以将显示值复位至初始值,且不改变计时状态。
(5)当计时到最大值22.2S时,停止计时并且显示最大值。
5.以已完成的电路图和部分完成的软件程序为基础,按以下要求设计数字温度计程序。
(不得改动电路及程序已有内容)要求:(1)温度测量范围:0~20.0度(2)温度测量精度:0.5度(3)液晶屏第一行显示温度测量范围;第二行显示温度值;(4)温度小于0度时,显示“TEM<0”;温度大于20度时,显示“WENDU>20”。
1。
单片机上机操作考试题部分答案

TH0=0x3c;
TL0=0xb0;
if(++T_count==10)
{
P0=tab[i];
i=(i+1)%5;
T_count=0;
}
}
void main()
{
TMOD=1;
TH0=0x3c;
TL0=0xb0;
EA=1;
TR0=1;
ET0=1;
P0=tab[0];6个数码管上分别显示自己学号的后六位数字。
#include<>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0xbf,0x86,0xed};
uchar T_count=0;
uchar i=1;
void intoProc() interrupt 1
{
#include<>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0xf6,0xf9,0xb8,0xb8,0xbf};
uchar T_count=0;
uchar i=1;
void t0Proc() interrupt 1
{
case 0:
if(++T_count==10)
{
P1=~tab[i];
i=(i+1)%3;
T_count=0;
State=1;
}
break;
case 1:
if(++T_count==20)
单片机考试题目及答案

单片机考试题目及答案一、选择题(每题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单片机的串行通信方式及其特点。
单片机上机试题

《单片机应用技术》上机试题题目一:用外中断0控制P1口8位LED循环点亮,即按下一次按键,点亮一个灯,再按下按键左移一位点亮,如此循环。
设计并仿真出结果。
题目二:自行设计出一组数据,并让P2口的8位LED按照设计的这组数据顺序进行花样点亮,间隔0.2秒,仿真出结果。
题目三:自行设计一个按键上具有三个功能,即第一次按下按键时,第一个灯点亮;第二次按下按键,第二个灯点亮;第三次按下按键,第三个灯点亮;第四次按下按键,又是第一个灯点亮,如此循环,仿真出结果。
题目四:用P2口作输出口,接一位LED数码管,编写程序,使数码管循环显示0~9这十个数,并用定时器T0实现数码管显示间隔0.5秒,设计并仿真出结果。
题目五:用P2口作输出口,接一个8位的数码管排,采用动态显示的方法,编写程序,是这个数码管排同时显示0~7这八个数,设计并仿真出结果。
题目六:用单片机U1通过串行口TXD端将一段流水灯控制码以串行口工作方式一发送至单片机U2的RXD,U2再利用该段控制码流水点亮其P1口上的8位LED。
设计并编写程序,其中发送程序已知,根据发送程序编写出接收程序,仿真出结果。
数据发送程序:#include<reg51.h> //包含单片机寄存器的头文件Unsigned char codeTab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码,该数组被定义为全局变量/*****************************************************函数功能:向PC发送一个字节数据***************************************************/void Send(unsigned char dat){SBUF=dat;while(TI==0);TI=0;}/************************************************************** 函数功能:延时约150ms**************************************************************/ void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*****************************************************函数功能:主函数***************************************************/void main(void){unsigned char i;TMOD=0x20; //TMOD=0010 0000B,定时器T1工作于方式2SCON=0x40; //SCON=0100 0000B,串口工作方式1PCON=0x00; //PCON=0000 0000B,波特率9600TH1=0xfd; //根据规定给定时器T1赋初值TL1=0xfd; //根据规定给定时器T1赋初值TR1=1; //启动定时器T1while(1){for(i=0;i<8;i++) //模拟检测数据{Send(Tab[i]); //发送数据idelay(); //每150ms发送一次检测数据}}}题目7数码管显示4*4键盘矩阵按键,编程实现数码管显示按键的键值0~F。
单片机考试题目及答案

单片机考试题目及答案考试题目一:1. 请简要解释什么是单片机(MCU)?考试题目二:2. 请列举一些常见的单片机芯片品牌和型号,并阐述它们的特点。
考试题目三:3. 简述单片机的内部架构,并解释其中的核心组成部分。
考试题目四:4. 描述单片机的编程方式,包括编程语言及工具。
考试题目五:5. 请简要介绍单片机的输入/输出(I/O)接口。
考试题目六:6. 什么是中断?请阐述单片机中断的原理以及使用方法。
考试题目七:7. 解释什么是模拟信号与数字信号,并举例说明。
考试题目八:8. 请列举几种常用的单片机应用领域,并简要描述其功能。
考试题目九:9. 单片机在工业自动化中的作用是什么?举例说明其应用场景。
考试题目十:10. 简述单片机系统设计的基本步骤以及注意事项。
考试答案:1. 单片机是一种集成了处理器、存储器和各种输入/输出接口的微型计算机系统。
它具有体积小、功耗低、成本低等优点,广泛应用于嵌入式系统、工业自动化、物联网等领域。
2. 常见的单片机芯片品牌和型号包括:ATmega328P(Arduino Uno使用的芯片)、STM32F103系列(STMicroelectronics的ARM Cortex-M3系列芯片)、PIC16F877A(Microchip的8位微控制器芯片),它们分别具有易用性、强大的性能和丰富的外设等特点。
3. 单片机的内部架构包括运算器、存储器、定时器/计数器、中断系统和输入/输出接口等核心组成部分。
运算器用于执行指令和进行运算,存储器用于存储程序和数据,定时器/计数器用于控制时间和计数,中断系统用于处理外部中断请求,输入/输出接口用于与外部设备进行数据交互。
4. 单片机的编程方式包括汇编语言编程和高级语言编程。
汇编语言编程较为底层,直接操作寄存器和位,效率高但难度较大;高级语言编程如C语言等更加易学易用,可以借助开发工具如Keil、Arduino等进行编程。
5. 单片机的输入/输出接口包括通用输入/输出(GPIO)口、模拟输入/输出(ADC/DAC)口、串行通信接口(UART/SPI/I2C)等。
上机考试题目

上机考试题目第一大类:电子秒表、时钟1.绘制出型号为STC89C52RC单片机外接4个按钮和3个数码管接线原理图。
编程实现以下功能:按下按钮“1”,电子秒表启动,按下按钮“2”,电子秒表暂停,按下按钮“3”,再次启动电子秒表,按下按钮“4”,电子秒表停止计数并清零。
数码管显示格式是00.0。
要求采用定时器中断方式实现计时。
2.绘制出型号为STC89C52RC单片机外接3个按钮和3个数码管接线原理图。
编程实现以下功能:按下按钮“1”,电子秒表启动并清零,按下按钮“2”,电子秒表暂停,按下按钮“3”,再次启动电子秒表。
数码管显示格式是00.0。
要求采用定时器中断方式实现计时。
3.绘制出型号为STC89C52RC单片机外接3个数码管接线原理图。
编程实现以下功能:上电或复位后电子秒表清零并启动,用外部中断0暂停电子秒表,外部中断1再次启动电子秒表。
数码管显示格式是00.0。
要求采用定时器中断方式实现计时。
4.绘制出型号为STC89C52RC单片机外接16个按钮和4个数码管接线原理图。
编程实现以下功能:上电或复位后后电子计数器清零并启动,由T0产生脉冲的个数使计数器加1,外部中断0停止计数器工作。
数码管显示格式是0000。
计数脉冲检测使用查询方式。
5.绘制出型号为STC89C52RC单片机外接16个按钮和3个数码管接线原理图。
编程实现以下功能:上电后计数器初始数值由按键设置,按下“A”按键启动,T0产生脉冲的个数将计数器减1,外部中断1停止计数器工作。
数码管显示格式是000。
计数脉冲检测使用查询方式。
6.绘制出型号为STC89C52RC单片机外接16个按钮和4个数码管接线原理图。
编程实现以下功能:上电或复位后后电子计数器清零并启动,由T0产生脉冲的个数使计数器加1,外部中断0停止计数器工作。
数码管显示格式是0000。
计数脉冲检测使用中断方式。
7.绘制出型号为STC89C52RC单片机外接16个按钮和3个数码管接线原理图。
单片机上机试题资料

《单片机应用技术》上机试题题目一:用外中断0控制P1口8位LED循环点亮,即按下一次按键,点亮一个灯,再按下按键左移一位点亮,如此循环。
设计并仿真出结果。
题目二:自行设计出一组数据,并让P2口的8位LED按照设计的这组数据顺序进行花样点亮,间隔0.2秒,仿真出结果。
题目三:自行设计一个按键上具有三个功能,即第一次按下按键时,第一个灯点亮;第二次按下按键,第二个灯点亮;第三次按下按键,第三个灯点亮;第四次按下按键,又是第一个灯点亮,如此循环,仿真出结果。
题目四:用P2口作输出口,接一位LED数码管,编写程序,使数码管循环显示0~9这十个数,并用定时器T0实现数码管显示间隔0.5秒,设计并仿真出结果。
题目五:用P2口作输出口,接一个8位的数码管排,采用动态显示的方法,编写程序,是这个数码管排同时显示0~7这八个数,设计并仿真出结果。
题目六:用单片机U1通过串行口TXD端将一段流水灯控制码以串行口工作方式一发送至单片机U2的RXD,U2再利用该段控制码流水点亮其P1口上的8位LED。
设计并编写程序,其中发送程序已知,根据发送程序编写出接收程序,仿真出结果。
数据发送程序:#include<reg51.h> //包含单片机寄存器的头文件Unsigned char codeTab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码,该数组被定义为全局变量/*****************************************************函数功能:向PC发送一个字节数据***************************************************/void Send(unsigned char dat){SBUF=dat;while(TI==0);TI=0;}/************************************************************** 函数功能:延时约150ms**************************************************************/ void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*****************************************************函数功能:主函数***************************************************/void main(void){unsigned char i;TMOD=0x20; //TMOD=0010 0000B,定时器T1工作于方式2SCON=0x40; //SCON=0100 0000B,串口工作方式1PCON=0x00; //PCON=0000 0000B,波特率9600TH1=0xfd; //根据规定给定时器T1赋初值TL1=0xfd; //根据规定给定时器T1赋初值TR1=1; //启动定时器T1while(1){for(i=0;i<8;i++) //模拟检测数据{Send(Tab[i]); //发送数据idelay(); //每150ms发送一次检测数据}}}题目7数码管显示4*4键盘矩阵按键,编程实现数码管显示按键的键值0~F。
单片机考试题目及答案

单片机考试题目及答案一、选择题1. 下列单片机中,不属于8位单片机的是:A. 8051B. AVRC. PICD. STM32答案:D. STM322. 在单片机中,下面哪个不是内部存储器:A. RAMB. ROMC. FlashD. EEPROM答案:A. RAM3. 在单片机内,系统时钟频率越高,单片机运行速度越快,对错?A. 对B. 错答案:A. 对二、填空题1. 单片机是一种集成了______的芯片。
答案:微处理器、存储器、外围设备2. 在单片机系统中,指令寄存器用来存放______。
答案:待执行的指令3. 单片机内部时钟频率通常由______提供。
答案:晶振三、判断题1. 单片机中,外部设备通过I/O口与单片机进行通信,可利用端口输入和输出数据。
答案:正确2. 在单片机内部,EEPROM是一种易擦除可编程只读存储器。
答案:错误四、简答题1. 请简述单片机中的中断概念及中断响应过程。
答:中断是单片机在执行程序时,由于处理器内部或外部事件发生而打断其正常工作顺序,转而去执行相应的中断服务程序。
中断响应过程分为五个步骤:中断请求、中断决策、保存现场、跳转执行、中断返回。
2. 请简要介绍单片机中的I/O口及其作用。
答:单片机中的I/O口用于和外部设备进行数据传输,可以输入或输出数字信号,实现与外界的通信。
通过I/O口可以控制LED灯、数码管、继电器等外部设备,也可以接收来自按键、传感器等的输入信号。
以上是单片机考试题目及答案,希望能对您有所帮助。
如有任何疑问,请随时联系我们。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 双字节无符号数加法
例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。
已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h)
假设其和不超过16位。
请编程。
提示:
由于不存在16位数加法指令, 所以只能先加低8位, 后加高8位, 而在加高8位时要连低8位相加时产生的进位一起相加。
查看psw中的标志CY=?, OV=?, AC=?, P=?。
熟悉软件环境,要求能知道在哪里看数据的值,在哪里能看一些寄存器的内容,在哪里看程序代码。
如何在伟福软件环境下建立项目,运行文件。
要求按照标准模式来写程序,
org 0000h
Ljmp start
org 0050h
start:
.....
ss: jmp ss
end
2双字节无符号数减法
例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。
R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。
同学自己可以设置被减数与减数数值
提示:
先减低8位, 后减高8位和低位减借位。
由于低位开始减时没有借位, 所以要先清零。
3双字节数乘以单字节数
例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。
若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。
30H,31H,32H内容 12H,34H,56H ;
提示:
(M1+1) (M1)
×(M2)
R3 R4 ;是M2 乘M1的高8位,低8位+ B A ;是M2乘M1+1的高8位,低8位
R2 R3 R4
4. 把8位二进制数转换为3位BCD
例4: 利用除法指令把累加器A中的8位二进制数转换为3位BCD数, 并以压缩形式存放在地址M1、 M2单元中。
设A中放A8H ,M1、 M2单元地址是 30H,31H
提示:
累加器A中的8 位二进制数, 先对其除以100(64H), 商数即为十进制的百位数; 余数部分再除以10 (0AH), 所得商数和余数分别为十进制十位数和个位数, 即得到3位BCD数。
百位数放在M1中, 十位、个位数压缩BCD数放在M2中, 十位与个位数的压缩BCD数的存放是通过SWAP和ADD指令实现的。
5双字节压缩BCD码加法
例6: 双字节压缩BCD码加法。
设R5(高)、 R4(低)为被加数; R3(高)、 R2(低)为加数, 相加和的结果存入: R6(万)、 R5(千、百)、 R4(十、个)。
被加数 98H,76H;加数 54H,32H
6 利用DPTR取数据,并保持DPTR原数不变
例6: 若在外部ROM/EPROM中2000H单元开始依次存放0~9的平方值, 原来数据指针(DPTR)=3A00H, 请用查表指令取出2003H单元的数据后, 要求保持DPTR中的内容不变。
7 16 位数的算术左移
16 位数的算术左移。
16位数在内存中低 8 位存放在M1单元, 高 8 位存放在M1+1单元。
16位数是1234H ,M1为30H,M2为31H
提示: 所谓算术左移就是将操作数左移一位, 并使最低位补充0, 相当于完成16 位数的乘2 操作, 故称算术左移。
8 比较内部RAM I、J单元中A、B 两数的大小
例 3: 比较内部RAM I、 J单元中A、 B两数的大小,设A、B数均为带符号数, 以补码数存入I、 J中, 若A=B, 则使内部RAM的位K置 1; 若A≠B, 则大数存M单元, 小数存N 单元。
设内部RAM I、 J 是30H,40H;(A)=58H,(B)=97H
M单元=50H,N单元=60H,位K=00H
该带符号数比较子程序的比较过程示意图如图 3 ― 9 所示。
9 双字节压缩BCD码转换成二进制码例 2: 双字节压缩BCD码转换成二进制码子程序。
提示: 该转换的算法为: (d3d2d1d0)BCD=(d3×10+d2)×100+(d1×10+d0)
实现该算法的参考子程序如下:
入口: R5(千位、百位)、R4(十位、个位)为BCD码。
出口: R5R4(16 位无符号二进制整数)。
10 冒泡排序
有8个数据存放在20H为首地址的内部RAM,进行升序排列编程,原始数据:39,27,13,44,78,22,6,51;设R7 为比较次数计数器,初始值为07H,F0为标志位,F0=0表明无互换发生,F0=1表明有互换发生
提示:程序流程图如下
置R0为20H
置R7为07H
清交换标志位
取前一个数
取后一个数
前数〈后数
前数送后数单元
后数送前数单元
标志位置1
R7-1=0?
标志位置1?
结束N
Y
N Y N
Y
11中断方式下定时器应用设计
设单片机的晶振为12MHz ,,定时器0方式0工作,产生1ms 定时,在P1.0引脚上输出周期为2ms 的方波,中断方式
完成,试设计程序。
12查询方式下定时器应用设计
设单片机的晶振为12MHz,,定时器0方式0工作,产生1ms 定时,在P1.0引脚上输出周期为2ms的方波,查询方式完成,试设计程序。
13中断方式下定时器应用设计
设片内RAM的70H单元的初值为01H,要求每1秒钟将其内容左环移一位,采用定时器T1,采用定时方式1,晶振频率为6MHz。
中断方式完成,试设计程序。
分析:
当晶振频率为6MHz时,一个定时器的最大定时值为131ms,现要求定时1s,已超过该最大定时值,故只能采用定时器定时和软件计数相结合的方法来扩展定时时间。
在本例中,要获得1s定时,可将定时器的定时值设为100ms,另设一个软件计数器(常用Rn寄存器),初值为10。
每100ms定时时间一到,产生定时溢出中断,在中断服务程序中首先使软件计数器减1,若不为0,则立即退出中断;若已减为0,说明1s定时时间已到,可进入中断处理。
当中断处理完后,再重新设置软件计数器。
其它要求与前例类似。