《实验嵌入式二.docx》由会员分享,可在线阅读,更多相关《实验嵌入式二.docx(5页珍藏版)》请在三一办公上搜索。
1、5.2LED控制实验5.2.1实验目的.掌握利用S3C2410X芯片地址总线扩展的I/O来驱动LED显示;.了解ARM芯片中利用总线扩展I/O 口的使用方法。5.2.2实验设备.硬件:EmbestEduKit-IV平台,ULINK2 仿真器套件,PC 机;.软件:WisionIDEforARM集成开发环境,Windows98/2000/NT/XP5.2.3实验内容编写程序,控制实验平台的发光二极管LED1,LED2,LED3,LED4,使它们有规律的点亮和熄灭, 具体顺序如下:LED1 亮-LED2 亮-LED3 亮-LED4 亮-LED1 灭-LED2 灭-LED3 灭-LED4 灭 -全亮
2、- 全灭,如此反复。5.2.4实验原理在开发LED驱动之前,首先了解本实验的原理图:EduKit-IV设计了 5个LED ( D1 D5 )用于指示和控制系统的状态,其中。2指示电源的状态,其他4个的状态是用户可编程的(SYSLED1- SYSLED4 ),在EduKit-IV中,这4个LED的状态通过扩展I/O接口进行控制。EduKit-IVLED所用到的扩展I/O如图5-2-1所示:YCY1T2钏嚣AUD53CS1CS2CSJCS4C曙C瞒CS7MVHC138DT图5-2-1片选信号的产生利用3/8译码器将A18-A20扩展了 7个外设片选信号CS1-CS7。CS1和CS2引出到外部扩展接
3、口 EXCON_B3,CS3和CS4为总线扩展输入的芯片74HC541的片选。CS5,CS6 ,和CS7为总线扩 展输出的芯片74HC573的片选。片选信号在接入74HC573前经过了如下处理:图5-2-2OLE信号的产生其中CS5,CS6, CS73个片选信号和写使能信号通过74HC32或门输出一个选通信号LE为低电平。U1408MC74MIC04Start/StopDebugSession 项将编译出来的映像文件下载到SDRAM中,或者单击工具栏”按钮来下载。8 )下载完成后,单击菜单栏Debug-Run项运行程序,或者单击工具栏”按钮来全速运 行程序。用户也可以使用进行单步调试程序。9)
4、全速运行后,用户可以在超级终端看到程序运行的信息。10 )用户可以Stop程序运行,使用pVisionIDEforARM的一些调试窗口跟踪查看程序运行的信息。 注:如果在第4)步用户选择在Flash中运行,则编译链接成功后,单击菜单栏Flash-Download 项将程序固化到NorFlash中,或者单击工具栏按钮”固化程序,从实验平台的主板拔出丁人6 线,给实验平台重新上电,程序将自动运行。4. 观察实验结果在执行到第8 )步时,可以看到超级终端上输出如下字符。观察发光二极管的亮灭情况,可以 观察到的现象与前面实验内容中的相符,说明实验成功的实现了利用总线扩展/0对LED的驱动。*英待特Ed
5、uKit系瓦匿九式教学系统平台Embest EduKit Series Embedded leaching PlatformExpand I/O (Diode Led) Test ExampiePlease Look At The LEDSend.5. 完成实验练习题理解和掌握实验后,完成实验练习题。5.2.6实验参考程序/又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又 /*File : led_test.c*Author:embest*Desc : Led_Test*History
6、:女又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又/ */*/*includefiles*/*/*#include2410lib.h*/*/*constantdefine*/*/*#defineLEDADDR(*(volatileunsignedchar*)0x21180000)/LEDAddress/又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又 /* 女又又又又又
7、又又又又 *name:led_on*func:turnontheledsonebyone*para:none*ret:none*modify:*comment:女又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又 *女又又又又又又又又又/ */voidled_on(void)inti,nOut;nOut=0xFF;LEDADDR=nOut&0xFE;for(i=0;i100000;i+);LEDADDR=nOut&0xFC;for(i=0;i100000;i+);LEDADDR=n
8、Out&0xF8;for(i=0;i100000;i+);LEDADDR=nOut&0xF0;for(i=0;i100000;i+);/又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又 /* 女又又又又又又又又又 不不不不不不不不不不*name:led_off*func:turnofftheledsonebyone*para:none*ret:none*modify:*comment:* 不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不
9、不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不 */*/ voidled_off(void)inti,nOut;nOut=0xF0;LEDADDR=nOut|0x01;for(i=0;i100000;i+);LEDADDR=nOut|0x03;for(i=0;i100000;i+);LEDADDR=nOut|0x07;for(i=0;i100000;i+);LEDADDR=nOut|0x0F;for(i=0;i100000;i+);/*/* *name:ledonoff *func:turnonthe4ledsandthenturnoffthe4leds*para
10、:none*ret:none *modify:*comment:*/*/ voidled_on_off(void)inti;LEDADDR=0xF0;for(i=0;i100000;i+);LEDADDR=0xFF;for(i=0;i100000;i+);/*/* *name:ledtest *func:i/ocontroltest(led)*para:none*ret:none *modify:*comment:*/*/ voidled_test(void)uart_printf(ExpandI/O(DiodeLed)TestExamplen);uart_printf(PleaseLookAtTheLEDSn);led_on();led_off();led_on_off();delay(2000);uart_printf(end.n); 5.2.7练习题自己编写程序使数码管以不同的显示方式显示。