




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 一、概述二、数码管接口设计三、LCD液晶接口设计四、发声电路设计 五、LED点阵显示屏 数码管是一种应用很普遍的显示器件,从单片机、ARM到许多微型机控制系统及数字化仪器仪表中都用到数码管作为显示输出。 a b c d e f g h a b c d a f b e f g h g e c d (a) 外 形 图 (b ) 共 阴 极 (c) 共 阳 极 + VC C a b c d e f g h 数码管的主要部分是七段发光二极管;数码管分为共阴极和共阳极两种;为了保护各段LED,需外加限流电阻。有的产品还附带有一个小数点,故有人叫其为八段式发光二极管。共阴极编码管共阳极编码管通过段选端可
2、以控制数码管显示内容;位选端用于控制整个数码管是否工作:共阴极数码管,位选端要接地;共阳极数码管,位选端要接高电平一位数码管接口电路(共阴极) n 动态显示动态显示技术主要是利用了人眼的视觉暂留原理。人眼的视觉暂留时间约为100ms 。n在动态显示方式下,将各个显示位的段选端并联在一起,实现各显示位的分时选通。 实验目的:实验目的:通过实验,理解数码管显示原 理,会编写数码管驱动程序。实验内容:实验内容:控制数码管显示00009999。1.2 实验目的与内容实验板上采用了4位一体的数码管,数码管4条位选线连接ARM的通用I/O口;数码管的8个段选端连接74HC595芯片的并行I/O输出接口,7
3、4HC595再与ARM的SPI0模块进行通信,接收ARM发送过来的数据。IO2DIR = IO2DIR | smgA1;HC595_Init ();/初始化SPI0(时序与74HC595相匹配)/-数码管显示数据(09显示码)-uint8 const NumberTube_TAB10=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x98;/* 名称:NumbTube_Display(uint32 data,uint8 radix_point)* 功能:控制数码管显示数据。* 入口参数:data需要显示的数据*radix_poin
4、t小数点的位置,取值范围为4、3、2*/void NumbTube_Display(uint32 data,uint8 radix_point) uint32 j,one,ten,hundred,thousand; /个,十,百,千,的变量声明 thousand = data / 1000;/计算千位if(thousand != 0) data -= thousand*1000;hundred = data / 100;/计算百位if(hundred != 0) data -= hundred*100; ten = data / 10;/计算十位if(ten != 0) data -= ten
5、*10; one = data % 10;/计算个位 /-显示千位数据- if(radix_point=4)HC595_SendData(NumberTube_TABthousand & 0 x7f); elseHC595_SendData(NumberTube_TABthousand);NumbTube_Bit(0 x01);/打开显示千位的位选端,见后面程序for(j=0;j500;j+);/小段延时/-显示百位数据-if(radix_point=3)HC595_SendData(NumberTube_TABhundred & 0 x7f);elseHC595_SendDa
6、ta(NumberTube_TABhundred);NumbTube_Bit(0 x02);for(j=0;j500;j+);/-显示十位数据-if(radix_point=2) HC595_SendData(NumberTube_TABten & 0 x7f);elseHC595_SendData(NumberTube_TABten);NumbTube_Bit(0 x04);for(j=0;j500;j+);/-显示个位数据- HC595_SendData(NumberTube_TABone);NumbTube_Bit(0 x08);for(j=0;j500;j+);elseIO0S
7、ET = smgA4;/* 名称:main()* 功能:控制数码管显示,完成实验内容*/int main(void) uint32 i;NumbTube_Init();for(i=1;i9999;i+)DelayMS(10);NumbTube_Display(i,0);return(0);00009999。1.5 实验步骤与结果液晶显示原理液晶显示原理 液晶是一种介于固体和液体之间,具有规则性分子排列的有机化合物,既有晶体所特有的各向异性造成的双折射性,又有液体所特有的流动性。(a) 液体分子 (b)液晶分子1.1 液晶显示屏分类1.2 液晶模块LM20681.3 液晶显示模块的接口特性 LM
8、2068液晶显示模块的系统方框图 1.4 LM2068S的引脚定义LM2068的读/写时序图 1.5 LM2068S的时序注意:当MCU与LM2068进行通信时,必须满足以上LM2068的时序要求。上电后,/RST保持低电平至少5ms以上,低电平拉高后至少保持800ms再对模块进行软件初始化。LM2068S的时序1.6 LM2068S的接口电路1.7 LM2068S的指令系统-显示区域显示区域在显示RAM中的起始位置是SAD,终止位置是SAD+(SL*AP),实际显示空间大小是SAD+(SL*C/R)。 显示区域结构示意图 LM2068S模块中的指令大致分为4部分:系统控制、显示控制、光标控制
9、和数据操作指令。LM2068S的指令系统-指令表 SYSTEM SETSYSTEM SET指令代码指令代码 40H40H 指令描述:指令描述:该指令是模块的软件初始化设置指令。POWER SAVE POWER SAVE 指令代码指令代码 53H53H 指令描述:指令描述:空闲模式启用/退出指令。1.8 指令详述指令详述OV:合成方式选择位。DM1:第一显示区域的显示属性选择位DM2:第三显示区域的显示属性选择位。合成显示的逻辑关系设置,具体设置见表。 OVLAYOVLAY指令代码指令代码 5BH5BH 指令描述:指令描述:该指令设置了显示区域合成显示的逻辑关系以及第一、三显示区域的显示特性。显
10、示属性设置 HDOT_SCRHDOT_SCR指令代码指令代码5AH5AH 指令描述:指令描述:该指令设置了以点为单位的画面水平移动量。CGRAM_ADRCGRAM_ADR指令代码指令代码 5CH5CH指令描述:指令描述:自定义字库的CGRAM起始地址设置,带有2个参数。CSRRCSRR指令代码指令代码47H47H指令描述:指令描述:读取光标地址指令。所带参数表 CSRDIRCSRDIR指令代码指令代码4CH4FH4CH4FH指令描述:指令描述:光标移动方向的设置指令。光标移动方向与对应取值 CSR_FORMCSR_FORM指令代码指令代码5DH5DH指令描述:指令描述:该指令为光标形状的设置指
11、令。CRX:光标宽度,以象数点为单位。CRY:光标高度,以象数点为单位。CM:光标形状选择。 MEMWRITEMEMWRITE指令代码指令代码42H42H 指令描述:指令描述:显示数据写操作指令。 MEMREADMEMREAD指令代码指令代码43H43H 指令描述:指令描述:显示数据读操作。#define LCD_A0(123)/P2.23 选择信号#define LCD_RD(124)/P2.24 读信号#define LCD_RST(125)/P2.25 复位信号#define LCD_CS(126)/P2.26 芯片使能信号,共用BOOT0引脚#define LCD_WE(127)/P2
12、.27 写信号,共用BOOT1引脚/* 名称:LCD_WriteCommand(uint8 Code)* 功能:往液晶模块写入一个字节的代码* 入口参数:Code指令代码* 注释:由于P2.27为特殊引脚,所以在写操作结束后将P2.27拉低*/ void LCD_WriteCommand(uint8 Code) uint8 i; IO2CLR = LCD_CS;/CS=0 IO2SET = LCD_A0;/A0=1 LS164_SendData(Code);/通过74HC164芯片向模块写指令代码 IO2SET = LCD_RD;/RD=1 IO2CLR = LCD_WE;/WR=0 for(
13、i=0;i3;i+) ; IO2SET = LCD_WE;/WR=1 IO2SET = LCD_CS;IO2CLR = LCD_WE; 写命令子程序/* 名称:LCD_WriteData()* 功能:往液晶模块写入一个字节的数据* 入口参数:Data 数据* 注释:由于P2.27为特殊引脚,所以在写操作结束后将P2.27拉低*/ void LCD_WriteData(uint8 Data) uint8 i; IO2CLR = LCD_CS;/CS=0 IO2CLR = LCD_A0;/A0=0 LS164_SendData(Data);/通过74HC164芯片向模块写显示数据 IO2SET =
14、 LCD_RD;/RD=1 IO2CLR = LCD_WE;/WR=0 for(i=0;i3;i+) ; IO2SET = LCD_WE;/WR=1 IO2SET = LCD_CS;/CS=1 IO2CLR = LCD_WE;/WR=0 写数据子程序为了方便理解和代码移植,程序中把LM2068S模块中的所有命令都定义成宏,定义如程序清单。#define SYSTEM_SET0 x40/初始化显示窗口设置,带8个参数#define SLEEP_IN0 x53/空闲操作-#define DISP_ON0 x59/显示开-#define DISP_OFF0 x58/显示关,设置显示方式,带1个参数#
15、define SCROLL 0 x44/设置显示区域,卷动,带10个参数#define OVLAY0 x5B /设置合成显示方式,带1个参数#define CGRAM_ADR0 x5C/设置CGRAM 起始地址,带2个参数#define HDOT_SCR0 x5A/设置点单元卷动位置,带1个参数#define CSRFORM0 x5D/设置光标形状,带2个参数#define CSRDIR_R0 x4C/设置光标移动方向 向右-#define CSRDIR_L0 x4D/设置光标移动方向 向左-#define CSRDIR_U0 x4E/设置光标移动方向 向上-#define CSRDIR_D0
16、 x4F/设置光标移动方向 向下-#define CSRW0 x46/设置光标地址,带2个参数#define CSRR0 x47/读出光标地址,带2个参数#define MWRITE0 x42/数据写入显示缓冲区,带若干个参数#define MREAD0 x43/从显示缓冲区读数据,带若干个参数命令宏定义/* 名称:LCD_FillAll(uint8 dat)* 功能:LCD填充。以图形方式进行填充,起始地址为0 x0000。* 入口参数:dat要填充的数据* 出口参数:无*/void LCD_FillAll(uint8 dat) uint32 i; / -置地址指针- LCD_WriteCo
17、mmand(CSRW); LCD_WriteData(0 x00); /地址为0 x0000 LCD_WriteData(0 x00); /-设置光标移动方向:右- LCD_WriteCommand(CSRDIR_R); /- 写入数据 - LCD_WriteCommand(MWRITE); for(i=0;i240*41;i+) LCD_WriteData(dat); /-重置地址指针- LCD_WriteCommand(CSRW);LCD_WriteData(0 x00); /地址为0 x0000LCD_WriteData(0 x00);清屏函数uchar SYSTEMSET_TAB8=
18、0 x30,/单屏结构,88点0 x87, 0 x07,/字符宽度8,字符高度840,/有效显示窗口的长度40 (320=8*40)0 x40,/lCD工作频率239,/扫描点行数(240)41,/显示屏一行所占显示缓冲区的字节数0 x00;uchar SCROLL_TAB10= 0 x00,0 x00,0 xef, /第一显示区的起始地址为0 x0000,点行数240 0 x70,0 x26,0 xef, /第二显示区的起始地址为0 x2670,点行数240 0 x00,0 x60,/第三显示区的起始地址为0 x6000 0 x00,0 x00;/第四显示区的起始地址为0 x000/* 名称
19、:LCD_Initialize()* 功能:LCM初始化,将LCM初始化为纯图形模式,显示起始地址为0 x0000。* 入口参数:无* 出口参数:无* 说明:带参数命令模式:先命令,后数据复位LM2068时:/RST保持低电平至少5ms以上,低电平拉高后至少保持800ms再对模块进行软件初始化*/void LCD_Initialize(void) uchar i;/-初始化LCM的控制引脚-IO2DIR = IO2DIR | LCD_A0 | LCD_CS | LCD_RD | LCD_WE | LCD_RST; 初始化函数实验目的:实验目的:理解液晶屏操作的基本原理,掌握液晶图形显示的基本方
20、法。实验内容:实验内容:在显示屏上画一个笛卡儿坐标系,并在坐标系的原点画一个半径为20的圆 1.9 实验目的与内容开发一些底层的画图函数,包括:打点函数;画直线函数;画圆函数;打印字符串函数等。设计时我们把软件划分3层:硬件驱动层基本图形层用户层。 软件层次图 2.1 画图基本思想 缓存区的定义如下:#define GUI_LCM_XMAX 320/定义液晶x轴的点象素#define GUI_LCM_YMAX 240/定义液晶y轴的点象素char gui_disp_bufGUI_LCM_YMAX GUI_LCM_XMAX/8;/定义显示缓存 硬件驱动层主要完成两件任务: 一是操作液晶模块:复位
21、液晶模块,液晶模块的参数设置,等等。 二是管理显示缓存区:将显示数据发送给液晶模块从而刷新显示内容。2.2 硬件驱动层硬件驱动层 这一层提供基本画线、画矩形、画圆、填充、打印字符等基本函数。本层一些必要的接口函数 基本图形层实验参考程序#include whole.h#define White1/* 名称:main()* 功能:绘制笛卡尔坐标系* 出口参数:返回0表示操作失败,返回1表示操作成功*/int main(void) GRA_Initialize();/-画迪卡尔坐标系-GRA_Line(110,130,210,130,White);/画水平线GRA_Line(210,130,205
22、,125,White);/画箭头GRA_Line(210,130,205,135,White);/画箭头GRA_Line(160,80,160,180,White);/画垂直线GRA_Line(160,80,155,85,White);/画箭头GRA_Line(160,80,165,85,White);/画箭头GRA_Circle(160, 130, 20, White);/画半径20的圆GRA_PutChar(130, 140,();/打印“(0,0)”GRA_PutChar(135, 140,0);GRA_PutChar(140, 140,);GRA_PutChar(145, 140,0)
23、;GRA_PutChar(150, 140,);GRA_Refresh(100,80,220,170); /根据缓冲区的内容刷新显示屏while(1) ;return(1); 电声器件电声器件是指能将声音信号转换为音频电信号或者将音频电信号转换为声音信号的器件。 传声器传声器俗称话筒,音译为麦克风,是一种声电换能器件,可分为电动和静电两类。 蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,通常采用直流电压供电。 扬声器扬声器俗称喇叭,也是一种发声器件,与蜂鸣器不同的是扬声器可以发出多种音频。所以它在实际生活中应用相当广泛。1.1 扬声器发声原理扬声器主要起着“电力声”的能量变换作用。扬声器的分类如下
24、: 按电声转换的原理分:电磁式、电动式、静电式、压电式等; 按所覆盖的频带分:分为低声单元、中音单元、高音单元和全频带 单元。电动式扬声器的结构 常见的扬声器实物图 声音的产生是一种音频振动的效果,振动的频率高则为高音,频率低则为低音。音频的范围为20Hz200kHz之间。一般音响电路是以正弦波信号驱动喇叭,产生悦耳的音乐;在数字电路里,则一般是以脉冲信号驱动喇叭以产生声音。声音的产生 1.2 音调与节拍日常生活中通常以Do、Re、Mi、Fa、So、La、St分别代表某一个频率的声音,称之为“音调”,即Tone。在音阶表中一共包括3个音阶(低音、中音与高音),每个音阶粗略地为7个音度(音调),
25、而每个音阶之间的频率相差一倍。下表列出了C调音阶和频率之间的对照关系。 节拍”即Beat,让音乐具有旋律,更可以调节各个音的快慢速度。除了“拍子”以外,还有“音节”,在乐谱左上方都会定义每个音节有多少拍。如图所示: 产生音乐的波形图 播放一段音乐“生日快乐歌”,简谱所示。1.3 实验内容 喇叭电路连接图,LPC2220通过GPIO引脚P0.29连接三极管T的基级。控制三极管的导通与否,引起扬声器内部线圈的震动,从而产生声音。1.4 电路原理分析 扬声器不同的振动频率会产生不同的音调。我们根据音符与振动频率的对应关系,分低、中、高低、中、高音3大频率段,分别定义了3个频率表数组:FreTab_L
26、ow7、FreTab_Mid7、FreTab_High7。int FreTab_Low7=262,294,330,349,392,440,494;/低音的频率表int FreTab_Mid7=523,578,659, 698,784,880,988; /中音int FreTab_High7=1046,1175,1318,1397,1568,1760,1976; /高音1.5 程序分析-音频表定义程序分析-播放表表定义首先设置音频表的首地址,从音频表中取一组音调和节拍的数据。如果取的这两个数据都是0 x00,则表示音乐结束;否则的话,根据音调产生相应频率的脉冲信号驱动喇叭。如果节拍到了则继续从音
27、频表中取数据。音乐播放流程图 程序分析-播放流程 本节采用定时器0来产生相应的频率,用定时器1来控制音符节拍,两个定时器的中断服务子程序表 /*名称: (_irq) Time0_ISR()*功能:改变喇叭引脚电平*/void _irq Time0_ISR()if(IO0PIN & SPEAK ) = 0) /喇叭电平取反 if(IO1SET & SPEAK ) = 0) SPEAKON() ;/ P0.29为高电平 else SPEAKOFF();/ P0.29为低电平T0IR = 0 x01 ; /清除定时器0中断标志 VICVectAddr = 0 x00000000 ;
28、/中断结束/*名称: (_irq)Time1_ISR()*功能:定时产生节拍,改变定时器0的匹配值*/void _irq Time1_ISR(void) uint32 Frq , Sylla ;T1TCR = 0 x00;/关闭定时器0/1T0TCR = 0 x00;T1IR = 0 x01 ; / 清除定时器0/1中断标志T0IR = 0 x01;1.6 参考程序-中断服务程序 Music_Init()和Music_Play()函数,分别用于初始化设置和音乐播放。参考程序参考程序-初始化和音乐播放函数初始化和音乐播放函数#defineSPEAK(1 29) /注释:P0.29控制喇叭/*名称
29、: Music_Init()*功能:喇叭引脚与定时器0,1的初始化,给定时器0与1赋初值*入口参数: 无*出口参数:无*/void Music_Init(void)PINSEL1 = PINSEL1&0 xf3ffffff ; /选择喇引脚为GPIOIO0DIR = IO0DIR | SPEAK ;/设置与喇叭连接的引脚为输出/-设置定时器0-T0TC = 0 ; /定时器0计数器清0T0PR = 0 ; /时钟不分频T0MCR =0 x03 ; /设置T0MR0匹配后复位T0TC,并产生中断标志参考程序参考程序-Main-Main主程序主程序1. 在Code Warrior IDE集
30、成开发环境中,使用“Follow Me Study ARM”工程模板建立新工程。然后在工程中添加本实验的程序代码,按F7快捷键编译链接整个工程。编译报错则修改源程序中的错误,如果编译通过则在相应的目录下产生我们所需要的二进制文件和可执行映像文件。2. 运行H-Flasher软件,将产生的二进制文件烧写到实验板上。3. 打开AXD调试环境,并加载刚刚产生的可执行映像文件进行调试。4. 单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,我们可以听到喇叭播放的一段音乐“生日快乐歌”。 各种LED显示屏 1.1 LED点阵显示屏分类 8X8点阵LED结构,由64个发
31、光二极管组成。每个发光二极管放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮。 88 LED点阵显示屏实物,如果想设计更大的点阵显示屏,可以采用多个模块进行拼接。R1R2R3R4R5R6R7R8C1C2C3C4C5C6C7C8 88 LED点阵显示屏内部示意图 1.2 LED点阵显示原理 显示方法有两种:行扫描、列扫描。 下面以列扫描为例,算法如下: for(i=1;i9;i+) 第i列置0,其他列置1,R1R8行输入相应的编码数据; 延时1ms; R1R2R3R4R5R6R7R8C1C2C3C4C5C6C7C8Q QA AQ QB BQ QC CQ QD DQ QE EQ QF FQ QG GQ QH HQ Q1 1Q Q2 2Q Q3 3Q Q4 4Q Q5 5Q Q6 6Q Q7 7Q Q8 8 电路中显示一个“大”字。如果采用列扫描的方法,则算法如下: Q1输出低电平,其他列输出高电平; QHQA输出0 x44;延时1ms。 Q2输出低电平,其他列输出高电平;QHQA输出0 x24;延时1ms。 Q3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025租赁合同范本7
- 2025餐饮连锁加盟合同
- 2025跨国租赁合同样本
- 2025兼职劳动合同书模板
- 2025深入探讨新合同法对销售合同的调整
- 2025超市装修施工合同范例
- 2025地基工程承包合同
- 2025技术培训转让合同协议
- 2025国际航空货物运输的合同
- 2025机械设备购销结合合同示范文本
- 2025商业综合体委托经营管理合同书
- 2024-2025学年北师大版生物七年级下册期中模拟生物试卷(含答案)
- 林业理论考试试题及答案
- 超市店长价格管理制度
- 2025-2030中国脑芯片模型行业市场发展趋势与前景展望战略研究报告
- 2025年河南省洛阳市洛宁县中考一模道德与法治试题(含答案)
- GB/T 17622-2008带电作业用绝缘手套
- 篮球三步上篮公开课教案-白元增
- 设备日常维护保养检查评分表
- 压力性尿失禁讲稿
- 煤矿班组安全文化建设(课堂PPT)
评论
0/150
提交评论