西安电子科技大学单片机报告

上传人:第*** 文档编号:55704414 上传时间:2018-10-04 格式:DOC 页数:62 大小:2.13MB
返回 下载 相关 举报
西安电子科技大学单片机报告_第1页
第1页 / 共62页
西安电子科技大学单片机报告_第2页
第2页 / 共62页
西安电子科技大学单片机报告_第3页
第3页 / 共62页
西安电子科技大学单片机报告_第4页
第4页 / 共62页
西安电子科技大学单片机报告_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《西安电子科技大学单片机报告》由会员分享,可在线阅读,更多相关《西安电子科技大学单片机报告(62页珍藏版)》请在金锄头文库上搜索。

1、单片机实验报告单片机实验报告班级:学号:姓名:实验一:数码管实验一实验目的 1.了解数码管的显示原理; 2.掌握 JXARM9-2440 中数码管显示编程方法。 二实验原理7 段 LED 由 7 个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极 接法,阴极连在一起称为共阴极接法。 LED 显示器的接口一般有静态显示与动态显示接口两种方式。本实验中采用的是动态显示 接口,其中数码管扫描控制地址为 0x20007000,位 0位 5 每位分别对应一个数码管,将 其中某位清 0 来选择相应的数码管,地址 0x20006000 为数码管的数据寄存器。数码管采 用共阳方式,向该地址写一

2、个数据就可以控制 LED 的显示,其原理图如图所示。三实验内容及步骤 1、六个数码管同时正向显示 0-F ,然后反向显示 F-0。 1) 参照模板工程 leddemo(modulesleddemoleddemo.apj),添加相应的文件,并修改 led 的工程设置; 2) 创建 led.c 并加入到工程 led 中; 3) 编写 LED 显示函数 void led_display(void),正向显示 0-F 然后反向显示 F-0,并循环 执行以上动作,在每次显示之间延时一段时间; 4) 编译 led,成功后,下载并运行,观察结果。 2、在六个数码管上依次显示“HELLO” ,可分辨出轮流显示

3、。步骤同上。 3、在六个数码管上依次显示“HELLO” ,分辨不出轮流显示。步骤同上。 4、在每个数码管上递增显示 0-9 。步骤同上。四实验程序1、./*/ /*文件名称: LEDSEG7.C */ /*实验现象: 数码管依次显示出 0、1,2、9、a、b、C、d、E、F */ /*/ #define U8 unsigned char unsigned char seg7table16 = /* 0 1 2 3 4 5 6 7*/0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,/* 8 9 A B C D E F*/0x80, 0x90, 0x8

4、8, 0x83, 0xc6, 0xa1, 0x86, 0x8e, ; void Delay(int time); /*/ /* 函数说明: JXARM9-2410 7 段构共阳数码管测试 */ /* 功能描述: 依次在 7 段数码管上显示 0123456789ABCDEF */ /* 返回代码: 无 */ /* 参数说明: 无 */ /*/ void Test_Seg7(void) int i; *(U8*)0x20007000)=0x00; /*六个数码管都亮*/for( ; ;) for(i=0;i=0x0;i-) /*数码管从 F 到 0 依次显示出来*/ *(U8*)0x2000600

5、0)=seg7tablei;Delay(1000); / TODO /*/* Function name : 循环延时子程序 */ /* Description : 循环 time 次 */ /* Return type :void */ /* Argument : 循环延时计数器 */ /*/ void Delay(int time) int i; int delayLoopCount=1000;for(;time0;time-); for(i=0;i0;time-); for(i=0;i0;time-); for(i=0;i0;time-); for(i=0;i12) /* 初始化端口 *

6、/Port_Init();/* 初始化串口 */Uart_Init(0,115200);Uart_Select(0);/* 打印提示信息 */ PRINTF(“n-键盘测试程序-n“); PRINTF(“n 请将 UART0 与 PC 串口进行连接,然后启动超级终端程序(115200, 8, N, 1) n“);/* 开始回环测试 */ while(1) unsigned char ch; ch=Key_GetKeyPoll();/ TODO / 获取键值if(ch != 0) PRINTF(“r%c键按下“, ch); 实验结果:在小键盘上按键,串口上显示按键对应字符,如按 0,串口上显示

7、0。 2.在库函数中改变如下的 key 按键值,使对应于键盘上的位置 char key_get_char(int row, int col) char key = 0;switch( row ) case 0: if(col else if(col else if(col else if(col break; case 1: if(col else if(col else if(col else if(col break; case 2: if(col else if(col else if(col else if(col break; case 3: if(col else if(col e

8、lse if(col else if(col break; 实验结果:按下键盘的按键串口会按题图中所示对应显示 3./* 包含文件 */ #include “def.h“ #include “2410lib.h“ #include “option.h“ #include “2410addr.h“ #include “interrupt.h“ #include #include #define IIRNUMBER 2#define U8 unsigned char unsigned char table16 = /* 0 1 2 3 4 5 6 7*/0xc0, 0xf9, 0xa4, 0xb0

9、, 0x99, 0x92, 0x82, 0xf8,/* 8 9 A B C D E F*/0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e, ;/* / Function name: Main / Description : JXARM9-2440 键盘实验主程序 / 实现功能: / Return type: void / Argument : void */ void Main(void) /* 配置系统时钟 */ChangeClockDivider(2,1);U32 mpll_val = 0 ;mpll_val = (9212) /* 初始化端口

10、 */Port_Init();/* 初始化串口 */Uart_Init(0,115200);Uart_Select(0);/* 打印提示信息 */ PRINTF(“n-键盘测试程序-n“); PRINTF(“n 请将 UART0 与 PC 串口进行连接,然后启动超级终端程序(115200, 8, N, 1) n“);/*(unsigned long int *)0x48000000) = 0x22111120; *(unsigned long int *)0x4800000c) = 0x7ffc; while(1) *(unsigned short int *)0x10000000) = 0x

11、0; for(i=0;i0;time-); for(i=0;i12) /* 中断初始化 */Isr_Init();/* 初始化端口 */Port_Init();/* 初始化串口 */Uart_Init(0,115200);Uart_Select(0);/* 打印提示信息 */ PRINTF(“n-外部中断测试程序-n“); PRINTF(“n 请将 UART0 与 PC 串口进行连接,然后启动超级终端程序(115200, 8, N, 1) n“); PRINTF(“n 外部中断测试开始n“);/* 请求中断 */ Irq_Request(IRQ_EINT2, eint2_isr);/中断选择中断选择/Irq_Request(IRQ_EINT3, eint3_isr);/* 使能中断使能中断 */Irq_Enable(IRQ_EINT2);/Irq_Enable(IRQ_EINT3);dither_count2 = 0;dither_count3 = 0;while(1)delay();dither_count2+;dither_count3+; /* / Function name: eint2_isr / Description : EINT2 中断处理程序 / Return type: int / Argument : void *

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号