单片机实验四
- 格式:doc
- 大小:464.50 KB
- 文档页数:14
信息工程学院实验报告实验项目名称:实验四声音传感器实验实验时间:班级:姓名:学号:一、实验目的1. 学习CC2530 单片机GPIO 的使用。
2. 学习声音传感器的使用二、实验原理1. CC2530 节点与三轴加速度传感器的硬件接口(1). 声音传感器模块(MIC)引脚GND:外接GNDDO:数字量输出接口(0 和1)+5V:外接5V 电源(2). 传感器模块与2. GPIO(1). 简介CC2530单片机具有21个数字输入/输出引脚,可以配置为通用数字I/O或外设I/O信号,配置为连接到ADC、定时器或USART外设。
这些I/O口的用途可以通过一系列寄存器配置,由用户软件加以实现。
I/O端口具备如下特性:●21个数字I/O引脚●可以配置为通用I/O或外部设备I/O●输入口具备上拉或下拉能力●具有外部中断能力。
这21个I/O引脚都可以用作于外部中断源输入口。
因此如果需要外部设备可以产生中断。
外部中断功能也可以从睡眠模式唤醒设备。
(2). 寄存器简介本次实验中主要涉及到GPIO的寄存器如下:3. MIC 声音传感器(1). 概述声音传感器的作用相当于一个话筒(麦克风)。
它用来接收声波,显示声音的振动图象。
但不能对噪声的强度进行测量。
该传感器内置一个对声音敏感的电容式驻极体话筒。
声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。
这一电压随后被转化成0-5V 的电压,经过比较器转换数字信号后,被数据采集器接受,并传送给计算机。
传感器特点:●具有信号输出指示。
●输出有效信号为低电平。
●当有声音时输出低电平,信号灯亮。
应用范围:●可以用于声控灯,配合光敏传感器做声光报警,以及声音控制,声音检测的场合。
(2). 使用方法本实验利用CC2530 的GPIO 读取声音传感器模块的检测结果输出端,当检测到一定的声音时,此输出端为低电平;未检测到一定的声音时,此输出端为高电平。
因此在实际应用中可以根据这种情况判断是否有声音在传感器附近产生。
厚德博学和而不同单片机与应用技术实验学院:电气与信息工程学院专业:电气工程及其自动化年级:学号:学生姓名:指导教师:二〇一三年一月四日实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作;3、学习简单程序的基本调试方法。
二、实验内容:将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART:MOV R1,#10HMOV R0,#70HMOV DPTR,#2000HMOV 70H,#01HMOV 71H,#02HMOV 72H,#03HMOV 73H,#04HMOV 74H,#05HMOV 75H,#06HMOV 76H,#07HMOV 77H,#08HMOV 78H,#09HMOV 7AH,#0AHMOV 7BH,#0BHMOV 7CH,#0CHMOV 7DH,#0DHMOV 7EH,#0EHMOV 7FH,#0FHLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R1,LOOPEND三、实验报告(1)、说明实验操作的基本步骤;1.打开伟福或者Keil,本报告中使用的是伟福。
进行相关参数的设置,选择仿真器。
2.选择文件菜单下新建命令,在新建页面的空白处输入程序,输入完毕后选择文件菜单下的保存命令,文件的后缀名需要保存为“.ASM ”格式。
3.选择项目菜单下编译指令,软件下方会出现“ .BIN ”和“ .HEX ”文件,如有错误,下方会出现Error字样,双击该处,相应的程序会变成红色,修改之后重新进行编译,知道没有错误。
4.单击左侧对话框中的Watch中可以添加观察项,选择执行菜单下,添加观察项的命令,填入2000H,缺省方式前面的勾取消,存储区域选择XDA TA。
再选择执行菜单下的全速运行,观察左侧对话框中XDA TA选项卡的变化,如果出现问题也可选择但不运行,每次按下F8会运行一步,便于检查错误。
单片机实习报告四篇单片机实习报告篇1一实习目的1.通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;2.通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;3.掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);4.通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。
5.培养学生解决实际问题的能力,提高对理论知识的感性认识。
二实习意义通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。
在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。
达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。
三系统基本组成及工作原理1系统基本组成系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。
流水灯部分由单片机、键盘模块等组成;四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;按键功能部分通过按键控制流水灯部分、四位数码显示部分;电子钟部分由单片机、键盘模块、液晶显示模块等组成;使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。
2系统工作原理本设计采用STC89C52RC单片机作为本系统的控制模块。
单片机可把由ADC0809及单片机中的数据利用软件来进行处理,从而把数据传输到显示模块,实现阻值大小的显示。
以数码管显示为显示模块,把单片机传来的数据显示出来。
单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。
二.实验仪器单片机开发板一套,计算机一台。
三.实验任务编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。
开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。
两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。
而U2的锁存使能端LE由P2.1控制,所以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。
当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。
汇编语言程序流程如图4-2:四.实验步骤:1.数码管的0~9的字型码表如下:2.参考图4-2所给的程序流程图编写实验程序。
(注:以下程序为两位60秒计数程序)#include sbit wei=P2^0; sbit duan=P2^1;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。
单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。
二.实验仪器单片机开发板一套,计算机一台。
三.实验任务编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。
开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。
两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。
而U2的锁存使能端LE由P2.1控制,所以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。
当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。
汇编语言程序流程如图4-2:四.实验步骤:1.数码管的0~9的字型码表如下:2.参考图4-2所给的程序流程图编写实验程序。
(注:以下程序为两位60秒计数程序)#include sbit wei=P2^0; sbit duan=P2^1;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。
Cortex-M4实验指导书陈朋 编写浙江工业大学信息工程学院2014.9前言本系列实验适用于单片机初学者。
通过系列实验的训练,学习者可以对单片机程序开发的过程有初步了解,能使用集成开发环境Code Composer Studio进行简单的单片机系统应用开发。
如果想精通单片机,仅仅靠这些实验是不够的,需要在更多的项目实践中训练提高。
实验内容按照由浅入深的顺序组织。
其中实验一和实验二为CCS环境的熟悉与基本使用,实验三至实验六为验证性实验,实验七至实验十二为设计性实验,实验十三为综合性实验。
教师可以根据课时进行全部实验或者选做其中部分。
指导书中所使用的实验扩展板是浙江工业大学设计的,核心板为TI公司制造的,型号为EK-TM4C1294XL。
开发软件环境为Code Composer Studio IDE 6.0以上。
实验注意事项1、实验前请做好预习,熟悉实验任务,了解所用仪器的使用方法和注意事项。
2、实验过程中,设备接通电源前,必须确认接线无误。
如实验中需更改接线,必须切断相关设备的电源后才能操作。
3、做实验时若发生异常现象(例如,元件发烫、有异味或冒烟等),应立即关断电源,保持现场,报告指导老师。
排除故障后,须经指导老师同意,才能继续实验。
4、实验操作完成后请关闭仪器设备电源,并将仪器设备按放回规定位置。
报告指导老师,经同意后可以离开。
5、实验后按照实验要求提交电子稿或者纸质实验报告。
抄袭者不得分。
目录前 言 (i)实验注意事项 (ii)目 录 (iii)实验一 GPIO接口实验 (4)实验二 矩阵按键操作实验 (14)实验三 PWM呼吸灯实验 (18)实验四 中断实验 (23)实验五 I2C编程及应用 (26)实验六 ADC操作实验 (32)实验七 并行ADC与DAC (36)实验八 三轴加速度传感器实验 (42)实验九 MicroSD卡操作实验 (49)实验十 TFT液晶显示实验 (55)实验十一 TFT LCD触摸控制实验 (62)实验十二 红外遥控接收编程实验 (67)实验十三 综合操作实验 (70)附录A TM4C1294管脚定义 (71)附录B EK‐TM4C1294XL核心板原理图 (75)附录C AY‐SCMP Kit开发板原理图 (81)附录D AY‐SCMP Kit开发板模块接口资源 (91)实验一GPIO接口实验一、实验目的1.掌握Code Composer Studio 6.0(以下简称CCS)的安装和配置步骤过程。
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019. 4.30 实验成绩:实验四外部中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。
(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。
(三)实验原理1.中断:计算机执行主程序过程中,由于临时重要事件,需要暂停当前程序的运行,转到中断服务程序去处理临时事件,处理完后又返回原程序的断点处继续运行。
图1STC15单片机的中断系统包含21个中断源,2个中断优先级,二级中断服务嵌套,中断允许寄存器IE、IE2和INT_CLKO控制中断允许。
中断优先级寄存器IP、IP2管理中断优先级。
同优先级中断同时提出中断请求时,由内部的查询逻辑确定响应次序。
中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:1)外部中断0(INT0):中断信号由P3.2引脚输入。
通过IT0来设置中断请求的触发方式。
当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。
2)外部中断1(INT1):中断信号由P3.3引脚输入。
通过IT1来设置中断请求的触发方式。
当IT1为“1”时,外部中断0为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。
2.LED数码管是显示数字和字母的常见显示器件,由8个发光二极管构成,结构如图2:图2段码:a、b、c、d、e、f、g、dp段的二进制代码(a为最低位),控制显示字型。
位选:公共端com,控制数码管是否显示。
3.数码管动态显示原理:任何时刻只有一个数码管处于显示状态,单片机采用“扫描”方式控制各个数码管轮流显示,通常将所有数码管段码线的相应段并联在一起,由一个8位I/O 端口控制。
实验四-MCS-51单片机外部中断实验实验目的:1. 学习MCS-51单片机的外部中断原理和使用方法;2. 掌握如何通过硬件中断和软件中断实现MCS-51单片机的响应机制;3. 了解MCS-51单片机外部中断的实际应用。
实验器材:MCS-51单片机开发板、按键开关、调试器。
实验原理:MCS-51单片机通过INT0和INT1两个硬件中断引脚实现外部中断。
当INT0外部中断线检测到低电平信号时,中断向量为0x0003;当INT1外部中断线检测到低电平信号时,中断向量为0x0013。
通过配置中断控制寄存器IE和TCON,可以实现对外部中断的使能、触发方式和优先级等的控制。
MCS-51单片机还可以通过软件方式实现外部中断,即通过软件方式扫描外部信号,并在检测到信号发生变化时触发相应的中断处理程序。
实现软件中断的方法是使用定时器功能,通过定时器中断触发中断服务程序,该程序扫描外部信号,并根据需要触发软件中断。
实验步骤:1. 将开发板上的按键开关连接到开发板的P3.2引脚。
按键开关按下时,P3.2引脚被拉低,可以触发外部中断。
2. 打开Keil μVision5软件,新建工程,选择芯片型号为STC89C52,保存并命名为“Exp4”。
3. 在主函数中声明中断函数,并在中断函数中打印提示信息。
4. 在主函数中初始化中断控制寄存器IE和TCON,开启INT0外部中断,并将中断优先级设置为最高。
5. 在主函数中使用无限循环,来保持程序一直运行,并定时打印提示信息,以验证程序是否正常运行。
6. 烧录程序到开发板上,先在开发板上不按下按键,观察是否正常打印提示信息。
然后按下按键,观察是否触发外部中断,进入中断函数并打印提示信息。
实验代码:#include<STC89C52.h>#include<stdio.h>// 定义外部中断0的中断服务函数void Interrupt0() interrupt 0{printf("External interrupt 0 has occured!\n");}// 打印提示信息printf("Program is running...\n");while(1){// 定时打印提示信息printf("Hello!\n");delay_ms(1000);}}注意事项:1. 写中断程序时,一定要注意将中断函数的声明放在程序开头,否则可能会出现中断无法触发的情况;2. 在使用中断相关功能的时候,务必仔细阅读数据手册中的相关章节,以确保正确使用并且避免出现不必要的错误;3. 在进行外部中断实验的时候,可以使用按键开关、光敏电阻等外部器件来模拟外部信号的变化,以测试程序的正确性。
《实验一 应用系统开发过程演示》实验报告参考一.实验目的1.了解单片机应用系统的开发过程,获得感性认识。
2.了解开发箱/开发板的使用方法3.了解仿真软件的基本功能和使用方法。
二.实验环境(一) EL 型微机教学实验系统:1. 设备::北京精议达盛科技有限公司EL-MUT3多CPU 单片机/微机实验实训系统2. 软件:北京精议达盛科技有限公司8051调试软件4.0版 二.实验电路(一) EL 型微机教学实验系统实验电路(二) 仿真软件开发调试环境: 1.英国 Labcenter electronics 公司的Proteus EDA 工具软件, 2. 美国Keil 公司的µVision 集成开发环境 (二) 仿真软件实验电路:三. 操作步骤:(一)EL 型微机教学实验系统操作步骤1. 连线:P1.0~P1.7接LED1~LED82. 新建汇编语言源文件3. 另存为D:\J08X\SY1.ASM4. F3编译生成目标文件,F5进入调试:工具栏上“R ”打开寄存器窗,“H ”打开反汇编窗口F8,单步执行,观察相关寄存器窗口中有关寄存器中数据的变化。
四. 源程序(括号中为EL 型微机教学实验系统中的程序)ORG 0000H (ORG 4000H ) SJMP MAIN (LJMP MAIN) ORG 0040 H (ORG 4100H) MAIN: MOV A,#0FEH LOOP: MOV P2,A (MOV P1,A ) LCALL D_1s RL A AJMP LOOP ;以下为延时子程序 D_Is: MOV R6,#100 ;1s D10ms: MOV R5,#40 :10ms DL: MOV R4,#123 N0P DJNZ R4,$ DJNZ R5,DL DJNZ R6,D10ms RET END(二) 仿真软件开发调试环境: ◆Proteus 工具软件下, 1.新建设计 ①选取元件 A T89C51,RES,LED-RED ②在工作区放置元件,地线,电源 电阻RES 阻值200Ω,模式DIGITAL ③连线 2. 源程序设计,生成目标文件代码 “Source →Add/RemoveFiles ”新建源程序文件D:\J08X\L Y1.ASM “Source → SY1.ASM ”在文本编辑器编写源程序 通过“Source →BuildAll ”编译源程序,生成目标程序。
实验四D/A转换一、实验目的1、熟悉DAC0832 内部结构及引脚。
2、掌握D/A转换与接口电路的方法。
二、实验原理1、DAC0832的引脚及功能DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
2 DAC0832的主要特性参数如下:分辨率为8位;电流稳定时间1us;可单缓冲、双缓冲或直接数字输入;只需在满量程下调整其线性度;单一电源供电(+5V~+15V);低功耗,200mW。
3 DAC0832结构:D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的范围为+5V~+15V;VREF:基准电压输入线,VREF的范围为-10V~+10V;AGND:模拟信号地DGND:数字信号地4 DAC0832的工作方式:根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式正弦波表格:// 正弦波一周期内采样256次unsigned char code sin[]={0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x80};三、实验内容1、产生连续方波信号,最大幅度为2V,频率为100Hz。
#include<>#include<>#define uchar unsigned char#define DAC0832 XBYTE [0x7fff]void delay(void);void main(void){uchar i;while(1){DAC0832=0;delay();DAC0832=100;delay();}}void delay(){uchar i,j;for(i=0;i<10;i++)for(j=0;j<120;j++);}2、产生连续锯齿波信号,频率为100Hz。
#include<>#include<>#define uchar unsigned char#define DAC0832 XBYTE [0x7fff] void delay(void);void main(void){uchar i;while(1){for(i=0;i<0xff;i++){DAC0832=i;delay();}}}void delay(){uchar i,j;for(i=0;i<8;i++);}3、产生连续三角波信号,周期为5ms。
#include<>#include<>#define uchar unsigned char#define DAC0832 XBYTE [0x7fff]void delay(void);void main(void){uchar i;while(1){for(i=0;i<100;i++){DAC0832=i;delay();}for(i=100;i>0;i--){DAC0832=i;delay();}}}void delay(){uchar i,j;for(i=0;i<2;i++);}4、产生连续正弦波信号,频率为200Hz。
#include<>#include<>#define uchar unsigned char#define DAC0832 XBYTE [0x7fff]void delay(void);unsigned char code sin[]={0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0x AE,0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0x D8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF 5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6, 0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xD A,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0 xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x 80,0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x5 1,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x 27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x 0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x0 9,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x 25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x 4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x8 0};void main(void){uchar i;while(1){for(i=0;i<0xff;i++){DAC0832=sin[i];DAC0832=sin[i];//yanshiDAC0832=sin[i];//yanshiDAC0832=sin[i];//yanshi//delay();}}}// void delay()// {// uchar i,// for(i=0;i<1;i++);// }5、在单片机的外部扩展一个4个按键的键盘。