您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > S3C440Box嵌入式系统实验报告
1嵌入式系统实验报告姓名:努尔买买提·吐孙学号:12600123班级:计算机科学与技术非师范121班2实验一LCD控制一、实验目的1、初步掌握液晶显示屏的使用及其电路设计方法。2、掌握S3C44B0X处理器的LCD控制器的使用。3、通过实验掌握液晶显示文本和图形的方法以及程序设计方法。二、实验内容学习LCD显示器的基本原理,理解其驱动的控制方法。掌握S3C44B0X处理器的基本原理和方法,并编程实现:1、画出多个矩形框2、显示ASCII字符3、显示汉字字符三、实验流程图开始结束初始化LCD12864画坐标函数hua_zuobiao(voic)TLC2543读数据子函数LCD1602的更新显示延时子函数确定每个电压值对应的坐标点亮确定的值清屏3四、实验核心代码#include44b.h#includeuhal.h#includeoption.h#includedef.h#pragmaimport(__use_no_semihosting_swi)//ensurenofunctionsthatusesemihostingexternU32LCDBuffer[240][320];intmain(void){inti,j,k;U32jcolor;ARMTargetInit();//开发版初始化LCD_Init();//LCD初始化for(k=10;k200;k++)LCDBuffer[k][10]=0x000000e0;for(k=10;k200;k++)LCDBuffer[k][100]=0x000000e0;for(j=10;j100;j++)LCDBuffer[10][j]=0x000000e0;for(j=10;j100;j++)LCDBuffer[200][j]=0x000000e0;LCD_Refresh();while(1);return0;}4实验二键盘控制实验一、实验目的1、学习键盘及LED驱动原理。2、掌握ZLG7289芯片的使用方法。二、实验内容通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上面显示出来。三、实验流程图1、定义ZLG7289寄存器(zlg7289.h)2、定义键值读取函数否是否是开启zlg7289发送复位命令WriteSDIO(ZLG7289_CD_RST)关闭zlg7289延时开始是否有键按下从zlg7289读取键值键值是否有效通过键盘映射表得到按键值延时53、编写主函数,将键值在数码管上显示否是四、实验核心代码:#includeuhal.h#includekeyboard.h#includezlg7289.h#include44b.h#includemyuart.h#includeLCD320.h#pragmaimport(__use_no_semihosting_swi)externintZlg7289SIOBand;externintZlg7289SIOCtrl;intmain(void)初始化Zlg7289复位键值读取延时开启zlg7289发送个位数只显示个位关闭zlg7289显示十、个位发送十位数延时键值9?6{U32key;ARMTargetInit();//开发版初始化Uart_Printf(\nArmTargetInitOK.);Zlg7289_Reset();//zlg7289复位ARMTargetInit();//开发版初始化LCD_Init();LCD_ChangeMode(DspTxtMode);//转换LCD显示模式为文本显示模式LCD_Cls();//文本模式下清屏命令while(1){key=GetKey();//得到按键值Delay(7000);switch(key){case(0):LCD_printf(NUM\n);Uart_Printf(\nNUM\n);break;case(1):LCD_printf(/\n);Uart_Printf(\n1\n);break;case(2):LCD_printf(*\n);Uart_Printf(\n2\n);break;case(3):7LCD_printf(-\n);Uart_Printf(\n3\n);break;case(4):LCD_printf(7\n);Uart_Printf(\n4\n);break;case(5):LCD_printf(8\n);Uart_Printf(\n5\n);break;case(6):LCD_printf(9\n);Uart_Printf(\n6\n);break;case(7):LCD_printf(+\n);Uart_Printf(\n7\n);break;case(8):LCD_printf(4\n);Uart_Printf(\n8\n);break;case(9):LCD_printf(5\n);Uart_Printf(\n9\n);break;case(10):LCD_printf(6\n);Uart_Printf(\nNUMLOCK\n);break;case(11):LCD_printf(1\n);Uart_Printf(\n/\n);break;case(12):8LCD_printf(2\n);Uart_Printf(\n*\n);break;case(13):LCD_printf(3\n);Uart_Printf(\n-\n);break;case(14):LCD_printf(Enter\n);Uart_Printf(\nEnter\n);break;case(15):LCD_printf(0\n);Uart_Printf(\n+\n);break;case(16):LCD_printf(Dle\n);Uart_Printf(\nDle\n);break;}ZLG7289_ENABLE();//使zlg7289占有同步串口Delay(5);//延时WriteSDIO(ZLG7289_CMD_DATA0|0);//数码管以方式0译码,第一个数码管亮//WriteSDIO(key);//显示个位Delay(1);//延时*/if(key=4&&key16){switch(key){case(4):9WriteSDIO(7);Delay(1);break;case(5):WriteSDIO(8);Delay(1);break;case(6):WriteSDIO(9);Delay(1);break;case(8):WriteSDIO(4);Delay(1);break;case(9):WriteSDIO(5);Delay(1);break;case(10):WriteSDIO(6);Delay(1);break;case(11):WriteSDIO(1);Delay(1);break;10case(12):WriteSDIO(2);Delay(1);break;case(13):WriteSDIO(3);Delay(1);break;case(15):WriteSDIO(0);Delay(1);break;}}ZLG7289_DISABLE();//zlg7289放弃同步串口控制权}return0;}五、实验体会在本次实验,熟悉了键盘以及LED的驱动原理。键盘的闭合键,通常采用两种方法,即行扫描法和行反转法获取键值。同时还了解了ZLG7289芯片的特点和基本使用方法。11实验三A/D接口实验一、实验目的1、熟悉ARM本身自带的八路十位A/D控制器及相应寄存器。2、编程实现ARM系统的A/D功能,掌握带有A/D的CPU编程实现A/D功能的主要方法。二、实验内容学习A/D和LCD接口原理,了解实现A/D和LCD系统对于系统的软件和硬件要求。阅读ARM芯片文档,掌握ARM的A/D和LCD相关寄存器的功能,熟悉ARM系统硬件的A/D和LCD相关接口。利用外部模拟信号编程实现ARM循环采集全部前4路通道,并且在LCD上动态显示曲线。每个通道以不同颜色的画笔绘制曲线。三、实验流程图1、获取转换结果函数否是四、实验核心代码#include44b.h#includeuhal.h#includeoption.h#includedef.h启动延时通道延时返回转换结果转换结束?12#includemyuart.h#includeLCD320.hexternU32LCDBuffer[240][320];#pragmaimport(__use_no_semihosting_swi)#defineADCCON_FLAG0x40#defineADCCON_SLEEP0x20#defineADCCON_ADIN0(0x02)#defineADCCON_ADIN1(0x12)#defineADCCON_ADIN2(0x22)#defineADCCON_ADIN3(0x32)#defineADCCON_ADIN4(0x42)#defineADCCON_ADIN5(0x52)#defineADCCON_ADIN6(0x62)#defineADCCON_ADIN7(0x72)#defineADCCON_READ_START0x2#defineADCCON_ENABLE_START0x1voidinit_ADdevice(){//初始化rADCPSR=20;rADCCON=ADCCON_SLEEP;}intGetADresult(intchannel){rADCCON=(channel2)|ADCCON_ENABLE_START;Delay(10);while(!(rADCCON&ADCCON_FLAG));//转换结束13returnrADCDAT;//返回采样值}intmain(void){U32jcolor;U32jcolor1;U32jcolor2;U32jcolor3;intmid;intfs;inti,j,k,s,t;intpre[4];floatd;ARMTargetInit();//开发版初始化init_ADdevice();Uart_Printf(\n);LCD_Init();jcolor=0x0000e0e0;jcolor1=0x000000e0;jcolor2=0x00e0e0e0;jcolor3=0x0000e000;t=320;while(1){if(t==320){//采样0~3路A/D值14t=0;for(k=0;k240;k++)for(j=0;j320;j++)LCDBuffer[k][j]=0x00000000;//背景黑色}for(i=0;i1;i++){d=GetADresult(i)*2.5/1023;s=(int)(d*15);fs=55*(i+1)-s;LCDBuffer[fs][t]=jcolor;//线条颜色if(t!=0){mid=(pre[i]+fs)/2;for(k=pre[i];kmid;k++)LCDBuffer[k][t-1]=jcolor;for(k=mid;kfs;k++)LCDBuffer[k][t]=jcolor;for(k=mid;kpre[i];k++)LCDBuffer[k][t-1]=jcolor;for(k=fs;kmid;k++)LCDBuffer[k][t]=jcolor;}pre[i]=fs;}for(i=1;i2;i++){15d=GetADresult(i)*2.5/1023;s=(int)(d*15);fs=55*(i+1)-s;LCDBuffer[fs][t]=jcolor1;//线条颜色if(t!=0){mid=(pre[i]+fs)/2;for(k=pre[i];kmid;k++)LCDBuffer[k][t-1]=jcolor1;for(k=mid;kfs;k++)LCDBuffer[k][t]=jcolor1;for(k=mid;kpre[i];k++)LCDBuffer[k][t-1]=
本文标题:S3C440Box嵌入式系统实验报告
链接地址:https://www.777doc.com/doc-2856696 .html