ARM课程设计数码管显示.doc_第1页
ARM课程设计数码管显示.doc_第2页
ARM课程设计数码管显示.doc_第3页
ARM课程设计数码管显示.doc_第4页
ARM课程设计数码管显示.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM课程设计报告目 录一、 设计内容21.1 实验目的21.2 实验设备2二、 设计原理22.1 八段数码管 22.2 电路原理3三、 操作步骤 4四、 程序代码5五、 心得体会12ARM数码管显示一、 设计内容1.1实验目的掌握 LED 的显示控制方法。巩固对存储区进行访问的方法。1.2实验设备硬件:Embest Arm EduKit II 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机。软件:Embest IDE Pro 2004 集成开发环境,Windows 98/2000/NT/XP。二、 设计原理2.1 八段数码管嵌入式系统中,经常使用八段数码管来显示数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。结构:八段数码管由八个发光二极管组成,其中七个长条形的发光管排列成“日”字形,右下角一个点形的发光管作为显示小数用,八段数码管能显示所有数字及部份英文字母。见图类型:八段数码管有两种不同的形式:一种是八个发光二极管的阳极都连在一起的,称之为共阳极八段数码管;另一种是八个发光二极管的阴极都连在一起的,称之为共阴极八段数码管。工作原理:以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。电平信号按照 dp,g,ea 的顺序组合形成的数据字称为该字符对应的段码,常用字符的段码表如下:字符dpgfedcba共阴极共阳极00 0 1 1 1 1 1 13FHC0H10 0 0 0 0 1 1 006HF9H20 1 0 1 1 0 1 15BHA4H30 1 0 0 1 1 1 14FHB0H40 1 1 0 0 1 1 066H99H50 1 1 0 1 1 0 16DH92H60 1 1 1 1 1 0 17DH82H70 0 0 0 0 1 1 107HF8H80 1 1 1 1 1 1 17FH80H90 1 1 0 1 1 1 16FH90HA0 1 1 1 0 1 1 177H88HB0 1 1 1 1 1 0 07CH83HC0 0 1 1 1 0 0 139HC6HD0 1 0 1 1 1 1 05EHA1HE0 1 1 1 1 0 0 179H86HF0 1 1 1 0 0 0 171H8EH0 1 0 0 0 0 0 040HBFH.1 0 0 0 0 0 0 080H7FH熄灭0 0 0 0 0 0 0 000HFFH显示方式:八段数码管的显示方式有两种,分别是静态显示和动态显示。静态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管控制信号一直保持有效。动态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管是轮流点亮的,即控制信号按一定周期有效,在轮流点亮的过程中,点亮时间是极为短暂的(约 1ms),由于人的视觉暂留现象及发光二极管的余辉效应,数码管的显示依然是非常稳定的。2.2 电路原理EMBEST ARM EDUKIT II 教学电路中,使用的是共阳极八段数码管,数码管的控制通过芯片 ZLG7290 控制,各段的控制信号是芯片ZLG7290 的 SEGASEGG 引脚控制,需要显示的段码通过 IIC 总线传送到该芯片,见图。八段数码管控制电路 八段数码管控制电路三、 操作步骤1. 准备实验环境使用 Embest 仿真器连接目标板,使用 Embest Arm EduKit II 实验板附带的串口线,连接实验板上的 UART0 和 PC 机的串口。2. 串口接收设置在 PC 机上运行 windows 自带的超级终端串口通信程序(波特率 115200、1 位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。3. 打开实验例程1) 使用 Embest IDE 通过 Embest JTAG 仿真器连接实验板,打开实验例程目录4.6_8led_test 子目录下的 8led_test.ews 例程,编译链接工程成功;2) 点击 IDE 的 Debug 菜单,选择 Remote Connect 项或 F8 键,远程连接目标板;3) 点击 IDE 的 Debug 菜单,选择 Download 下载调试代码到目标系统的 RAM 中;4) 在“8LED_test ();”设置断点后,点击 Debug 菜单的 Go 或 F5 键运行程序。4. 观察实验结果1).在 PC 机上观察超级终端程序主窗口,可以看到如下界面:Embest Arm EduKit II Evaluation Board8-segment Digit LED Test Example (Please look at LED)2). 实验系统八段数码管循环显示 0 F 字符。四、 程序代码Main:/* File:main.c* Author:embest* Desc:c main entry* History:*/#include 44blib.h#include 44b.h/*-*/* extern function */*-*/extern void led8_test();/*-*/* function declare */*-*/void Main(void);/* name:main* func:c code entry* para:none* ret:none* modify:* comment:*/void Main(void) sys_init(); /* Initial 44B0Xs Interrupt,Port and UART */uart_printf(nr Embest Arm EduKit II Evaluation Board);uart_printf(nr 8-segment Digit LED Test Example (Please look at LED)n);led8_test();while(1);Iic:/* File:iic.c* Author:embest* Desc:iic source code* History:*/#include 44b.h#include 44blib.h#include def.h#include iic.h/*-*/* global variables */*-*/int f_nGetACK;/*-*/* function declare */*-*/void iic_int(void);void iic_init(void);void iic_write(UINT32T unSlaveAddr, UINT32T unAddr, UINT8T ucData);void iic_read(UINT32T unSlaveAddr, UINT32T unAddr, UINT8T *pData);/* name:iic_init* func:initialize iic* para:none* ret:none* modify:* comment:*/void iic_init(void)f_nGetACK = 0; / Enable interruptrINTMOD = 0x0;rINTCON = 0x1;rINTMSK = rINTMSK & (BIT_GLOBAL|BIT_IIC); pISR_IIC= (unsigned)iic_int;/ Initialize iicrIICADD = 0x10;/ S3C44B0X slave address rIICCON = 0xe5;/ Enable ACK, interrupt, IICCLK=MCLK/512, Enable ACK/64Mhz/512/(15+1) = 8Khz rIICSTAT= 0x10;/ Enable TX/RX /* name:iic_write* func:write data to iic* para:unSlaveAddr - input, chip slave address*unAddr- input, data address*ucData - input, data value* ret:none* modify:* comment:*/void iic_write(UINT32T unSlaveAddr,UINT32T unAddr,UINT8T ucData)f_nGetACK = 0; / Send control byte rIICDS = unSlaveAddr;/ 0xa0 rIICSTAT = 0xf0; / Master Tx,Start while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; / Send address rIICDS = unAddr; rIICCON = 0xe5; / Resumes IIC operation.while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; / Send data rIICDS = ucData; rIICCON = 0xe5; / Resumes IIC operation. while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; / End send rIICSTAT = 0xd0;/ Stop Master Tx condition rIICCON = 0xe5;/ Resumes IIC operation.while(rIICSTAT & 0x20 = 1);/ Wait until stop condtion is in effect./* name:iic_read* func:read data from iic* para:unSlaveAddr - input, chip slave address*unAddr- input, data address*pData - output, data pointer* ret:none* modify:* comment:*/void iic_read(UINT32T unSlaveAddr,UINT32T unAddr,UINT8T *pData)char cRecvByte;f_nGetACK = 0; / Send control byte rIICDS = unSlaveAddr;/ Write slave address to IICDS rIICSTAT = 0xf0; / Master Tx,Start while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; / Send address rIICDS = unAddr; rIICCON = 0xe5; / Resumes IIC operation. while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; / Send control byte rIICDS = unSlaveAddr;/ 0xa0 rIICSTAT = 0xb0; / Master Rx,StartrIICCON = 0xe5; / Resumes IIC operation. while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; / Get data rIICCON = 0x65; while(f_nGetACK = 0);/ Wait ACK f_nGetACK = 0; cRecvByte = rIICDS; /* End receive */ rIICSTAT = 0x90; / Stop Master Rx condition rIICCON = 0xe5; / Resumes IIC operation.while(rIICSTAT & 0x20 = 1);/ Wait until stop condtion is in effect. *pData = cRecvByte;/* name:iic_int* func:IIC interrupt handler* para:none* ret:none* modify:* comment:*/void iic_int(void) rI_ISPC=BIT_IIC;f_nGetACK = 1;8led:/* File:8led.c* Author:embest* Desc:8-segment digit LED control functions* History:*/#include 44b.h#include 44blib.h#include def.h#include iic.h/*-*/* global variables */*-*/unsigned char f_szDigital10 =0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6;/ 0 9/*-*/* function declare */*-*/void led8_test(void);/* name:led8_test* func:test 8led* para:none* ret:none* modify:* comment:*/void led8_test(void)int i, j, k;iic_init();for(;)for(j=0; j10; j+)for(i=0; i8; i+)k = 9-(i+j)%10;iic_write(0x70, 0x10+i,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论