任务二 制作多功能函数信号发生器(练习)-《单片机技术及应用》(高教版第四版) 同步精品课堂
2025-08-25
|
2份
|
11页
|
56人阅读
|
0人下载
内容正文:
制作多功能函数信号发生器
一、名词解释
1. 多功能函数信号发生器
2. DAC0832 的访问地址
二、单项选择题
1. 制作多功能函数信号发生器搭接电路时,不需要使用的模块是( )
A. 单片机最小系统模块
B. 独立按键模块
C. 温度传感器模块
D. D/A 转换模块
2. 在编程时,定义 DAC0832 的访问地址用到的语句是( )
A. #define DAC0832 XBYTE 0X7FFF
B. #define uchar unsigned char
C. #define uint unsigned int
D. #include "reg51.h"
3. 多功能函数信号发生器的按键分别对应产生( )
A. 正弦波. 三角波. 梯形波
B. 正弦波. 方波. 锯齿波
C. 余弦波. 方波. 锯齿波
D. 正弦波. 方波. 三角波
4. 在编程中,正弦波数据表存储在( )数组中。
A. THREE_DATA
B. FANGBO_DATA
C. SIN_DATA
D. 以上都不是
5. 锯齿波发生函数中,DAC0832 输出的值是( )
A. 固定值
B. 从 0 到 255 递增
C. 从 255 到 0 递减
D. 随机值
6. 方波发生函数中,DAC0832 交替输出的值是( )
A. 0 和 1
B. 128 和 255
C. 0 和 255
D. 以上都不是
7. 编程时,新建的工程文件扩展名是( )
A..C
B..uV2
C..HEX
D..DSN
8. 编程时,新建的 C51 源程序文件扩展名是( )
A..C
B..uV2
C..HEX
D..DSN
9. 在键盘扫描函数中,当 “正弦波” 按键按下时,返回的键值是( )
A. 0
B. 1
C. 2
D. 3
10. 若要改变多功能函数信号发生器中正弦波的幅度,可通过( )方式实现。
A. 改变正弦波数据表的值
B. 改变延时函数的延时时间
C. 改变按键的连接方式
D. 以上都不对
三、 判断题
1. 在多功能函数信号发生器的锯齿波发生函数中,DAC0832 输出值从 255 到 0 递减。( )
2. 在编程中,正弦波发生函数和锯齿波发生函数的代码结构完全相同。( )
3. 方波发生函数中,DAC0832 只输出高电平。( )
4. 编程时,定义的 “uchar” 和 “uint” 是用于定义 DAC0832 的访问地址。( )
5. 在键盘扫描函数中,没有进行按键消抖处理。( )
四、简答题
1. 简述制作多功能函数信号发生器的步骤。
2. 说明正弦波发生函数的工作原理。
3. 阐述键盘扫描函数的作用和工作过程。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
制作多功能函数信号发生器
一、名词解释
1. 多功能函数信号发生器
【答案】能产生正弦波. 方波和锯齿波的设备,通过设置 3 个按键,按下 “正弦波” 键输出正弦波,按下 “方波” 键输出方波,按下 “锯齿波” 键输出锯齿波。
2. DAC0832 的访问地址
【答案】在编程中,使用类似 “#define DAC0832 XBYTE 0X7FFF” 语句定义的地址,其中 P2.7 为 CS 片选信号,用于对 DAC0832 进行访问操作。
二、单项选择题
1. 制作多功能函数信号发生器搭接电路时,不需要使用的模块是( )
A. 单片机最小系统模块
B. 独立按键模块
C. 温度传感器模块
D. D/A 转换模块
【答案】C
【解析】制作多功能函数信号发生器,根据电路原理图,需要使用单片机最小系统模块. 独立按键模块和 D/A 转换模块,不需要温度传感器模块,所以选 C。
2. 在编程时,定义 DAC0832 的访问地址用到的语句是( )
A. #define DAC0832 XBYTE 0X7FFF
B. #define uchar unsigned char
C. #define uint unsigned int
D. #include "reg51.h"
【答案】A
【解析】定义 DAC0832 的访问地址的语句是 “#define DAC0832 XBYTE 0X7FFF”,所以选 A。
3. 多功能函数信号发生器的按键分别对应产生( )
A. 正弦波. 三角波. 梯形波
B. 正弦波. 方波. 锯齿波
C. 余弦波. 方波. 锯齿波
D. 正弦波. 方波. 三角波
【答案】B
【解析】设置 3 个按键,按下 “正弦波” 键输出正弦波,按下 “方波” 键输出方波,按下 “锯齿波” 键输出锯齿波,所以选 B。
4. 在编程中,正弦波数据表存储在( )数组中。
A. THREE_DATA
B. FANGBO_DATA
C. SIN_DATA
D. 以上都不是
【答案】C
【解析】从代码可知,正弦波数据表存储在 “SIN_DATA” 数组中,所以选 C。
5. 锯齿波发生函数中,DAC0832 输出的值是( )
A. 固定值
B. 从 0 到 255 递增
C. 从 255 到 0 递减
D. 随机值
【答案】B
【解析】在锯齿波发生函数中,“for (ii = 0; ii < 256; ii++) {DAC0832 = ii++;}” 表明 DAC0832 输出的值从 0 到 255 递增,所以选 B。
6. 方波发生函数中,DAC0832 交替输出的值是( )
A. 0 和 1
B. 128 和 255
C. 0 和 255
D. 以上都不是
【答案】C
【解析】方波发生函数中,“DAC0832 = 255;” 和 “DAC0832 = 0;” 表明 DAC0832 交替输出 0 和 255,所以选 C。
7. 编程时,新建的工程文件扩展名是( )
A..C
B..uV2
C..HEX
D..DSN
【答案】B
【解析】启动 Keil uVision2,新建的工程文件名为 “多功能函数信号发生器.uV2”,扩展名是.uV2,所以选 B。
8. 编程时,新建的 C51 源程序文件扩展名是( )
A..C
B..uV2
C..HEX
D..DSN
【答案】A
【解析】新建的 C51 源程序文件名为 “多功能函数信号发生器.C”,扩展名是.C,所以选 A。
9. 在键盘扫描函数中,当 “正弦波” 按键按下时,返回的键值是( )
A. 0
B. 1
C. 2
D. 3
【答案】B
【解析】在键盘扫描函数中,当 “SIN == 0”(即 “正弦波” 按键按下)时,返回的键值 “kvalue = 1”,所以选 B。
10. 若要改变多功能函数信号发生器中正弦波的幅度,可通过( )方式实现。
A. 改变正弦波数据表的值
B. 改变延时函数的延时时间
C. 改变按键的连接方式
D. 以上都不对
【答案】A
【解析】正弦波数据表的值决定了输出正弦波的幅度,改变其值就能改变正弦波幅度;延时函数主要影响频率;改变按键连接方式与正弦波幅度无关,所以选 A。
三、判断题
1. 在多功能函数信号发生器的锯齿波发生函数中,DAC0832 输出值从 255 到 0 递减。( )
【答案】×
【解析】在锯齿波发生函数中,“for (ii = 0; ii < 256; ii++) {DAC0832 = ii++;}” 表明 DAC0832 输出的值从 0 到 255 递增,并非从 255 到 0 递减,所以该说法错误。
2. 在编程中,正弦波发生函数和锯齿波发生函数的代码结构完全相同。( )
【答案】×
【解析】正弦波发生函数是从正弦波数据表中取值输出,而锯齿波发生函数是输出从 0 到 255 递增的值,代码结构不同,所以该说法错误。
3. 方波发生函数中,DAC0832 只输出高电平。( )
【答案】×
【解析】方波发生函数中,DAC0832 交替输出高电平(255)和低电平(0),并非只输出高电平,所以该说法错误。
4. 编程时,定义的 “uchar” 和 “uint” 是用于定义 DAC0832 的访问地址。( )
【答案】×
【解析】“#define uchar unsigned char” 和 “#define uint unsigned int” 是用于定义无符号字符型和无符号整型,并非用于定义 DAC0832 的访问地址,所以该说法错误。
5. 在键盘扫描函数中,没有进行按键消抖处理。( )
【答案】×
【解析】在键盘扫描函数中,当检测到按键按下时,使用 “DELAY (10);” 进行了延时消抖处理,所以该说法错误。
四、简答题
1. 简述制作多功能函数信号发生器的步骤。
【答案】制作多功能函数信号发生器的步骤如下:
1 搭接电路:根据多功能函数信号发生器电路原理图,使用单片机最小系统模块. 独立按键模块和 D/A 转换模块进行搭接。
2 绘制程序流程图。
3 编程:启动 Keil uVision2,新建工程文件 “多功能函数信号发生器.uV2”;新建 C51 源程序文件 “多功能函数信号发生器.C”,根据程序流程图补充代码;编译程序,生成 HEX 文件。
4 仿真调试程序:按照与任务一相同的方法进行仿真调试,参考多功能函数信号发生器仿真电路图。
5 下载程序,验证功能。
2. 说明正弦波发生函数的工作原理。
【答案】正弦波发生函数的工作原理是通过一个无限循环,在循环内部使用 “for” 循环遍历正弦波数据表 “SIN_DATA”。每次循环中,将数据表中的值赋给 DAC0832 进行输出,并进行一定的延时操作。同时,不断检测按键状态,如果有按键按下(P1 != 0xff),则跳出循环。
3. 阐述键盘扫描函数的作用和工作过程。
【答案】键盘扫描函数的作用是检测多功能函数信号发生器的按键状态,并返回相应的键值。工作过程如下:依次检测 “正弦波”“锯齿波”“方波” 三个按键是否按下。当检测到某个按键按下时,先进行延时消抖处理,再次确认按键是否仍然按下。如果确认按下,则等待按键松开,并返回对应的键值(“正弦波” 按键对应键值 1,“锯齿波” 按键对应键值 2,“方波” 按键对应键值 3)。如果没有按键按下,则返回键值 0。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
资源预览图
1
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。