1、智能仪器课程设计-测控 08-4 Page1 智能仪器课程设计报告智能仪器课程设计报告 题目:输出波形“方波,上半波整流正弦波”题目:输出波形“方波,上半波整流正弦波” 班级:测控班级:测控 084 班班 姓名:姓名:* 学号:学号: 智能仪器课程设计-测控 08-4 Page2 一一. 实验设备:实验设备: 开发板 Keil C 软件; 二实验目的:二实验目的: 掌握动态显示及键盘设计原理,使学生对智能仪器中最基本得输入输出方法 具有感性认识。 熟练掌握开发板的使用。 通过一个相对完整的程序编程, 使学生能够将单片机知识和智能仪器的设计融会贯通, 同时掌握对智能仪器的软硬件构成及“硬件软化”
2、方法。 三三实验要求:实验要求: 显示亮度大且均匀。 按键需去抖。 运行程序首先显示以下内容:。 通过按键选择相应的波形,通过输出。输出波形:下斜锯齿波,上半波整流正弦 波。 输出波形时,数码管显示输出频率,发光管指示波形种类。 编写实验报告。 四编写程序完成以下任务:四编写程序完成以下任务: 矩阵键盘识别。 动态数码显示。 编写调试程序,逐一调试数码管,发光管和按钮,和。 使用键盘通过输出要求的波形并像是频率。 五调试规则:五调试规则: 完成所有端口的连接线。 连接线,再按下键。 完成驱动程序的安装,设置开发板参数。 进入编写,编译程序,生成文件。 进入 程序, 完成文件的下载, 下载完毕,
3、 程序自动运行。 运行结果不正确,回到第步。 六六.软件设计:软件设计: (1)总体思路设计 A、第 1,2 两个按键控制选择波形,可以选择 1 或 2,并显示在数码管 第 1 位上,按键 1 按下时选择整流正弦波,按键 2 按下时选择方波,并 在数码管上显示,其他的按键按下是数码管清零。 B、在主函数中控制键盘和显示,在定时中断函数中输出波形,保证显 示和波形输出互不干扰。 C、利用查表法产生波形。 智能仪器课程设计-测控 08-4 Page3 (2)显示函数流程图和扫描按键函数流程图 开始 初始化 设置位选 读取显示 结果 发送显示 结果 延时 清屏 显示是 否结束 返回 Y N 开始 初
4、始化 判断有无 键按下 延时去抖 移位判断 按键 显示 判断按键 是否松开 返回键值返回0xFF 返回 是否是此 键按下 Y Y Y N N N 七:电路原理图七:电路原理图 注:电路原理图由注:电路原理图由 Altium Designer绘制绘制 智能仪器课程设计-测控 08-4 Page4 (1)单片机最小系统原理图 (2)键盘 矩阵键盘 (3)数码管及二极管 智能仪器课程设计-测控 08-4 Page5 八八.程序设计:程序设计: #include #include #include #define PCF8591 0x90 /PCF8591 地址 #define uchar unsig
5、ned char #define uint unsigned int #define ulong unsigned long #define delayNOP(); _nop_();_nop_();_nop_();_nop_(); extern uchar dis_buf; /显示缓存 uchar temp; uchar key; /键顺序码 sbit LS138A=P22; sbit LS138B=P23; sbit LS138C=P24; uchar code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f; / LED 编码 0-9 uchar code hello8= 0x76,0x79,0x38,0x38,0x3f,0x00,0x00,0x00; /HELLO /*上半波整流正弦波编码表*/ uchar code sin_table= 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c, 0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba, 智能仪器课程设计-测控 08-4 Page6 0xbc,0xbf,0xc2