嵌入式ARM键盘接口和七段数码管的控制实验

合集下载

嵌入式ARM键盘控制LED灯实验报告【范本模板】

嵌入式ARM键盘控制LED灯实验报告【范本模板】

实验六键盘控制LED灯实验1实验目的(1) 通过实验掌握中断式键盘控制与设计方法;(2) 熟练编写S3C2410中断服务程序。

2 实验设备(1) S3C2410嵌入式开发板,JTAG仿真器.(2) 软件:PC机操作系统Windows XP,ADS1.2集成开发环境,仿真器驱动程序,超级终端通讯程序.3 实验内容编写中断处理程序,处理一个键盘中断,并在串口打印中断及按键显示信息。

4 实验步骤(1) 参照模板工程,新建一个工程keypad,添加相应的文件,并修改keypad 的工程设置;(2)创建keypad。

c并加入到工程keypad中;(3)编写键盘中断程序;参考代码如下:①串口初始化程序void uart_init()/* UART串口初始化*/{GPHCON |= 0xa0; //GPH2,GPH3 used as TXD0,RXD0GPHUP = 0x0;//GPH2,GPH3内部上拉ULCON0 = 0x03;//8N1UCON0 = 0x05; //查询方式为轮询或中断;时钟选择为PCLKUFCON0 = 0x00;//不使用FIFOUMCON0 = 0x00;//不使用流控UBRDIV0 = 26; //波特率为57600,PCLK=12Mhz}②发送数据while(!(UTRSTAT0 &TXD0READY));UTXH0 = c;③接收数据while( ! (UTRSTAT0 &RXD0READY));return URXH0;④打印数据int i = 0;while(str[i] ){putc((unsigned char)str[i++]);}return i;⑤按键初始化int key_init()/* 按键初始化*/{GPFCON = 0x55aa;GPFUP = 0xff;printk(”按键初始化OK\r\n”);return 0;}⑥中断初始化void irq_init()/*中断初始化*/{INTMSK &= ~(3〈<2);printk("中断初始化OK\r\n”);}(5) 编译keypad;(6)运行超级终端,选择正确的串口号,并将串口设置位:波特率(115200)、奇偶校验(None)、数据位数(8)和停止位数(1),无流控,打开串口;(7)运行程序,在超级终端中输入的数据将回显到超级终端上,结果如图5。

单 片 机 原 理 实 验 报 告-七段数码管的显示

单 片 机 原 理  实  验  报  告-七段数码管的显示

单片机原理实验报告一、实验目的:1、通过此次实验学会使七段数码管产生不同码段的显示。

2、通过设计中断使和使用计数器使数码管自动计数。

二、实验仪器:计算机,keil uVision3,proteus 7三、简要原理:用数码管显示自动计数,用按键来使计数开始或暂停,即按一下按键,使数码管自动加1计数,再按一下按键,使计数暂停,再按一下又继续计数。

四、实现程序和设计电路图:ORG 0000H LJMP MAIN ORG 0003H LJMP LOOP3 ORG 000BH LJMP LOOP4 MAIN:MOV R0,#00HMOV A,#00HMOV DPTR ,#TABLE MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0AFH MOV P1,#0C0H MOV P2,#0C0H SETB PX0CLR PT0SETB EASETB EX0CLR ET0SETB IT0SETB TR0LOOP:CJNE R0,#20,LOOP MOV R0,#00HMOV B,#0AHINC ACJNE A,#3CH,LOOP1 MOV A,#00HLOOP1:MOV R1,A DIV ABMOVC A,@A+DPTRMOV P2,AMOV A,BMOVC A,@A+DPTRMOV P1, AMOV A,R1AJMP LOOPLOOP3:CPL ET0RETILOOP4:MOV TH0, #3CHMOV TL0,#0AFHINC R0RETITABLE:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND五、实验心得:通过这次实验,我发现中断的作用非常之大,可以用它来实现各种各样的功能。

嵌入式实验报告数码管显示实验

嵌入式实验报告数码管显示实验

实验报告课程名称嵌入式系统编程实践实验仪器清华同方辰源嵌入式系统实验箱实验名称实验四:数码管显示实验系别__计算机学院_专业 _班级/学号学生姓名实验日期 2013年10月11日成绩___________________指导教师实验四:数码管显示实验一、实验问题回答(1)如何设置功能3,4中的循环速度?答:利用系统SysTick Handler中断,控制循环速度void SysTick_Handler (void){Event = 1;}(2)若是想实现类似实验(三)通过键盘动态控制循环速度,考虑一下应该如何设计?答:SysTickPeriodSet(SysCtlClockGet() / X)//设置x的大小就可以控制循环的速度。

void Reset_Counter_Speed(int x){SysTickIntDisable();SysTickDisable();SysTickPeriodSet(SysCtlClockGet() / x);// 设置x,控制计数频率,值与频率成正比SysTickEnable();SysTickIntEnable();},达到预期的效果。

二、实验目的和效果(效果即是否达到实验目的,达到的程度如何)学习、了解和掌握数码管工作原理和使用方法实验结果及检查(1)默认在在OLED屏幕上分行显示自己的学号、姓名、项目序号、时间,如“2010011001”、“zhangsan”、“work4”、“2012-11-”(2)首先在屏幕上显示四个功能选单,通过键盘A-F键选择不同功能,选择后屏幕显示相关功能提示,接受键盘输入的数字键0-9并在数码管上显示。

如:开始显示:“please choose the function:”“A: …”“B: …”“C: …”“D: …”按下“A”键后,显示”now you choose function A”(3)按下键盘后,根据不同功能在数码管上显示按键字符。

嵌入式软件开发基础实验报告 数码管显示

嵌入式软件开发基础实验报告 数码管显示

上海电力学院嵌入式软件开发基础实验报告题目:ARM 【实验4.6】数码管显示实验专业:电子科学与技术年级:姓名:学号:一、实验目的(1)通过实验掌握 LED 的显示控制方法;(2)巩固实验 4.1 中所掌握的对存储区进行访问的方法;二、实验设备硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机软件:Embest IDE Pro ARM 集成开发环境,Windows 98/2000/NT/XP三、实验内容编写程序使实验板上八段数码管循环显示 0 到 9 字符四、实验原理嵌入式系统中,经常使用八段数码管来显示数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。

(1)结构八段数码管由八个发光二极管组成,其中七个长条形的发光管排列成“日”字形,右下角一个点形的发光管作为显示小数点用,八段数码管能显示所有数字及部份英文字母(2)工作原理以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。

电平信号按照dp,g,e…a 的顺序组合形成的数据字称为该字符对应的段码,常用字符的段码表(3)显示方式八段数码管的显示方式有两种,分别是静态显示和动态显示。

静态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管控制信号一直保持有效。

动态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管是轮流点亮的,即控制信号按一定周期有效,在轮流点亮的过程中,点亮时间是极为短暂的(约 1ms),由于人的视觉暂留现象及发光二极管的余辉效应,数码管的显示依然是非常稳定的。

五、实验步骤1. 准备实验环境使用 Embest 仿真器连接目标板,使用 Embest EduKit-III 实验板附带的串口线,连接实验板上的 UART0 和 PC 机的串口。

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

用七段数码管显示简单字符——译码器及其应用实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验一用七段数码管显示简单字符——译码器及其应用一、实验目的1、了解显示译码器的结构和理解其工作原理。

2、学习7段数码显示译码器设计。

3、学习用基逻辑门、3-8译码器、4-1选择器控制显示器的显示。

二、实验内容1、了解逻辑门、3-8译码器、4-1选择器的工作原理,设计基本电路,实现以下功能:C2C1C0是译码器的3个输入,用C2C1C0的不同取值来选择在七段数码管上输出不同字符。

七段数码管是共阳极的。

图1 七段译码器C2C1C0 的不同取值对应显示的字母如下:图2 字符编码三、实验仪器及设备: 一、PC 机二、 Quartus Ⅱ 9.0三、 DE2-70 四、显示器四、实验步骤1、列出真值表,计算要实现以上功能时数码管的0-7段对应的逻辑函数式。

真值表如下:函数表达式如下: “0”='02C C +“1”=“2”=0'1'012C C C C C ++“3”=(2C +1C +'0C )(2C +0C +'1C )(2C +'1C +'0C ) “4”=“5”=2C “6”=2C +1C +02C C2、新建一个 quartusII 工程,用以在DE2_70平台上实现所要求的电路。

建立一个BDF 文件,基于SSI ,实现七段译码器电路,用SW3_SW1作为输入C2C1C0,DE2_70平台上的的数码管分别为HEX0~HEX7,输出接HEX1。

参照de2_70_pin_assignments.csv 中的引脚分配表配置引脚。

新建仿真文件,给出输入信号,观察输出信号是否符合要求。

编译工程,完成后下载到FPGA 中。

拨动波段开关并观察七段数码管HEX0的显示,以验证设计的功能是否正确。

嵌入式键盘及LED驱动实验

嵌入式键盘及LED驱动实验

《嵌入式系统设计》实验报告(2011-2012学年第2学期)实验三键盘及LED驱动实验—C语言实现方法一、实验目的1.学习键盘及LED驱动原理。

2.掌握ZLG7289芯片的使用方法。

二、实验内容通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。

三、预备知识1.掌握在ARM SDT 2.5或ADS1.2集成开发环境中编写和调试程序的基本过程。

2.了解ARM应用程序的框架结构。

3.了解µC/OS-II多任务的原理。

四、实验设备及工具硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上。

软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序五、实验原理ZLG7289A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示﹑键盘接口的全部功能。

ZLG7289A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。

此外,还具有多种控制指令,如消隐﹑闪烁﹑左移﹑右移﹑段寻址等。

ZLG7289A具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。

其特点如下:a.串行接口无需外围元件可直接驱动LED。

b.各位独立控制译码/不译码及消隐和闪烁属性。

c.(循环)左移/(循环)右移指令。

d.具有段寻址指令方便控制独立LED。

e.键盘控制器内含去抖动电路。

表2-5 引脚说明引脚名称说明1 ,2 VDD 正电源3 ,5 NC 悬空4 VSS 接地6 /CS 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据7 CLK 同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效8 DATA 串行数据输入/输出端,当芯片接收指令时此引脚为输入端,当读取键盘数据时此引脚在读指令最后一个时钟的下降沿变为输出端9 /KEY 按键有效输出端,平时为高电平,当检测到有效按键时,引脚变为低电平10-16 SG-SA 段g—段a 驱动输出17 DP 小数点驱动输出18-25 DIG0-DIG7 数字0—数字7驱动输出26 OSC2 振荡器输出端27 OSC1 振荡器输入端28 /RESET 复位端ZLG7289A的控制指令分为二大类——纯指令和带有数据的指令:1.纯指令(1)复位(清除)指令,如表2-6所示:表2-6 复位指令格式D7 D6 D5 D4 D3 D2 D1 D01 0 1 0 0 1 0 0当ZLG7289A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。

实验报告2--7段数码管显示实验

实验报告2--7段数码管显示实验

SPI主机实验——7段数码显示一、实验目的1、通过本实验进一步掌握对ARM7.0软件和EasyJTAG仿真器的使用;2、进一步熟悉EasyARM2131开发板硬件结构,掌握各引脚功能和接线;3、掌握SPI主机实验,熟悉该实验程序,并能作出简单的修改并实现其功能;4、在SPI实验中,通过改变实验程序,实现7段数码管和流水灯同时运行的功能。

二、实验仪器装有ADS1.2及EasyJTAG仿真器的电脑一台;ARM7开发板一块。

三、实验原理图4.61 SPI接口控制74HC595图中已经将最高位输出(SQH)连线到LPC2131的SPI接口的MISO0,可用来读回74HC595移位输出的数据。

下图是8路LED控制电路:该实验演示在7段数码管上显示一些字符,字符的字模表存于一数组中,流程图如下图4.62所示。

图4.62 LED数码管显示实验流程图1、特性2、结构SPI总线配置及数据传输3、SPI外设描述4、基本操作5主机操作四、实验内容与结果1、实验程序如下#include "config.h"#define HC595_CS (1 << 29) // P0.29口为74HC595的片选const uint32 LEDS8 = (0xFF << 18); // P1[25:18]控制LED8~LED1,低电平点亮/************************************************************************ ******************************** 函数名称:DelayNS()** 函数功能:长软件延时** 入口参数:dly 延时参数,值越大,延时越久** 出口参数:无************************************************************************* *******************************/void DelayNS(uint32 dly){uint32 i;for(; dly>0; dly--)for(i=0; i<50000; i++);}const uint32 LED_TBL[] = {0x00, 0xFF, // 全部熄灭后,再全部点亮0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, // 依次逐个点亮0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, // 依次逐个叠加0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, // 依次逐个递减0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, // 两个靠拢后分开0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 // 从两边叠加后递减};/********************************************************************************************************** 函数名称:MSPI_Init()** 函数功能:初始化SPI接口,设置为主机。

单片机实验五按键及七段数码管实验

单片机实验五按键及七段数码管实验

单片机实验五按键及七段数码管实验第一篇:单片机实验五按键及七段数码管实验实验五按键及七段数码管实验一、实验目的1、熟悉keil软件;2、掌握矩阵式按键的原理;3、掌握七段数码管显示的原理;4、掌握STC单片机的按键及数码管程序编写及下载;二、实验要求1、编写矩阵式按键的读取程序、七段数码管的动态显示程序,并将程序结合在一起,产生某一按键按下,显示对应键值的程序。

2、编写串行通信的发送及接收程序,实现串行口跟PC及的通信,并在PC机上用串口调试工具观察实验结果;3、利用keil软件调试程序,并产生.hex文件;4、将.hex文件利用STC单片机下载工具下载到单片机最小系统中,并观察LED灯的显示状态;5、提交实验报告,报告包含程序及LED的显示结果。

三、实验内容1、打开keil软件,熟悉软件的菜单、工作界面及工具。

然后按照keil的编程步骤编写程序(创建工程----选择单片机AT89C51----新建源文件----保存为C程序----编写完整的C51程序----将文件添加到工程----编译并修改错误----连接产生.hex文件)。

2、打开STC下载软件,将keil生成的.hex文件打开,下载到最小系统板,测试程序并观察实验结果。

3、按键及七段LED的程序,实现更多的LED与按键结合的效果。

四、实验说明1、程序中使用的按键及LED灯的IO端口要与自己的单片机最小系统板对应;2、按键程序注意抗消抖;3、思考计算器程序如何实现;第二篇:单片机数码管显示实验实验一数码管实验一、实验目的1.了解数码管的显示原理;2.掌握JXARM9-2440 中数码管显示编程方法二、实验仪器JXARM9-2440教学实验箱、ADT1000仿真器和ADT IDE集成开发环境、串口连接线、PC机。

三、实验原理7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。

LED显示器的接口一般有静态显示与动态显示接口两种方式。

七段数码管动态显示控制

七段数码管动态显示控制

实验二七段数码管动态显示控制一、实验目的利用AT89S52和使用两位数码管显示器,循环显示两位数00-99。

其中P2.0和P2.1端口分别控制数码管的个位和十位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过驱动三极管给数码管相应的位供电,这时只要P3口送出数字的显示代码,数码管就能正常显示数字。

二、实验要求1、使用两位数码管显示器,循环显示两位数00-99;2、具有电源开关和指示灯,有复位键;3、数码管动态显示,即扫描方式,每一位每间隔一段时间扫描一次。

字符的亮度及清晰度与每位点亮的停留时间和每位显示的时间内轮换导通次数有关。

三、实验电路四、实验器材AT89S52;动态扫描显示;共阳极数码管;电阻五、实验原理说明图1 AT89S52引脚图图2 共阳极七段数码管引脚图1AT89S52引脚图,说明如下:按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O 口、控制和复位等。

1.多功能I/O口AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 ~ P0.7,P1.0 ~ P1.7,P2.0 ~ P2.7,P3.0 ~ P3.7,共32根I/O线。

每根线可以单独用作输入或输出。

①P0端口,该口是一个8位漏极开路的双向I/O口。

在作为输出口时,每根引脚可以带动8个TTL输入负载。

当把“1”写入P0时,则它的引脚可用作高阻抗输入。

当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。

在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。

②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

4乘4键盘与四位七段数码管的应用源程序、电路仿真图

4乘4键盘与四位七段数码管的应用源程序、电路仿真图

/* ch05-4-4.c - 4x4键盘与4个7节显示器实验, P1.4~7为共用扫描信号 *//* P1.0~3为键盘输入值,P2为7节显示器直接输出 *///==声明区================================================ #include <reg51.h> // 定义8051暂存器之标头档#define KEYP P2 // 扫瞄输出端口(高位元)及键盘输入端口(低位元) #define SEG7P P0 // 7节显示器(g~a)输出埤unsigned char code TAB[17]= // 共阳7节显示器(g~a)编码{ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, // 数字0-40x92, 0x82, 0xf8, 0x80, 0x98, // 数字5-90xa0, 0x83, 0xa7, 0xa1, 0x84, // 字母a-e(10-14)0x8e, 0xbf}; // 字母F(15),负号(-)unsigned char disp[4]={ 0xbf, 0xbf, 0xbf, 0xbf }; // 显示阵列初值为负号(-)unsigned char scan[4]={ 0xef, 0xdf ,0xbf ,0x7f }; // 7显示器及键盘之扫瞄码void delay1ms(int); // 声明延迟函数void scanner(void); // 声明扫瞄函数//==主程序================================================ main() // 主程序开始{ while(1) // 无穷回圈,程序一直跑scanner(); // 扫瞄键盘及显示7段显示器} // 主程序结束// === 延迟函数,延迟约x*1ms ================================void delay1ms(int x) // 防弹跳函数开始{ int i,j; // 声明整数变数ifor(i=0;i<x;i++) // 计数x次,延迟约*1msfor(j=0;j<120;j++); // 计数120次,延迟约1ms} // 防弹跳函数结束// ======= 扫瞄4*4键盘及4个7节显示器函数 ================void scanner(void) // 扫瞄函数开始{ unsigned char col,row,dig; // 声明变数(col:行,row:列,dig:颢示位)unsigned char rowkey,kcode; // 声明变数(rowkey:列键值,kcode:按键码)for(col=0;col<4;col++) // for回圈,扫瞄第col行{ KEYP = scan[col]; // 高4位输出扫瞄信号,低4位元输入列值SEG7P = disp[col]; // 输出第col行数字rowkey= ~KEYP & 0x0f;// 读入KEYP低4位,反相再清除高4位求出列键值if(rowkey != 0) // 若有按键{ if(rowkey == 0x01) row=0;// 若第0列被按下else if(rowkey == 0x02) row=1;// 若第1列被按下else if(rowkey == 0x04) row=2;// 若第2列被按下else if(rowkey == 0x08) row=3;// 若第3列被按下kcode = 4 * col + row; // 算出按键之号码for(dig = 0; dig < 3 ; dig++) // 显示阵列之左3字disp[dig]=disp[dig+1]; // 将右侧编码左移1位disp[3]=TAB[kcode]; // 键值编码後,写入最右侧while(rowkey != 0) // 当按钮未放开rowkey=~KEYP & 0x0f; // 再读入列键值} // if叙述(有按键时)结束delay1ms(4); // 延迟4ms} // for回圈结束(扫瞄col行) } // 扫瞄函数scanner()结束电路仿真图:。

嵌入式微机系统数码管显示实验报告

嵌入式微机系统数码管显示实验报告

码管显示程序设计1.实验目的(1)了解数码管的显示原理;(2)掌握JX44B0中数码显示的编程方法。

2.实验内容设计LED数码管显示程序,要求六位LED数码管滚动显示0~9数字字符以及两至三个固定的英文单词。

3.实验设备(1)硬件:JX44B0教学实验箱、PC机;(2)软件:PC机操作系统Windows 98(2000\XP)+ADT IDE集成开发环境。

4.实验原理(1)LED显示原理发光二极管数码显示器简称LED显示器。

LED显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点,目前广泛应用于嵌入式系统中。

7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。

一般共阴极可以不需外接电阻,但共阳极接法中发光二极管必须外接电阻。

LED的结构及连接图见图1.1。

图1.1 LED结构及连接图当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。

因此要显示某字形就应使此字形的相应段的二极管点亮,也就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的段码。

字符0、1、2…F与LED码段A、B、C…F以及DP(小数点)的关系如表5-1所示:表1.1 LED字符与码段对应表字符DP G F E D C B A 段码(共阴)段码(共阳)0 0 0 1 1 1 1 1 1 3FH C0H1 0 0 0 0 0 1 1 0 06H F9H2 0 1 0 1 1 0 1 1 5BH A4H3 0 1 0 0 1 1 1 1 4FH B0H4 0 1 1 0 0 1 1 0 66H 99H共阳的LED,被选中时的段为低电平有效.熄灭的段码为FFH。

本次试验系统中采用的是共阳极接法。

(2)LED显示接口LED显示器的接口一般有静态显示与动态显示接口两种方式1)静态显示LED数码管采用静态接口时,共阴极或共阳极点连接在一起接地或接高电平。

嵌入式LED和数码管实验报告

嵌入式LED和数码管实验报告

LED_CS4 = (LED_VALUE << i) -1; j++; Delay(300); LED_CS2 = 0x2127; LED_CS3 = 0x0e06; i=j%8; LED_CS4 = (LED_VALUE << i) -1; j++; Delay(300); LED_CS2 = 0x0621; LED_CS3 = 0x8f0e; i=j%8; LED_CS4 = (LED_VALUE << i) -1; j++; Delay(300); LED_CS2 = 0x0e06; LED_CS3 = 0x8f8f; i=j%8; LED_CS4 = (LED_VALUE << i) -1; j++; Delay(300); LED_CS2 = 0x8f0e; LED_CS3 = 0x8f8f; i=j%8; LED_CS4 = (LED_VALUE << i) -1; j++; } } //F 0 //0 0 //E F //0 0 //d E //F 0 //c d //E F
LED_CS4 的地址为 0x10500000
2、Led 显示原理解释
BD0、BD1、BD2、BD3、BD4、BD5、BD6、BD7 分别对应于试验箱的 H1、H2、 H3、H5、H5、H6、H7、H8。 Led 灯是共阳极的,所以是低电平亮,即BDi (i=0~7)为 0 时对应的 Led 灯 亮。
实验报告一
一、实验内容
1、引导程序:Led 跑马灯显示
在现有程序 H1H2…H8(1 对应最左面的 LED)由左到右显示的基础上,改进为 从右向左一次显示,然后改为先由左到右,再由右到左依次显示

ARM嵌入式实验报告

ARM嵌入式实验报告

ARM嵌入式实验报告一、实验目的本次实验的目的是了解ARM嵌入式系统的基本概念、架构,并通过实际操作了解ARM嵌入式系统的软硬件调试方法和流程。

二、实验原理ARM(Advanced RISC Machines)是一种精简指令集计算(RISC)架构的处理器。

在嵌入式系统领域,ARM处理器具有低功耗、高性能、易扩展等特点,被广泛应用于移动设备、物联网等领域。

本次实验使用的是ARM Cortex-M系列处理器,其主要特点如下:1.低功耗:采用了先进的低功耗技术,适用于电池供电的嵌入式系统。

2.高性能:采用了指令流水线和乱序执行等技术,提高了处理器的运行效率。

3.易扩展:支持多核架构和内核扩展,满足不同应用的需求。

在实验中,我们将通过Keil MDK开发环境和ARM开发板进行ARM嵌入式系统的开发,实现简单的功能。

三、实验步骤1.硬件搭建:连接ARM开发板,通过USB进行电源供给和通信。

2. 软件配置:在Keil MDK中配置开发环境,包括选择芯片型号、设置编译器和调试器等。

3.编写程序:使用C语言编写嵌入式程序,通过调用ARM提供的库函数实现所需功能。

5.调试和测试:通过调试器对程序进行调试,并使用示波器等工具进行性能测试和验证功能的正确性。

四、实验结果经过实验,我们成功实现了一个简单的功能:通过按键控制LED灯的亮灭。

在按键按下的时候,LED灯会亮起,松开按键后,LED灯熄灭。

五、实验总结通过本次实验,我们深入了解了ARM嵌入式系统的基本概念和架构,并通过实际操作了解了ARM嵌入式系统的软硬件调试方法和流程。

掌握了Keil MDK开发环境的使用技巧,学会了使用ARM提供的库函数编写嵌入式程序。

同时,我们也注意到了ARM嵌入式系统具有低功耗、高性能和易扩展等特点,对于实际应用具有很大的潜力。

然而,本次实验只是一个简单的示例,还远远不能满足实际应用的需求。

在未来的学习中,我们将进一步学习ARM嵌入式系统的高级应用,包括操作系统移植、网络通信和多任务处理等方面的知识,以便更好地应对实际的项目开发需求。

硬件课程设计(电子计算器)报告

硬件课程设计(电子计算器)报告

电子计算器的设计主要分为键盘的编码、七段LED 数码管的显示及四则运算法则的编写三部分。

设计中我们用可编程外围接口芯片8255A 连接键盘和七段LED 数码管,用七段LED 数码管显示键盘输入信号及运算结果,利用简单的汇编语言编写相应程序进行四位自然数的有效四则运算。

由于本次实验中,实验箱是HUSYE3-MIT-16/32微机接口实验仪采用模块化、积木式的结构,各实验模块互不影响。

但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。

实验箱中8279已经集成了键盘和LED数码管显示的功能。

因此,本次实验是采用了硬件设计更为简单而功能强大的8279辅助完成实验。

关键词:8279;七段LED 数码管;汇编语言;四则运算目录1选题与需求分析 (1)1.1选题 (1)1.2需求分析 (1)1.2.1课题的功能需求 (1)2总体设计 (2)2.1硬件方案 (2)2.2软件方案 (2)3详细设计 (5)3.1硬件实现 (5)3.2软件实现 (5)4设计结果 (10)5收获与体会 (15)6参考文献 (16)7附录....................................................................................... 错误!未定义书签。

1 选题与需求分析1.1 选题我选的题目是电子计算器。

电子计算器的设计主要分为键盘的编码、七段LED 数码管的显示及四则运算法则的编写三部分。

设计中我们用可编程外围接口芯片8255A 连接键盘和七段LED 数码管,用七段LED 数码管显示键盘输入信号及运算结果,利用简单的汇编语言编写相应程序进行四位自然数的有效四则运算。

由于本次实验中,实验箱是HUSYE3-MIT-16/32微机接口实验仪采用模块化、积木式的结构,各实验模块互不影响。

但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。

实验箱中8279已经集成了键盘和LED数码管显示的功能。

《嵌入式系统》课程实验指导书

《嵌入式系统》课程实验指导书

《嵌入式系统》课程实验指导书第一部分实验教学系统硬件介绍第二部分Embest IDE集成开发环境使用说明第三部分实验指导第一部分实验教学系统硬件介绍1.1教学系统的硬件电路Embest S3CEV40开发板是实验系统的主要硬件平台,它是英蓓特公司开发的一款全功能ARM开发板,基于Samsung公司的S3C44B0X处理器(ARM7TDMI),资源丰富。

硬件系统包含了嵌入式系统开发应用所需的大部分设备,如串口、以太网口、USB口、音频输出、LCD及TSP触摸屏、4*4的小键盘、固态硬盘、大容量的Flash和SDRAM等等。

用户不仅可以在该硬件平台上完成实验系统提供的实验例子,还可以参考该平台设计自己的目标系统。

该硬件平台如下图所示:图1-1 实验系统硬件平台Embest S3CEV40开发板的基本资源如下:●电源:外部5V电源供电或者由USB接PC供电,电源指示LED以及500mA保险丝●1M×16bit Flash●4×1M×16bit SDRAM●4Kbit IIC BUS的串行EEPROM●2个串口,其中一个为简单接口,一个为全接线接口,可跳接RS232 MODEM●复位开关●两个中断按钮,两个LED●外部IDE硬盘接口●LCD及TSP触摸屏接口●20针JTAG接口●USB连接器●4×4键盘接口●4个2×20PIN CPU扩展接口●10M 以太网接口●8段数码管●MICROPHONE输入口●IIS音频信号输出口,可接双声道SPEAKER●固态硬盘16M×8bit●320*240 带触摸功能的显示屏Embest ARM教学系统主要功能模块如图1-2 所示:图1-2 Embest S3CEV40功能模块1、存储系统实验系统上的存储系统包括一片1M×16bit的Flash(SST39VF160)和一片4M×16bit 的SDRAM(HY57V65160B)。

实验七八 七段数码管

实验七八 七段数码管

课程实验报告学年学期2013-2014学年第1学期课程名称微机原理实验名称实验七七段数码管专业年级电气113班学生姓名屈巧鸽学生学号2011011976提交时间2013,12.成绩任课教师朱晓群,谭亲跃实验七七段数码管2.4.1实验目的(1)掌握8255的基本工作原理及编程方法。

(2)掌握数码管显示数字的原理。

2.4.2实验内容(1)实验电路如图2-17所示,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

编程从8255C口输入数据,再从A口输出。

实验程序流程图如图2-18所示。

(2)实验电路如图2-19所示,按图3连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。

编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

注:实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

编程从8255C口输入数据,再从A口输出。

实验程序流程图如图2-20所示。

图2-17 8255接口电路图1 图2-18 程序流程图2.4.3 参考程序 (1)参考程序1ioport equ 0cf00h-0280hio8255a equ ioport+288h ; 8255A 口地址 io8255b equ ioport+28bh ; 8525控制端口地址 io8255c equ ioport+28ah code segment assume cs:codestart: mov dx,io8255b ;设置8255工作方式:C 口输入,A 口输出 mov al,89h out dx,alinout: mov dx,io8255c ;从C 口输入数据 in al,dxmov dx,io8255a ;将该数据从A 口输出 outdx,al图2-19 8255接口电路2 图2-20 程序流程图mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回DOSint 21hcode endsend start(2)参考程序2data segmentioport equ 0cf00h-0280hio8255a equ ioport+288h ;8255A口地址io8255b equ ioport+28bh ;8525控制端口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,'Input a num (0-9h):',0dh,0ah,'$'data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255b ;使8255的A口为输出方式mov al,89hout dx,alsss: lea dx,mesg1 ;显示提示信息mov ah,09hint 21hmov ah,1 ;从键盘接收字符int 21hcmp al,30h ;是否小于0jl exit ;若是则转exit,退出cmp al,39h ;是否大于9jg exit ;若是则转exit,退出sub al,30h ;将所得字符的ASCII码减30Hlea bx,led ;取bx为数码表的起始地址xlat ;查数码表,求出相应的段码mov dx,io8255a ;从8255的A口输出段码out dx,aljmp sss ;转sssexit: mov ah,4ch ;返回DOSint 21hcode endsend start(3)参考程序3(动态显示)data segmentioport equ 0cf00h-0280hio8255a equ ioport+28ahio8255b equ ioport+28bhio8255c equ ioport+288hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码buffer1 db 0,0 ;存放要显示的十位和个位bz dw ? ;位码data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b ;将8255设为A口输出mov al,80hout dx,almov di,offset buffer1 ;设di为显示缓冲区loop1: mov cx,0300h ;循环次数loop2: mov bh,02lll: mov byte ptr bz,bhpush didec diadd di, bzmov bl,[di] ;bl为要显示的数pop dimov bh,0mov si,offset led ;置led数码表偏移地址为SIadd si,bx ;求出对应的led数码mov al,byte ptr [si]mov dx,io8255c ;自8255A的口输出out dx,almov al,byte ptr bz ;使相应的数码管亮mov dx,io8255aout dx,alpush cxmov cx,0ffffh ;如果显示过快,可更改cx值为最大0ffffh delay: loop delay ;延时pop cxmov bh,byte ptr bzshr bh,1jnz lllloop loop2 ;循环延时mov ax,word ptr [di]cmp ah,09jnz setcmp al,09jnz setmov ax,0000mov [di],almov [di+1],ahjmp loop1set: mov ah,01int 16hjne exit ;有键按下则转exitmov ax,word ptr [di]inc alaaamov [di],al ;al为十位mov [di+1],ah ;ah中为个位jmp loop1exit: mov dx,io8255amov al,0 ;关掉数码管显示out dx,almov ah,4ch ;返回DOSint 21hcode endsend start课程实验报告学年学期2013-2014学年第1学期课程名称微机原理实验名称实验八交通灯控制实验专业年级电气113班学生姓名屈巧鸽学生学号2011011976提交时间2013,12.成绩任课教师朱晓群,谭亲跃2.5 实验八交通灯控制实验2.5.1实验目的通过8255实现十字路口交通灯的模拟控制,并进一步掌握对并行口的使用。

嵌入式应用设计综合课程设计键盘控制数码管的数字输入及其运算实验PPT文档共16页

嵌入式应用设计综合课程设计键盘控制数码管的数字输入及其运算实验PPT文档共16页
嵌入式应用设计综合课程设计 键盘控制数码管的数字输入及
其运算实验
11、战争满足了,或曾经满足过人的 好斗的 本能, 但它同 时还满 足了人 对掠夺 ,破坏 以及残 酷的纪 律和专 制力的 欲望。 ——查·埃利奥 特 12、不应把纪律仅仅看成教育的手段 。纪律 是教育 过程的 结果, 首先是 学生集 体表现 在一切 生活领 域—— 生产、 日常生 活、学 校、文 化等领 域中努 力的结 果。— —马卡 连柯(名 言网)
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
13、遵守纪律的风气的培养,只有领 导者本 身在这 方面以 身作则 才能收 到成效 。—— 马卡连 柯 14、劳动者的组织性、纪律性、坚毅 精神以 及同全 世界劳 动者的 团结一 致,是 取得最 后胜利 的保证 。—— 列宁 摘自名
谢谢你的阅读
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三键盘接口和七段数码管的控制实验
一、实验目的
1. 学习4X4键盘的与CPU的接口原理
2. 掌握键盘芯片HD7279的使用,及8位数码管的显示方法;
二、实验内容
1. 通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。

三、实验设备
1.EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。

2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,
仿真调试驱动程序。

四、实验原理
键盘和7段数码管的控制实验,是通过键盘的控制芯片HD7279A来完成的。

它的信号线及控制线连接到S3C2410上,驱动线直接连到8位共阴的7段数码管上。

由于其芯片的接口电压是5V的,而S3C2410的接口电压是3.3V,所以,HD7279A的信号、控制线经过CPLD 把电压转换到3.3V,然后送入CPU中。

HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片。

该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。

内部含有译码器可直接接受BCD码或16进制码并同时具有两种译码方式。

此外还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等,具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。

HD7279在与S3C2410接口中,它使用了4根接口线。

片选信号#CS(低电平有效),时钟信号CLK,数据收发信号DATA,中断信号#KEY(低电平送出),EL-ARM-830+实验箱与其的接口中,使用了三个通用I/O接口,和一个外部中断,实现了与HD7279A的连接,S3C2410的外部中断接HD7279的中断#KEY,三个I/O口分别与HD7279A的其他控制、数据信号线相连。

HD7279的其他管脚分别接4X4按键和8位数码管。

当程序运行时,按下按键,平时为高电平的HD7279A的#KEY就会产生一个低电平,送给S3C2410的外部中断5请求脚,在CPU中断请求位打开的状态下,CPU会立即响应外部中断5的请求,PC指针就跳入中断异常向量地址处,进而跳入中断服务子程序中,由于外部中断4/5/6/7使用同一个中断控制器,所以,还必须判断一个状态寄存器,判断是否是外部中断5的中断请求,当判断出是外部中断5的中断请求,则程序继续执行,CPU 这时,通过发送#CS片选信号选中HD7279A,再发送时钟CLK信号和通过DATA线发送控制指令信号给HD7279A,HD7279A得到CPU发送的命令后,识别出该命令,然后,扫描按键,
把得到键值回送给CPU,同时,在8位数码管上显示相关的指令内容,CPU在得到按键后,有时,程序还会给此键值一定的意义,然后再通过识别此按键的意义,进而进行相应的程序处理。

要进一步开发显示功能,请参见关于HD7279芯片及相应的编程资料
HD7279A.PDF的文档,其中有详细、完备的编程资料。

详细具体的应用,请参见\实验程序\HARDWARE\ADS\实验十一目录下的Key_Led.mcp项目文件。

请详细阅读代码注释。

五、实验步骤
1.本实验使用实验教学系统的CPU板,键盘、8位数码管。

在进行本实验时、AD通道选择开关、LCD电源开关、音频的左右声道开关、触摸屏中断选择开关等均应处在关闭状态。

2.在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。

3.打开超级终端,配置串口的属性(如COM1),配置波特率为115200,校验位无,数据位为8,停止位为1,数据控制流为无;检查连接是否可靠,可靠后,接入电源线,系统上电,同时按住“空格”键,进入VIVI状态。

4.打开ADS1.2开发环境,从里面打开\实验程序\HARDWARE\ADS\实验十一\Key_Led.mcp 项目文件,进行编译。

5.编译通过后,进入ADS1.2调试界面,加载实验程序\HARDWARE\ADS\实验十一\Key_Led_Data\Debug中的映象文件程序映像Key_Led.axf。

6.在ADS调试环境下全速运行映象文件。

按下任意键值,观察数码管的显示。

说明:“0”键表示数码管测试,8个数码管闪烁,“4”键表示数码管复位,“1”键表示数码管右移8位,“2”键表示数码管循环右移,“9”键表示数码管左移8位,“A”键表示数码管循环左移。

其他按键在最右两个数码管上显示键值。

根据HD7279A.PDF文档可以进一步开发具体的相应的程序。

相关文档
最新文档