STC15系列可仿真单片机项目化应用教程C语言习题答案完整版.docx
- 文档编号:10129308
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:31
- 大小:223.56KB
STC15系列可仿真单片机项目化应用教程C语言习题答案完整版.docx
《STC15系列可仿真单片机项目化应用教程C语言习题答案完整版.docx》由会员分享,可在线阅读,更多相关《STC15系列可仿真单片机项目化应用教程C语言习题答案完整版.docx(31页珍藏版)》请在冰豆网上搜索。
STC15系列可仿真单片机项目化应用教程C语言习题答案完整版
项目一控制灯光闪烁习题
一、填空题
1.单片机复位方式有外部RST引脚复位,内部低压检测复位,MAX810专用复位电路复位,软件复位,掉电复位/上电复位,看门狗复位和程序地址非法复位。
2.IAP15W4K58S4内部程序存储器(ROM)容量为58KB,地址从0000H开始,用于存放程序和表格常数。
3.IAP15W4K58S4输入/输出口线38条,它们都是标准输入输出端口。
二、简答题
1.IAP15W4K58S4单片机最小应用系统由哪几个部分组成?
答:
单片机最小系统包含复位电路、时钟电路和电源。
IAP15W4K58S4片内包含RC时钟电路、复位电路,因此IAP15W4K58S4单片机不需外围电路,只需接上电源就是一个单片机最小系统了。
2.IAP15W4K58S4单片机复位电路有几种形式?
答:
外部RST引脚复位,内部低压检测复位,MAX810专用复位电路复位,软件复位,掉电复位/上电复位,看门狗复位和程序地址非法复位。
3.IAP15W4K58S4单片机的主时钟有几种类型?
答:
内部RC振荡器时钟、外部时钟
4.KeilC51数据类型有哪些?
答:
char/unsigned char、int/unsigned int、long/unsigned long、float/double、generic pointer
5.KeilC51存储类型有哪些?
答:
data、bdata、idata、pdata、xdata、code
6.KeilC51和ANSIC的差异主要有哪些?
答:
KeilC51有ANSIC的所有标注数据类型,而KeilC51还加入了一些特殊的数据类型。
KeilC51可以让用户针对8051的结构进行程序设计,其他差异主要是8051的一些局限性引起的。
三、编程题
1.试编写实现流水灯。
要求每次点亮3个发光二极管,从高位至低位轮流点亮,点亮时间自定,分别采用顺序结构、循环结构实现,并画出流程图。
答:
仿真或开发板上实现,程序略。
2.编程实现花样闪烁。
要求:
能够在个人的开发板上利用8个LED显示如下花样,循环显示方式为:
●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●○○○○○○○○●起始状态
答:
仿真或开发板上实现,程序略。
3.流水灯速度控制
要求首先实现8个小灯的循环显示即流水灯功能,然后利用延时函数控制小灯循环的速度,要求有三种明显变化的速度。
循环显示方式为:
●○○○○○○○●●○○○○○○●●●○○○○○●●●●○○○○●●●●●○○○●●●●●●○○●●●●●●●○●●●●●●●●起始状态
答:
仿真或开发板上实现,程序略。
项目二数码管显示数字习题
一、填空题
1.八段共阳数码管,若H段信号由数据位D7提供,A段信号由数据位D0提供,则‘n’的显示码为__ABH____。
2.LED为共阳极接法(即负逻辑控制),则提示符P的七段代码值应当为8CH__H。
二、简答题
1.简述数码管动态显示的原理。
答:
数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态显示驱动是将所有数码管的8个显示笔画a,b,c,d,e,f,g,h的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O控制线。
当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管显示出字形,取决于单片机对位选通COM端电路的控制,即取决于位码,所以只要将需要显示的数码管的选通控制打开,该位就会显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的COM端,就能使各个数码管轮流受控显示,这就是动态显示原理。
2.数码管的结构形式有几种?
画出1位共阳极数码管的电路结构。
答:
数码管的结构由两种:
共阴极数码管和共阳极数码管。
三、编程题
1.使用1个数码管轮流显示0~9个数字。
答:
开发板上完成,程序略。
2.要求使用数码管显示当天日期,如20100601
答:
开发板上完成,程序略。
3.要求:
能够在个人的开发板上利用八个数码管显示如下花样:
XXX11XXX—>XX2222XX—>X333333X—>44444444—>X555555X—>XX6666XX—>X777777X—>88888888,每个状态各显示1s,显示反复循环,其中X表示对应的数码管熄灭。
答:
开发板上完成,程序略。
项目三键盘控制输入习题
一、填空题
1.键盘按照接口原理可分为编码键盘和非编码键盘两类。
这两类键盘的主要区别是识别键符及给出相应键码的方法不同,编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是用软件来实现键盘的定义和识别。
2.键盘按照其结构可分为独立式键盘和矩阵式键盘两类。
独立式按键主要用于按键较少的场合,矩阵式主要用于按键较多的场合,也称为行列式键盘。
二、简答题
1.简述独立式按键的电路结构,按键识别的原理。
答:
独立式键盘的按键相互独立,每个按键接一根I/O口线,一根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。
因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下。
2.简述矩阵式按键的电路结构,按键识别的原理。
答:
按键识别方法有两种:
逐行扫描法和行列反转法。
(1)逐行扫描法
单片机每次向某一行
(i=1~4)输出扫描信号,即使其为0,然后通过读取列线
(j=1~4)的状态来确定键闭合的位置。
列线
接+5V。
无键按下时,行线
和列线
断开,列线Y1~Y4呈现高电平。
当某一按键闭合时,该键所在行、列线短接。
若该行线输出为0,则该列线的电平被拉成0(其余3根列线电平仍为1),则单片机可以此判断出闭合按键所在的行、列及键值。
(2)行列反转法
单片机操作时,先输出行有效信号,再输出列有效信号,经过组合、求反得到特征字。
三、编程题
1.能够在个人的开发板上利用按键和显示电路完成以下任务:
按键1按下,显示11111111;按键2按下,显示22222222,按键3按下,显示33333333,按键4按下,显示44444444。
答:
开发板上完成,程序略。
2.能够在个人的开发板上利用八个数码管显示时钟,计时采用24小时进制,显示00-00-00到23-59-59,按键1可以调整时,按键2可以调整分,按键3可以调整秒。
答:
开发板上完成,程序略。
项目四中断系统应用习题
一、填空题
1.51单片机中的五个中断源分别为:
外部中断0、外部中断1、定时器0溢出、
定时器1溢出和串行口发送或接收完成。
2.外部中断0、1的中断标志是IE0、IE1,位于寄存器TCON中,IE0=1表示
INT0端出现有效中断请求信号。
3.51单片机有2级优先级,由特殊功能寄存器IP设置优先级,IP=0x03
的作用是外部中断0、定时器0溢出中断优先级为高级。
4.外部中断1的中断号是2号。
5.51单片机的中断源全部设置为相同的优先级,先响应外部中断0的中断请求。
二、简答题
1.画出51单片机的5个中断源的中断序号、默认优先级别、对应的中断服务程序的入口地址相应表格。
中断源
中断序号
默认中断级别
中断服务入口地址
INT0(外部中断0)
0
最高
0003H
T0(定时器/计数器0中断)
1
第2
000BH
INT1(外部中断1)
2
第3
0013H
T1(定时器/计数器1中断)
3
第4
001BH
TI/RI(串口中断)
4
最低
0023H
2.用数组的形式定义共阳极数码管显示数字0~9对应的段码。
答:
unsignedcharcodeLED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
3.INT_SEV()interrupt2using2是什么函数?
答:
外部中断1的中断服务函数。
4.要使INT0开中断(其余关中断),并设置中断请求方式为边沿触发方式,请写出相关语句。
答:
EX0=1;
IT0=1;
EA=1;
5.设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级,请写出相关语句。
答:
IP=0x05;
三、编程题
1.在实训板上用按键控制某个发光二极管。
要求当按键闭合时,发光二极管点亮10s后熄灭,要求画出硬件电路图,用中断方式编写源程序。
答:
开发板上实现,程序略。
2.设计减1键,按键每按下一次,数码管上显示的数值减1,变化范围是0~F,能用软件消除按键的抖动。
答:
开发板上实现,程序略。
3.为某控制系统设置加1键和减1键,变化范围是0~99,采用中断方式。
答:
开发板上实现,程序略。
项目五制作电子钟与秒表习题
一、填空题
1.51单片机有2个定时/计数器,它们能实现定时和计数功能。
2.TMOD=0x51的含义是定时器0工作在定时器模式方式1,定时器1工作在计数器模式方式1,TR0=1表示启动定时器0。
3.定时/计数器的功能选择位是C/T,GATE=0表示定时器计时器仅受TR0或TR1控制。
4.定时/计数器有4种工作方式,计数初值存放在THx、TLx。
5.定时/计数器的初始化一般安排在主函数中完成。
二、简答题
1.51单片机定时器/计数器的初始化需设置哪些特殊功能寄存器?
答:
TMOD、TCON、IE、THx、TLx。
2.如何区别需要使用的是定时器还是计数器?
答:
若是计数内部晶振驱动时钟,则它是定时器;若是计数输入引脚的脉冲信号,则它是计数器。
3.“TMOD=0x01;”语句是什么意思?
答:
定时/计数器0工作模式为定时器模式方式1.
4.写出定时器0定时时间为1ms初始化语句中进行初值装载的两条语句。
答:
TH0=(65536-1000)/256;TL0=(65536-1000)%256;
5.简述定时器/计数器方式1和方式2的区别。
答:
(1)当TMOD中M1M0=01时,T/C工作在方式1。
方式1时,计数寄存器的位数是16位的,由TH和TL寄存器各提供8位,满计数值为216。
(2)当TMOD中M1M0=10时,T/C工作在方式2。
方式2是8位的可自动重装载的T/C,满计数值为28=256。
6.简述定时器/计数器的初始化步骤。
答:
1)确定T/C的工作方式——编程TMOD寄存器;
2)计算T/C中的计数初值,并装载到THx和TLx;
3)T/C在中断方式工作时,须开CPU中断和源中断——编程IE寄存器;
4)启动定时器/计数器——编程TCON中TR1或TR0位。
三、编程题
1.利用定时器0工作方式1,在实训板上实现某一个发光管以1s亮灭闪烁。
答:
开发板上实现,程序略。
2.使用定时计数器设定1s定时,并在数码管上显示当前秒数,当到第15s时归0,并由蜂鸣器报警,报警时间为1s。
答:
开发板上实现,程序略。
3.用定时器0的工作方式1实现第一个发光二极管以200ms的间隔闪烁,用定时器1的方式1实现数码管前两位59s循环计时。
答:
开发板上实现,程序略。
项目六制作简易电压表习题
一、填空题
1.逐次逼近型ADC和积分型ADC主要用于中低速、中等精度的数据采集和智能仪器中;分级型和流水型ADC主要应用于高速情况下的瞬态信息处理;
-
型ADC主要应用高精度数据采集的场合。
2.ADC转换过程一般包括取样-保持和量化-编码。
量化时所规定的最小数量单位叫做量化单位,用△表示。
3.ADC转换性能指标有:
分辨率、精度、转换时间、电源灵敏度、量程和输出逻辑电平。
二、简答题
1.ADC在单片机应用系统中起到的作用是什么?
答:
ADC是一种能把输入模拟电压或电流变成与其成正比的数字量的电路芯片,即能把被控对象的各种模拟信息变成计算机可以识别的数字信息。
2.逐次逼近式ADC的工作原理是什么?
答:
逐次逼近式ADC由一个比较器和D-A转换器构成,通过逐次比较逻辑,从最高位(MSB)开始,顺序地对每一输入电压与内置D-A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。
3.IAP15W4K58S4单片机ADC转换模块的特殊功能控制寄存器有哪些?
有什么作用?
答:
P1ASF——ADC转换接口设置、ADC_CONTR——ADC转换控制寄存器、ADC_RES——ADC转换结果寄存器、IE——中断允许寄存器、IP、IPH——中断优先级寄存器
4.IAP15W4K58S4单片机ADC转换模块初始化流程?
答:
P1口相应位设置为ADC模式(根据ADC通道设置P1ASF),配置ADC转换控制寄存器(根据ADC通道设置ADC_CONTR,开启ADC电源),转换结果寄存器ADC_RES清零。
三、编程题
利用STC单片机内部ADC转换模块实现电压测量(0~100V),设计一个量程转换的电路,满足单片机ADC输入0~5V的要求。
1..写出电压表中实现ADC转换的程序段。
2.写出电压表中将ADC转换后的数字量转变成显示电压值(数据处理)的程序段。
答:
开发板上实现,程序略。
项目七串口实现通信习题
一、填空题
1.异步串行通信时,帧格式一般由起始位、数据位、奇偶校验位和停止位四部分组成,异步串行通信时,发送方先发送1位起始位“0”,然后是5~8位数据,规定低位在前,高位在后,其后是奇偶校验位(可无),最后是停止位“1”。
2.51单片机内有4个并行I/O口用于并行通信、一个全双工UART(异步串行通信接口)用于串行通信。
3.异步串行通信的各单片机时钟相互独立,其时钟频率可以不同,在通信时不要求有同步时钟信号,易实现。
二、简答题
1.串行通信的基本方式有哪些?
各有什么特点?
答:
根据同一时刻串行通信的数据方向,串行通信可分为以下三种数据通路形式。
(1)单工(Simplex)形式
单工形式的数据传送是单向的,通信双方中一方固定为发送端,另一方则固定为接收端。
单工形式的串行通信,只需要一条数据线。
(2)半双工(Half-duplex)形式
半双工形式的数据传送也是双向的,但任何时刻只能由其中的一方发送数据,另一方接收数据。
因此半双工形式既可以使用一条数据线,也可以使用两条数据线。
(3)全双工(Full-duplex)形式
全双工形式的数据传送是双向的,且可以同时发送和接收数据,因此全双工形式的串行通信需要两条数据线。
2.异步串行通信与同步串行通信的主要区别是什么?
答:
异步串行和同步串行通信主要区别是同步时钟提供的不同。
异步串行通信是指通信的发送方与接收方使用各自的时钟控制数据的发送和接收,为使双方收、发协调,要求发送和接收设备的时钟尽可能一致。
异步串行通信时只需要一条通信线路就可以实现从一方到另一方的数据传送,两条线路则可以实现数据的双向传输。
同步串行通信要求发送方和接收方时钟严格保持同步,在通信时通常要求有同步时钟信号,对硬件结构要求高。
3.51单片机串口设有几个控制寄存器?
它们的作用是什么?
答:
与串口1工作有关的特殊功能寄存器有SBUF、SCON、PCON;与串口中断有关的特殊功能寄存器有IE和IP。
SBUF在物理上是两个独立的寄存器,可以同时发送、接收数据。
串口控制寄存器SCON用于串口工作方式设定、接收和发送控制等。
PCON最高位SMOD对串行通信有影响。
IE和IP用于配置串口中断允许、中断优先级。
4.简述串口接收和发送数据的过程。
答:
1)发送。
将某一字节数据写入发送缓冲寄存器SBUF时,数据从引脚TXD(P3.1)端异步发送,发送完1帧数据后,由硬件将发送中断标志TI置位为1,中断方式时向CPU申请中断,通知CPU发送下一个数据;在中断服务函数中,先由用户将TI清0,然后再给SBUF送入下一个待发送的字符
2)接收。
在RI=0时,,先要由用户软件置REN为1,允许接收数据;串口采样引脚RXD(P3.0),当采样到1至0的跳变时,表示接收起始位0,开始接收1帧数据,当停止位到来时,将停止位送至RB8,同时,由硬件将接收中断标志RI为1,中断方式时向CPU申请中断,通知CPU从SBUF取走接收到的1个数据;在中断服务函数中,先由用户将R1清0,然后读取SBUF。
5.为什么定时器T1用作串口波特率发生器时采用什么工作方式2?
答:
在方式2中,TL1用作计数,而TH1用于存放自动重装载所需的初值,因此初始化时装入TH1、TL1的初值必须是相同的,然后启动定时器T1,TL1寄存器便在时钟的作用下开始加1,当TL1计满溢出后,CPU会自动将TH1中的初值重新装入TL1,继续计数。
当定时器T1作波特率发生器时,溢出后中断服务函数中并无任何事情可做,因此为了避免因溢出而产生不必要的中断,可禁止T1中断。
这样串口波特率发生器时钟非常精确。
6.试述51单片机串口的4种工作方式、工作原理、字符格式及波特率的产生方法。
答:
51单片机的串口有四种工作方式,由串口控制寄存器SCON中SM0、SM1两位进行设置。
(1)采用方式0时,串口作为8位同步移位寄存器,在发送数据时,SBUF相当于一个并行输入、串行输出的移位寄存器;在接收数据时,SBUF相当于一个串行输入、并行输出的移位寄存器。
方式0时1帧字符为8位,先发送或接收最低位,其帧格式为:
…
D0
D1
D2
D3
D4
D5
D6
D7
…
这种方式常用于扩展I/O口,波特率固定为fosc/12。
(2)采用方式1时,串口为10位通用异步串行通信接口。
发送或接收的1帧字符,包含1位起始位0、8位数据位和1位停止位1。
其帧格式为:
…
0
D0
D1
D2
D3
D4
D5
D6
D7
1
…
起始位停止位
波特率由T1的溢出率决定,由用户设置。
串口方式1和方式3的波特率是由定时器T1的溢出率与SMOD值共同决定的,即:
方式1和方式3的波特率=(2SMOD/32)
T1溢出率
(3)方式2和方式3均为11位异步串行通信方式,除了波特率的设置方法不同外,其余完全相同。
方式2的波特率固定,由PCON中的SMOD位选择;方式3的波特率由T1溢出率控制。
这两种方式发送/接收的1帧字符为11位,包含1位起始位0、8位数据位、1位可编程位(TB8/RB8)和1位停止位1。
其帧格式为:
…
0
D0
D1
D2
D3
D4
D5
D6
D7
D8
1…
起始位TB8/RB8停止位
方式2的波特率取决于PCON中最高位SMOD,它是串口波特率倍增位。
复位后,SMOD=0。
当SMOD=1时,波特率加倍,为fosc的1/32;当SMOD=0时,波特率为fosc的1/64。
即:
方式2的波特率=(2SMOD/64)×fosc。
方式3的波特率计算方法与方式1相同。
7.若串口采用工作方式3,已知系统时钟频率为12MHz和通信用的波特率为9600,如何计算定时器T1的初值?
答:
查表7-7,T1初值TH1=TL1=FDH(SMOD=0时)、TH1=TL1=F9H(SMOD=1时)。
8.RS-232C总线标准与一般的数据总线有什么不同?
在串行通信中如何应用RS-232C接口?
答:
RS-232C是美国电子工业协会1969年制定的通信标准,它定义了数据终端设备与数据通信设备之间的物理接口标准。
由于RS-232C接口标准的接收器和发送器之间有公共地,不可能使用双端信号(差分信号),只能传送单端信号,这样,共模噪声就会耦合到系统中。
传输距离越长,干扰越严重。
因此,为了可靠地传输信息,不得不增加信号幅度。
RS-232C标准规定,采用负逻辑EIA电平,逻辑“1”电平为-3~-5V,逻辑“0”电平为+3~+15V,传输距离在15m之内;数据传输率局限在20kbit/s以下。
RS-232C标准接头有9个引脚,但是将它用于两个单片机通信时,只需要用到RXD、TXD、GND三条线,RS-232双机通信连接图如下图。
三、编程题
1.串行通信(发送)
要求:
连接开发板和PC机,由单片机发送学生学号至PC机,PC端使用串行调试工具接收并显示。
答:
开发板上实现,程序略。
2.串行通信(接收)
要求:
连接开发板和PC机,在PC端使用串行调试工具发送1位字符(0-9)给开发板,单片机端接收并将该数字显示在数码管上。
答:
开发板上实现,程序略。
项目八液晶显示应用习题
一、填空题
1.LCD是一种被动式显示器,由于它的功耗极低、抗干扰能力强,因而在低功耗的智能仪器系统中大量使用。
2.LCD1602是最常用的一种字符型液晶显示器,共16个引脚,电源电压为5V,带背光,两行显示,每行16个字符。
3.LCD1602液晶模块内部的控制器共有11条控制指令,其中清屏指令是01H。
二、简答题
1.简述LCD1602的特点及引脚功能。
答:
LCD1602是最常用的一种字符型液晶显示器,共16个引脚,电源电压为5V,带背光,两行显示,每行16个字符,即每屏最多显示32个字符,一般不用于显示汉字,内置128个ASCII字符集。
常用两种显示形式,一是在液晶的任意位置显示字符或字符串;二是字符或字符串的滚动显示。
引脚功能如下表。
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
2.LCD1602DDRAM地址是怎么分布的?
答:
LCD1602显示屏上的32个显示位置与DDRAM中的32个单元一一对应,在LCD1602上某个位置显示字符就是将该字符的ASCII码存入DDRAM存储器的对应单元。
DDRAM的容量为80字节,这80个字节分两行,每行40字节,最多存储两屏半字符,其地址与LCD1602显示屏的对应关系如下图所示。
显示存储区地址与LCD1602显示屏的对应关系
3.LCD1602常用指令有哪些?
答:
常用指令11条,如下表所示。
序号
指令
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
1
清屏
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示控制
0
0
0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STC15 系列 仿真 单片机 项目 应用 教程 语言 习题 答案 完整版
![提示](https://static.bdocx.com/images/bang_tan.gif)