东南大学_单片机_第九讲DAC实验

合集下载

单片机实验之DA转换实验

单片机实验之DA转换实验

一、实验目的1、掌握单片机与DAC0832的接口设计方法。

2、掌握Proteus软件与Keil软件的使用方法。

二、设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0832接口。

2、在单片机的外部扩展一个4个按键的键盘。

3、按下K0,产生连续方波信号。

4、按下K1,产生连续锯齿波信号。

5、按下K2,产生连续三角波信号。

6、按下K3,产生连续正弦波信号。

7、通过外接示波器观察波形。

三、电路原理图六、实验总结通过本次实验电路的设计,掌握了基本的DA转换电路单缓冲的设计;参考电压的选择;0832的片选;集成运放芯片的选择及接线;尤其是运放的反馈电阻,从而能够产生正常的波形。

七、思考题1、编程实现产生连续梯形波信号。

答:程序见程序清单。

四、实验程序流程框图和程序清单ORG 0000H/***********起始程序***********/START: LJMP MAINORG 0100H/***********监控程序***********/MAIN: MOV SP, #60HLOOP: LCALL KEYSSLJMP LOOPKEYSS: LCALL KEYJB ,KEYAAJB ,KEYBBJB ,KEYCCJB ,KEYDDJB ,KEYEERET/***********键功能程序*********/KEYAA: MOV R2 ,#00H ;锯齿波LOOP1: MOV DPTR ,#0000HMOV A ,R2MOVX @DPTR ,ADEC R2LCALL KEYSSLJMP LOOP1KEYBB: MOV DPTR ,#0000H ;矩形波LOOP2: MOV R3 ,#0FFHMOV A ,R3MOVX @DPTR ,ALCALL DELAYLCALL KEYSSMOV R3 ,#00HMOV A ,R3MOVX @DPTR ,ALCALL DELAYLCALL KEYSSLJMP LOOP2KEYCC: MOV R2 ,#00H ;三角波 MOV DPTR ,#0000HLOOP3: MOV A ,R2MOVX @DPTR ,AINC R2LCALL KEYSSCJNE R2 ,#0FFH ,LOOP3 LOOP4: MOV A ,R2MOVX @DPTR ,ADEC R2LCALL KEYSSCJNE R2 ,#00H ,LOOP4LJMP LOOP3KEYDD: MOV R2 ,#00H ;正弦波LOOP5: MOV DPTR ,#SINMOV A ,R2MOVC A ,@A+DPTRMOV DPTR ,#0000HMOVX @DPTR ,AINC R2LCALL KEYSSLJMP LOOP5KEYEE: MOV R2 ,#00H ;梯形波 MOV DPTR ,#0000HLOOP6: MOV A ,R2MOVX @DPTR ,AINC R2LCALL KEYSSCJNE R2 ,#0FFH ,LOOP6LCALL DELAY20msLOOP7: MOV A ,R2MOVX @DPTR ,ADEC R2LCALL KEYSSCJNE R2 ,#00H ,LOOP7LCALL DELAY20msLJMP LOOP6/*******常数表格***********/SIN:DB07FH ,082H ,085H ,088H ,08BH ,08FH ,092H ,095H ,098H ,09BH ,09EH ,0A1 H ,0A4H ,0A7H ,0AAH ,0ADHDB0B0H ,0B3H ,0B6H ,0B8H ,0BBH ,0BEH ,0C1H ,0C3H ,0C6H ,0C8H ,0CBH ,0CD H ,0D0H ,0D2H ,0D5H ,0D7HDB0D9H ,0DBH ,0DDH ,0E0H ,0E2H ,0E4H ,0E5H ,0E7H ,0E9H ,0EBH ,0ECH ,0EE H ,0EFH ,0F1H ,0F2H ,0F4HDB0F5H ,0F6H ,0F7H ,0F8H ,0F9H ,0FAH ,0FBH ,0FBH ,0FCH ,0FDH ,0FDH ,0FE H ,0FEH ,0FEH ,0FEH ,0FEHDB0FEH ,0FEH ,0FEH ,0FEH ,0FEH ,0FEH ,0FDH ,0FDH ,0FCH ,0FBH ,0FBH ,0FA H ,0F9H ,0F8H ,0F7H ,0F6HDB0F5H ,0F4H ,0F2H ,0F1H ,0EFH ,0EEH ,0ECH ,0EBH ,0E9H ,0E7H ,0E5H ,0E4 H ,0E2H ,0E0H ,0DDH ,0DBHDB0D9H ,0D7H ,0D5H ,0D2H ,0D0H ,0CDH ,0CBH ,0C8H ,0C6H ,0C3H ,0C1H ,0BE H ,0BBH ,0B8H ,0B6H ,0B3HDB0B0H ,0ADH ,0AAH ,0A7H ,0A4H ,0A1H ,09EH ,09BH ,098H ,095H ,092H ,08FH ,08BH ,088H ,085H ,082HDB07FH ,07CH ,079H ,076H ,073H ,06FH ,06CH ,069H ,066H ,063H ,060H ,05D H ,05AH ,057H ,054H ,051HDB04EH ,04BH ,048H ,046H ,043H ,040H ,03DH ,03BH ,038H ,036H ,033H ,031 H ,02EH ,02CH ,029H ,027HDB025H ,023H ,021H ,01EH ,01CH ,01AH ,019H ,017H ,015H ,013H ,012H ,010 H ,00FH ,00DH ,00CH ,00AHDB009H ,008H ,007H ,006H ,005H ,004H ,003H ,003H ,002H ,001H ,001H ,000 H ,000H ,000H ,000H ,000HDB000H ,000H ,000H ,000H ,000H ,000H ,001H ,001H ,002H ,003H ,003H ,004 H ,005H ,006H ,007H ,008HDB009H ,00AH ,00CH ,00DH ,00FH ,010H ,012H ,013H ,015H ,017H ,019H ,01A H ,01CH ,01EH ,021H ,023HDB025H ,027H ,029H ,02CH ,02EH ,031H ,033H ,036H ,038H ,03BH ,03DH ,040 H ,043H ,046H ,048H ,04BHDB04EH ,051H ,054H ,057H ,05AH ,05DH ,060H ,063H ,066H ,069H ,06CH ,06F H ,073H ,076H ,079H ,07CH/***********键扫子程序*********/KEY: LCALL KEYCHULIJZ EXITLCALL DELAYLCALL KEYCHULIJZ EXITMOV B ,20HKEYSF: LCALL KEYCHULIJZ KEY1POP PSWRET/*******延时子程序**********/ DELAY: MOV R7 ,#01H ;延时1ms DL1: MOV R6 ,#8EHDL0: MOV R5 ,#02HDJNZ R5 ,$DJNZ R6 ,DL0DJNZ R7 ,DL1RETDELAY20ms: MOV R6,#0D7H ;20ms DL2: MOV R5,#2DHDJNZ R5,$DJNZ R6,DL2NOPNOPRETEND五、实验结果(波形图)。

第九讲(DAC、ADC)

第九讲(DAC、ADC)

DGND

XFER WR +
DAC0832的引脚 第8章 模拟接口
DAC0832是CMOS工艺,双列直插式20引脚。 ① VCC电源可以在5-15V内变化。典型使用 时用15V电源。 ② AGND为模拟量地线,DGND为数字量地 线,使用时,这两个接地端应始终连在一起。 ③ 参考电压VREF接外部的标准电源,VREF 一般可在+10V到—10V范围内选用。
0 83 2
8位 输入 寄 存 器
LE1
8位 DAC 寄 存 器
LE2
8位 D/A 转 换 器
VREF
IOUT1
IOUT2

DGND
DAC0832的引脚 第8章 模拟接口
DAC0832是CMOS工艺,双列直插式20引脚。 ① VCC电源可以在5-15V内变化。典型使用 时用15V电源。 ② AGND为模拟量地线,DGND为数字量地 线,使用时,这两个接地端应始终连在一起。 ③ 参考电压VREF接外部的标准电源,VREF 一般可在+10V到—10V范围内选用。
DAC0832的引脚 第8章 模拟接口
DAC0832是CMOS工艺,双列直插式20引脚。 ① VCC电源可以在5-15V内变化。典型使用 时用15V电源。 ② AGND为模拟量地线,DGND为数字量地 线,使用时,这两个接地端应始终连在一起。 ③ 参考电压VREF接外部的标准电源,VREF 一般可在+10V到—10V范围内选用。
为数模(D/A)转换器和模数(A/D)转换器。
CPU与模拟外设之间的接口电路称为模拟接口。 在这一章里将介绍单片机与 A/D及D/A转换器接口,以及有关的应用。
第8章 模拟接口
8.2
DAC及其接口

单片机c语言程序设计---DA转换实验报告

单片机c语言程序设计---DA转换实验报告

单片机c语言程序设计---D/A转换实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称: D/A转换实验一、实验目的和要求1.掌握数模转换的概念2.掌握D/A转换芯片DAC0832的功能及特点,掌握与单片机的接口3.掌握D/A转换芯片DAC0832的c语言编程实例二、实验内容和原理实验1.信号发生器功能:使用DAC0832用作信号发生器,编写产生锯齿波、三角波和方波的程序。

本次项目中,DAC0832采用单缓冲单极性的线选法接线方式,其选通地址为7FFFH。

(1)硬件设计使用P1口接3个独立的按键S01、S02、S03,当按下S01时输出锯齿波,按下S02时输出三角波,当按下S03时输出方波。

电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。

在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。

启动仿真,观察仿真结果。

三、实验要求:1.完成信号发生器实验。

具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。

完成思考题。

四、操作方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。

2.在keil上进行编译后生成“xxx.hex”文件。

3.编译好的“xxx.hex”文件加入AT89C51。

启动仿真,观察仿真结果。

五、实验结果与分析void main(){while(1){while( K01==0 ) //生成锯齿波{for(cDigital=0;cDigital<=250;cDigital++){TransformData(cDigital);//进行数模转换}}while( K02==0 ) //生成三角波{for(cDigital=0;cDigital<=250;cDigital++){TransformData(cDigital);//进行数模转换}for(cDigital=250;cDigital>=0;cDigital--){TransformData(cDigital);//进行数模转换}}while( K03==0 ) //生成方波{TransformData(0);//进行数模转换Delay(500);TransformData(250);//进行数模转换Delay(500);}}}六、讨论和心得。

实验一指导书_DA转换实验

实验一指导书_DA转换实验

第三章 实验项目及指导
实验一 D/A 转换实验
一、实验目的
1、了解D/A 转换的基本原理。

2、了解D/A 转换芯片0832的性能及使用方法。

3、学习单片机系统中扩展D/A 转换器的基本方法。

二、实验内容
利用实验系统上提供的由DAC 0832构成的D/A 转换电路,编制程序产生锯齿波、三角波、正弦波。

三种波轮流显示,用示波器观看。

三、实验电路及连线
用电压表或示波器探头接(-5V ~+5V )输出端,观察显示电压或波形。

四、实验说明
1、实验台上D/A 转换电路输出的是模拟电压信号。

要实现实验要求,必须编写产生三种波形的程序,在系统上运行,并通过示波器来观看波形。

2、产生锯齿波和三角波只需由输出数字量的增减来控制,同时要注意三角波要分段来产生。

要产生正弦波,较简单的方法是造一张正弦数字量表。

即查函数表得到的值转换成十六进制数填表。

D/A 转换取值范围为一个周期,采样点越多,精度越高。

3、8位D/A 转换器的输入数据与输出电压的关系为
U(0~-5V)=Uref/256×N
U(-5V ~+5V)=2·Uref/256×N-5V (这里 Uref 为+5V)
五、实验程序框图
实现正弦波波形的程序框图如下: 连线 连接孔1 连接孔
2 1 DA_CS CS2 2 -5V-+5V 电压表
CS0。

东南大学 单片机 实验报告

东南大学 单片机 实验报告

测控系统设计技术实验指导书东南大学仪器科学与工程学院2011年9月前言本教程适用于测控类及弱电类专业大学本科生以下课程的实验和实践教学:《智能仪器原理与设计技术》、《测控技术及系统设计》等;也适用于测控类及弱电类专业硕士研究生以下课程的实验和实践教学:《智能仪器设计》、《智能测控系统设计》等。

实验装置采用模块化设计,将有相互联系的各专业课程的实验组合起来,包含这些专业课程需要的若干单个实验,最后形成“从传感器→前置调理、接口电路→A/D转换电路→计算机(单片机)→后置接口、驱动电路→测控对象”接近实际应用系统的综合实验。

训练和提高学生在软、硬件设计调试方面的能力。

同时,帮助学生将各专业课程内容综合起来,融会贯通,形成系统的概念,迅速迈过从理论到实际的门槛。

本实验装置的操作过程在设置上尽量接近实际应用系统的设计调试过程。

学生做完实验后,就能够独立进行实际应用系统的软、硬件设计调试。

大多数实验的内容都设置了基本要求和高级要求,能够满足不同层次学生的需要。

实验装置“XYZ22型综合实验仪”获江苏省教育厅2000年自制实验仪器设备评比三等奖。

东南大学仪器科学与工程学院祝学云2011年9月目录第一章实验设备介绍 (1)一.实验设备的联接 (1)二.伟福(WAVE)G6W型单片机仿真开发器使用简介 (1)三.综合实验仪介绍 (2)第二章基本程序设计实验 (11)实验一数据传送实验 (11)实验二多字节十进制加法实验 (13)第三章 I/O口(8255)扩展及外部中断实验 (15)实验三8255输入输出实验 (15)实验四外部中断实验 (18)第四章显示器、键盘及BCD拨码盘扩展实验 (21)实验五动态LED显示实验 (21)实验六BCD拨码盘扩展实验 (25)实验七键盘显示器扩展实验 (28)第五章计数器定时器实验 (32)实验八计数器实验 (32)实验九定时器(时钟)实验 (35)第六章串行通信实验 (39)实验十串行口实验 (39)实验十一键盘键值远距离传输实验 (44)第七章 D/A实验 (49)实验十二D/A转换实验(DAC0832) (49)实验十三程控放大器实验 (51)实验十四程控信号发生器实验 (54)第八章 A/D转换实验 (49)实验十五A/D转换实验(ADC0809) (59)实验十六A/D转换实验(ICL7135) (62)第九章数据处理程序设计实验 (66)实验十七数字滤波程序设计实验 (66)实验十八非线性校正及标度变换程序设计实验 (72)第十章测量与控制实验 (81)实验十九频率测量实验 (81)实验二十温度测量实验 (86)实验二十一温度测量控制实验 (99)第十一章自主设计型实验 (125)实验二十二简易数字电压表设计 (125)实验二十三简易温度测量系统设计 (127)实验二十四简易温度测量控制系统设计 (130)附录实验仪面板示意图 (133)第一章实验设备介绍一、实验设备的联接图1-1 设备联接1、单片机仿真开发器通信电缆接PC机串行口1或2;2、单片机仿真开发器仿真头接实验仪;3、根据实验需要,实验仪接或不接测量控制对象;4、先接通仿真器电源,再接通实验仪电源;5、实验过程中,需要连接硬件模块的,先关闭电源再接线,检查正确后打开电源。

东南大学单片机实验报告

东南大学单片机实验报告

《单片机应用系统设计》实验报告姓名:学号:院系:仪器科学与工程学院专业:测控技术与仪器实验室:机械楼5楼同组人员:评定成绩:审阅教师:软件实验一数据传送实验一、实验目的1、熟悉单片机仿真开发器的使用;2、掌握编程方法;3、掌握8051内部RAM的数据操作二、实验内容内部RAM 40H~4FH单元置数A0H~AFH,然后将40H~4FH单元内容送到内部RAM50H~5FH 单元中。

编辑、编译、运行程序,检查内部RAM中的结果。

三、实验程序ORG 0000HRESET: AJMP MAINORG 003FHMAIN: MOV R0,#40HMOV R2,#10H;提高时将10H改为20HMOV A,#0A0H;提高时将0A0H改为00HA1: MOV @R0,AINC R0INC ADJNZ R2,A1MOV R0,#40HMOV R1,#50H;提高时将50H改为60HMOV R2,#10H;提高时将10H改为20HA2: MOV A,@R0MOV @R1,AINC R0INC R1DJNZ R2,A2A3: SJMP A3四、实验结果实验显示RAM的40H~4FH以及50H~5FH的内容都为A0H~AFH。

五、实验提高修改程序:将所置的数改为00H~1FH,置数单元和传送单元分别改为内部RAM的40H~5FH、60H~7FH。

思考:见实验程序注释部分。

软件实验二多字节十进制加法实验一、实验目的掌握MCS-51汇编语言程序设计方法二、实验内容多字节十进制加法;加数存储单元首地址由R0指出,被加数和结果的存储单元首地址由R1指出,字节数由R2指出;编辑、编译、运行程序,检查内部RAM中的结果。

三、实验程序加数存储单元为:31H、30H,被加数存储单元为:21H、20H,结果存储单元为:22H、21H、20H。

--------------------------------------------------------------------------------------------------------------------------------- ORG 0000HRESET: AJMP MAINORG 0100HMAIN: MOV SP,#60HMOV R0,#31HMOV @R0,#22H ;提高时将加数高位22H改为自定义的数的高位(如45H)DEC R0MOV @R0,#33H ;提高时将加数低位33H改为自定义的数的低位(如34H)MOV R1,#21HMOV @R1,#44H ;提高时作为被加数的高位被修改(如改为35H)DEC R1MOV @R1,#55H ;提高时作为被加数的低位被修改(如改为56H)MOV R2,#02HACALL DACEHERE: SJMP HEREDACE: CLR CDAL: MOV A,@R0ADDC A,@R1DA AMOV @R1,AINC R0INC R1DJNZ R2,DALCLR AMOV ACC.0,CMOV @R1,ARET四、实验结果被加数单元地址(21H)(20H)加数单元地址(31H)(30H)+)结果单元地址(22H)(21H)(20H)被加数数值35H56H加数数值22H33H+)结果数值00H66H88H五、实验提高修改加数和被加数(十进制数),重复运行程序。

单片机实验DA转换器DAC0832的应用的报告

单片机实验DA转换器DAC0832的应用的报告

单片机应用技术课程报告实验名称D/A转换器DAC0832的应用实验时间2020年6月30 日学生姓名实验地点钉钉群线上同组人员专业班级1、实验目的(1)了解D/A转换与单片机的接口方法;(2)了解D/A转换芯片DAC0832的性能及编程方法(3)掌握D/A转换的程序设计方法。

2、任务设计要求(1)掌握实验原理,读懂实验线路图,了解所用到的元器件特性。

(2)会绘制电路原理图,会连接电路原理图。

(3)将编制的锯齿波、方波程序运行,用示波器观察波形。

使用STC89C51单片机、DAC0832芯片,设计一个波形发生器,能产生正弦波、方波、三角波、锯齿波,梯形波,要求通过编程实现不同波型的产生,通过按键实现不同波形输出的切换。

3、总体设计方案4、硬件电路设计5、软件程序设计#include<absacc.h>#include<reg51.h>#define DAC0832 XBYTE[0x7fff]sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int flag5=0;unsigned char code zhengxian[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5, 0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9, 0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6, 0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9, 0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9, 0xf8,0xf7,0xf6,0xf4,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9, 0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5, 0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d, 0x7a,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55, 0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31, 0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15, 0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04, 0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0c,0x0d,0x0e,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c, 0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b, 0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60, 0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};void delay()//延时程序{int i;for(i=0;i<1000;i++);}void panduan (void)//函数panduan用于扫描按键状态判断输出波形{if (k1==0){//按键消抖delay();if (k1==0)//通过赋值flag选择波形flag1=1;flag2=0;flag3=0;flag4=0;flag5=0;}if(k2==0){delay();if (k2==0)flag1=0;flag2=1;flag3=0;flag4=0;flag5=0;}if (k3==0){//补充程序flag1=0;flag2=0;flag3=1;flag4=0;flag5=0;。

东南大学_单片机_第九讲DAC实验

东南大学_单片机_第九讲DAC实验

第九讲 msp430液晶控制器和DAC实验04011003 杨阳一、实验目标:(1) 了解MSP430 的段式LCD 资源和特性;(2) 掌握MSP430 的段式LCD 编程以及控制。

(3) 了解DAC 数模转换原理;(4) 学习配置MSP430F6638 的DAC 控制寄存器参数,能够用DAC 产生输出电压,并能输出一定规则的波形(如三角波,正弦波等);(5)了解硬件发声原理,编程实现让DAC 模块驱动扬声器唱歌。

二、实验内容:课堂验收实验:实验内容:①基本:使DAC0输出正弦波频率为300Hz,在LCD上显示频率;②提高:用按键控制DAC0输出正弦波频率为在100Hz—1000Hz循环输出,步进值为100Hz,并在LCD上显示频率;实验原理:1、msp430液晶显示原理MSP430 液晶显示原理 MSP430 的液晶显示有静态、2MUX、3MUX、4MUX 四种显示模式,而最常用还是4MUX 模式。

通俗讲,就是有四个公共端(相当于数码管扫描显示的位选端)、若干个驱动端的模式。

这种模式的最大优点就是能使用最少的引脚提供最多的液晶显示段。

图1 表示了4MUX 显示模式下的公共端与驱动端,其中(a)说明了一个”8”字的四个公共端,(b)说明了两个驱动端,当分别给公共端与驱动端液晶信号时,就显示对应的数码。

在MSP430 系列能驱动液晶显示的单片机中,专门开辟了一片存储空间(LCDMEM1~LCDMEM20)存放要显示的信息,被称为液晶显示缓存,简称液晶显存。

MSP430F6638 共有20 字节单元液晶显存,如果使用4MUX 方式显示,可以显示160 段液晶笔画。

这时,每个显存将对应两个驱动端。

段式LCD 的驱动方法基本上和数码管是不太一样的,数码管只要给电和选通就亮。

但是段式LCD 的驱动是靠两部分组成的:第一部分:不间断的电压脉冲第二部分:选通管脚总体的步骤就是,我们将LCD 的段码先整理好,然后放在一边备用,等到你想显示某个数据的时候,只要将这个8 位的段码直接写入单片机留给你的LCD 寄存器写入端口数组就可以了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九讲 msp430液晶控制器和DAC实验04011003 杨阳一、实验目标:(1) 了解MSP430 的段式LCD 资源和特性;(2) 掌握MSP430 的段式LCD 编程以及控制。

(3) 了解DAC 数模转换原理;(4) 学习配置MSP430F6638 的DAC 控制寄存器参数,能够用DAC 产生输出电压,并能输出一定规则的波形(如三角波,正弦波等);(5)了解硬件发声原理,编程实现让DAC 模块驱动扬声器唱歌。

二、实验内容:课堂验收实验:实验内容:①基本:使DAC0输出正弦波频率为300Hz,在LCD上显示频率;②提高:用按键控制DAC0输出正弦波频率为在100Hz—1000Hz循环输出,步进值为100Hz,并在LCD上显示频率;实验原理:1、msp430液晶显示原理MSP430 液晶显示原理 MSP430 的液晶显示有静态、2MUX、3MUX、4MUX 四种显示模式,而最常用还是4MUX 模式。

通俗讲,就是有四个公共端(相当于数码管扫描显示的位选端)、若干个驱动端的模式。

这种模式的最大优点就是能使用最少的引脚提供最多的液晶显示段。

图1 表示了4MUX 显示模式下的公共端与驱动端,其中(a)说明了一个”8”字的四个公共端,(b)说明了两个驱动端,当分别给公共端与驱动端液晶信号时,就显示对应的数码。

在MSP430 系列能驱动液晶显示的单片机中,专门开辟了一片存储空间(LCDMEM1~LCDMEM20)存放要显示的信息,被称为液晶显示缓存,简称液晶显存。

MSP430F6638 共有20 字节单元液晶显存,如果使用4MUX 方式显示,可以显示160 段液晶笔画。

这时,每个显存将对应两个驱动端。

段式LCD 的驱动方法基本上和数码管是不太一样的,数码管只要给电和选通就亮。

但是段式LCD 的驱动是靠两部分组成的:第一部分:不间断的电压脉冲第二部分:选通管脚总体的步骤就是,我们将LCD 的段码先整理好,然后放在一边备用,等到你想显示某个数据的时候,只要将这个8 位的段码直接写入单片机留给你的LCD 寄存器写入端口数组就可以了。

在MSP430F6638 里面也就是 LCDMEM[ ]; [ ]中应该写的是要显示的位,这个位是数码管上面的位置,比如你想显示液晶上面的第2 位数,先不说要显示的内容是什么,这里的位选应该是 LCDMEM[1], 因为是从0 开始的,所以第二位应该是 LCDMEM[1].(从091H 开始------到0A4H 每个地址都可以存一个8 段)然后说显示的内容:2、DAC原理DA 转换,即把数字信号转换为模拟信号输出。

简单的说,就是把数字信号按照一定的参考电压转换成电压值输出。

参考电压控制位DAC12SREFx 有{0,1,2,3}四种模式用于选择DAC12_A 模块的参考电压,分别对应2.5V、2.0V 或1.5V 的内部参考电压、A Vcc 电压和外部参考电压。

数字数据存储在DAC12_0DAT 中,DAC12LSELx 用于锁存数据,控制更新电压的更新输出。

DAC12RES 控制选择输出数据8 位和12 位的分辨率,DAC12IR 和DAC12OG 控制输出电压的倍率。

为了输入输出的准确和稳定,DAC12AMPx 位可根据DAC 输入和输出运放的电流消耗设置稳定时间。

并且,DAC12_A 具有输出矫正功能,通过置位DAC12CALON 位进行自动校正。

在校正之前,需置位DAC12AMPx,校正完成后,DAC12CALON 会自动复位。

在输出应该设置DAC12AMPx 位并进行自动校正。

DAC_A 模块原理实验现象:1、基础部分2、提高部分如图所示,实现了按键切换频率和LCD段码显示。

分析:在实现不同频率时,将一个周期的正弦波分成90个点,每两个点之间的时间间隔=时钟乘以一开始定义在数组里的分频因子,分频因子不同,出来的频率就不同。

关键代码:int sin_table[90];uint sin_data_pr;uint fre_term_pr;int m=1,n;int j;double i;uintfre_term[10]={443,223,147,110,88,73,63,55,4 8,43}; //分频因子if(fre_term_pr<9){fre_term_pr++;m=fre_term_pr+1;}else{fre_term_pr=0;m=fre_term_pr+1;}TA0CCR0=fre_term[fre_term_pr];P2IFG&=~BIT6;if(fre_term_pr==9){LCDMEM[2] = char_gen[1];LCDMEM[3] = char_gen[0];LCDMEM[4] = char_gen[0];LCDMEM[5] = char_gen[0];delay_ms(1000);}else{LCDMEM[2] = 0;LCDMEM[3] = char_gen[m];LCDMEM[4] = char_gen[0];LCDMEM[5] = char_gen[0];delay_ms(1000);}break;case 16://p2.7if(fre_term_pr>0){fre_term_pr--;m=fre_term_pr+1;}else{fre_term_pr=9;m=fre_term_pr+1;}TA0CCR0=fre_term[fre_term_pr]; P2IFG&=~BIT7;if(fre_term_pr==9){LCDMEM[2] = char_gen[1];LCDMEM[3] = char_gen[0];LCDMEM[4] = char_gen[0];LCDMEM[5] = char_gen[0];delay_ms(1000);}else{LCDMEM[2] = 0;LCDMEM[3] = char_gen[m];LCDMEM[4] = char_gen[0];LCDMEM[5] = char_gen[0];delay_ms(1000);}break;}}#pragma vector=TIMER0_A0_VECTOR __interrupt void TIMER0_A0_ISR(void) {DAC12_0DAT=sin_table[sin_data_pr];sin_data_pr++;if(sin_data_pr==90) sin_data_pr=0;}思考题(1)(1)MSP430系列单片机液晶驱动模块有哪些驱动方法?答:有4种驱动方法:静态、2‐mux、3‐mux、4‐mux(2)MSP430系列单片机液晶驱动模块包括哪些功能结构?答:闪烁存储器、LCD存储器、段输出控制、公共端输出控制、闪烁和显示控制、闪烁分频器、模拟电压多路选择器、LCD偏压生成器等。

(3)MSP430系列单片机液晶驱动模块显示缓存有什么特点?和普通的存储单元有什么不同?答:液晶显示缓存器各个位与液晶的段一一对应。

存储位置位则可以点亮对应的液晶段存储位复位液晶段变暗。

段、公共极输出控制能够自动从显示缓存器读取数据,送出相应信号到液晶玻璃片上。

因为不同器件驱动液晶的段数不同,所以液晶显示缓存器的数量也不一样。

数量越大,驱动能力越强,显示的内容就越多。

(4)常见液晶显示的类型有哪些?答:段式液晶、字符式液晶、图形式液晶(5)MSP430系列单片机液晶驱动模块有哪些特点?答:特点如下:具有显示缓存器所需的SEG、COM信号自动产生多种扫描频率每个闪烁段都有独立的闪烁存储器稳压电荷泵软件实现反向控制显示缓存器可作为一般存储器4种驱动方法思考题(2)(1)简述DAC的主要性能参数。

答:分辨率(n):DAC转换器使用的位数, D/A转换器模拟输出电压可能被分离的等级数。

输入数字量位数越多,分辨率越高。

所以,在实际应用中,常用数字量的位数表示D/A 转换器的分辨率。

转换速度:转换速率(SR)——在大信号工作状态下模拟电压的变化率。

建立时间(t set)——当输入的数字量发生变化时,输出电压变化到相应稳定电压值所需时间。

最短可达0.1μS。

单调性: 转换器的模拟输出值与数字输入值同增同减.偏移误差: 当输入的数字量为0时,DAC输出的模拟量的大小。

温度系数:在输入不变的情况下,输出模拟电压随温度变化产生的变化量。

一般用满刻度输出条件下温度每升高1℃,输出电压变化的百分数作为温度系数。

(2)简述MSP430单片机DAC12模块的特点。

答:• 12位单调输出• 8位或12位电压输出分辨率•可编程的时间对能量的消耗•内部或外部参考电压•二进制或二进制补码形式•具有自校验功能•多路DAC同步更新•可直接用存储器存储(DMA)总结:这次的实验与前几次实验相比,对我们的代码理解修改能力要求更高,让我们初步熟悉了段式LCD的控制与编程,了解了DAC数模转换的原理,以扬声器为例初步学习了硬件发声原理。

更重要的是学会了单片机学习的方法,对类似的问题知道如何着手解决,为将来更深入的学习打下了坚实的基础。

相关文档
最新文档