南昌大学嵌入式触摸屏控制实验

合集下载

基于嵌入式系统的PLC触摸屏控制系统设计与实现研究

基于嵌入式系统的PLC触摸屏控制系统设计与实现研究

基于嵌入式系统的 PLC触摸屏控制系统设计与实现研究摘要:嵌入式计算机技术跟随时代的脚步不断发展,现代的工业自动化数据处理器以嵌入式微处理器为核心,具备了高性能,稳定性、成本低、尺寸小、耗能小等优点。

在工业自动化应用系统中,嵌入式系统的简介PLC触摸屏控制系统可以完成对工业设备的在线远程监察和操控,大大的降低了人力的成本和其存在的安全隐患,从而大大的提升了生产和操作的效率,实现产率最大化,帮助企业更好的发展。

关键词:PLC;触摸屏;监测和控制系统引言:随着我国经济的高速发展,PLC的技术在发展领域中层层迈进,再加上与触摸屏的完美结合,使我国的自动化发展又取得了质的飞跃,在不久的将来一定会更加促进社会的进步和时代的创新。

本系统中触摸屏的设计,可以进行实时跟踪和远程在线操控的的双重功能,另外,在与工业中广泛采用的监察和操控系统相比较,本文设计的成品体积更小,更易携带,在新型自动化应用的嵌入式数据系统中具有广阔的前景。

1触摸屏监控系统的特点和应用触摸屏监控器又是编程终端,是人和机器交流的界面产品,当人们对屏幕进行控制时,其具有的双层结构的导体层就像是电阻网络,其中一层收到电压,形成电压梯度,当我们触摸屏幕时,上下两层就会接触在某一点上,我们就可以通过未加电压的那一层获取接触点的电压,从而知道接触点处的坐标,实现控制。

触摸屏可以随时跟踪动态,出现错误时,能及时采取补救应对的方案,其次,监控器能直接将数据传送给PLC,我们可以通过设置触摸屏上的按钮和开关,将触摸屏变成新的操作系统来实现传送功能。

2 PLC和触摸屏的组合控制概述PLC是可以控制一组输入/输出(例如传感器或执行器)的本地控制器设备,并且已被广泛用于工业应用中,PLC用于控制反复性的工作,例如制造单元管理,线控飞行控制或核电站停机系统,本身具有诸多的优点,操作简单,功能丰富多样,芯片还具有防干扰的设定,可以提高机器的稳定性,从而大大提升机器的性能,增加产效,PLC有很多的功能接口,在对其进行逻辑程序设计时,可以通过输入代码直接反映出后续的操作思想,做到机器和人脑的统一,PLC的串行口还能与一些常用的外接设备互联,例如触摸屏这类设备,从而提高人们控制的便捷性和出产效率。

南昌大学 嵌入式 实验报告 实验三

南昌大学 嵌入式 实验报告  实验三

学生姓名: xx 学号: x3 专业班级:xx班实验类型:□验证 综合□设计□创新实验日期:实验成绩:综合实验三触摸屏控制一、实验项目名称触摸屏控制二、实验目的了解触摸屏的基本工作原理,学会s3c2410ADC的配置三、实验基本原理:通过设置GPIO口及液晶触摸屏控制器等相关寄存器来达触摸相应菜单键来控制直流步进电机的转动,加速减速和改变方向,并同步超级终端。

程序思路和部分代码:1. 本次实验主要是设置触摸屏中断和ADC转换中断来实现将触摸屏触点转换成坐标。

在写下笔中断和抬笔中断时一定要在最开始写rINTSUBMSK |= (BIT_SUB_ADC|BIT_SUB_TC);来禁止ADC中断和触摸屏中断,否则按下一次有可能会多次中断,这是不允许的。

2. 实验通过在中断中处理AD转换后的坐标值,并设置了一个全局变量,通过改变这个全局变量的值达到不同的效果。

通过比较液晶屏上规划好的各个触摸范围,来跳转到相应的功能。

其具体函数如下://左上角按钮表示步进电机加速if(point_adcx>=0&&point_adcx<=500&&point_adcy>=0&&point_a dcy<=300){step_delay=step_delay-1;学生姓名: xx 学号: x3 专业班级:xx班实验类型:□验证 综合□设计□创新实验日期:实验成绩:UART_SendStr("电机加速");sprintf(disp_buf, "delay is %d \n", step_delay);UART_SendStr(disp_buf);if(step_delay<=1)step_delay=1;}//上中角按钮表示步进电机减速if(point_adcx>=0&&point_adcx<=500&&point_adcy>=300&&point _adcy<=600){step_delay=step_delay+1;UART_SendStr("电机减速");sprintf(disp_buf, "delay is %d \n", step_delay);UART_SendStr(disp_buf);if(step_delay>=10)step_delay=10;}//右上角按钮表示步进电机正反转if(point_adcx>=0&&point_adcx<=500&&point_adcy>=600){sprintf(disp_buf, "STEP_Motoflag is %d \n", STEP_Motoflag);UART_SendStr(disp_buf);学生姓名: xx 学号: x3 专业班级:xx班实验类型:□验证 综合□设计□创新实验日期:实验成绩:if(STEP_Motoflag==0)STEP_Motoflag=1;else STEP_Motoflag=0;DelayNS(50); // 停止步进电机,延时UART_SendStr("步进电机正反转\n");sprintf(disp_buf, "STEP_Motoflag is %d \n", STEP_Motoflag);UART_SendStr(disp_buf);//左下角按钮表示直流电机加速if(point_adcx>=500&&point_adcy>=0&&point_adcy<=300){pwm_duty= pwm_duty + 255/6; // 改变当前电机的速度if(pwm_duty>255){pwm_duty = 255/6;}rTCMPB0 = pwm_duty;UART_SendStr("直流电机加速");}//下中角按钮表示直流电机减速if(point_adcx>=500&&point_adcy>=300&&point_adcy<=600)学生姓名: xx 学号: x3 专业班级:xx班实验类型:□验证 综合□设计□创新实验日期:实验成绩:{pwm_duty= pwm_duty - 255/6; // 改变当前电机的速度级别if(pwm_duty<10){ pwm_duty = 255;}rTCMPB0 = pwm_duty;UART_SendStr("直流电机减速");}//右下角按钮表示直流电机正反转if(point_adcx>=500&&point_adcy>=600){if(DC_Motoflag==0)DC_Motoflag=1;else DC_Motoflag=0;UART_SendStr("直流电机正反转");}四、主要仪器设备及耗材实验箱一台,PC机一台,JTAG一个。

嵌入式实验报告_触摸屏驱动实验

嵌入式实验报告_触摸屏驱动实验

贵州大学实验报告学院:专业:班级:姓名学号实验组实验时间05.06 指导教师余佩嘉成绩实验项目名称触摸屏驱动实验实验目的1.了解触摸屏基本概念与原理。

2.理解触摸屏与 LCD 的密切配合。

3.编程实现对触摸屏的控制。

实验原理1.触摸屏原理触摸屏按其工作原理的不同分为表面声波屏、电容屏、电阻屏和红外屏几种。

常见的又数电阻触摸屏。

如图 3-20 所示,电阻触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。

如图 3-21 所示,当手指或笔触摸屏幕时(图 c),平常相互绝缘的两层导电层就在触摸点位置有了一个接触,因其中一面导电层(顶层)接通 X 轴方向的 5V 均匀电压场(图a),使得检测层(底层)的电压由零变为非零,控制器侦测到这个接通后,进行 A/D 转换,并将得到的电压值与 5V 相比即可得触摸点的 X 轴坐标为(原点在靠近接地点的那端): Xi=Lx*Vi / V(即分压原理)同理得出 Y 轴的坐标,这就是所有电阻触摸屏共同的最基本原理。

2.电阻触摸屏的有关技术电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层叫 ITO 的透明导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层导电层(ITO 或镍金)。

电阻触摸屏的两层 ITO 工作面必须是完整的,在每个工作面的两条边线上各涂一条银胶,一端加 5V 电压,一端加 0V,就能在工作面的一个方向上形成均匀连续的平行电压分布。

在侦测到有触摸后,立刻 A/D 转换测量接触点的模拟量电压值,根据5V 电压下的等比例公式就能计算出触摸点在这个方向上的位置。

嵌入式系统linux下触摸屏实验报告

嵌入式系统linux下触摸屏实验报告

一.硬件平台1、处理器:三星S3C2410,200MHZ2、内存:SDRAM,64M3、外存:NAND FLASH,64M4、LCD&触摸屏:SHARP,640×480,TFT5、串口:RS232,RS485二.处理器结构1、处理器核心MMU,DCACHE,ICACHE,JTAG2、系统总线SDRAM,FLASH,LCD,中断,USB3、外部总线串口,USB,GPIO试验一:bootloader (ads、引导)1、熟悉ADS 1.2开发工具创建、编译、下载、调试工程2、串口通讯串口控制器初始化、收/发数据3、配置主机端的nfs服务器配置主机端的nfs服务器,以连接linux核心4、下载并运行linux核心使用自己的串口程序下载并运行linux核心主要内容:•编写串口接收数据函数•编写串口发送数据函数•打印菜单,等待用户输入•下载并运行linux核心•配置主机的nfs服务器,与linux核心连接其他部分代码从教师用机中拷贝linux核心从教师机中拷贝主要步骤:•修改bootloader:菜单、串口收发、命令行;•使用ads1.2编译bootloader;•使用uarmjtag下载、调试bootloader;•使用axd查看变量、内存,单步跟踪;•配置超级终端,与bootloader通讯;•使用超级终端下载Linux核心映像;•启动Linux核心运行,察看结果;(bootloader调试成功后再继续以下步骤)•主机重起到ubuntu,配置nfs,配置cutecom;•重新下载Linux核心映像,启动核心运行后,察看是否成功加载nfs上的root文件系统。

需要补充的代码:接收串口数据并做相应处理while(1){打印菜单并等待用户输入;switch(ch) //根据用户输入做相应处理{case '1':imgsize=xmodem_receive((char *)KERNEL_BASE, MAX_KERNEL_SIZE);if(imgsize==0) //下载出错;else //下载成功;break;case '3':nand_read((unsigned char *)KERNEL_BASE, 0x00030000, 4*1024*1024);case '2':BootKernel(); //这里是不会返回的,否则出错;break;default:break;}}打印菜单:Uart_puts("Menu:\n\r");Uart_puts("1.Load kernel via Xmodem;\n\r");Uart_puts("2.Boot linux; \n\r");Uart_puts("3.Load kernel from flash and boot; \n\r");Uart_puts("Make your choice.\n\r");do{ch=Uart_getc();}while(ch!='1' && ch!='2' && ch!='3');串口读写:void Uart_putc(char c){while(!SERIAL_WRITE_READY());((UTXH0) = (c));}unsigned char Uart_getc( ){while(!SERIAL_CHAR_READY());return URXH0;}设置Linux核心启动命令行char *linux_cmd="noinitrd init=/init root=/dev/nfs nfsroot=,tcp ip= console=ttySAC0"; nfs服务器设置编辑/etc/export文件:/home/arm_os/filesystem/rootfs 目标板ip(rw,sync)/home/arm_os/filesystem/rootfs 主机ip(rw,sync)启动nfs服务器:/etc/init.d/nfs-kernel-server restart测试nfs服务器:mount 主机ip:/home/arm_os/filesystem/rootfs /mnt•试验二:linux kernel (gcc、make)1、熟悉基本的linux命令文件操作、文件编辑串口工具、程序开发2、配置linux核心make menuconfig3、交叉编译linux核心make zImage主要工作•熟悉基本的linux命令•配置linux核心•交叉编译linux核心•调试自己编译的核心•挂载nfs上的root(根目录)•编写一个小程序在目标板上运行主要步骤:•用root用户登录ubuntu (合理使用权限);•解压缩源码包到/home/下;•察看解压缩后的/home/arm_os目录:Linux核心、编译器、root等;•配置并测试nfs;•配置cutecom:115200,XModem,No line end;•配置核心:make menuconfig;•编译核心:make;•下载并运行核心,加载root文件系统;•重新设置cutecom为LF line end;•熟悉基本的Linux命令;•编写一个小程序在目标板上运行,察看结果。

嵌入式实训课实验报告

嵌入式实训课实验报告

一、实验背景嵌入式系统在现代工业、消费电子、智能家居等领域扮演着越来越重要的角色。

为了让学生深入了解嵌入式系统的设计原理和开发过程,提高学生的实践能力和创新精神,我们开设了嵌入式实训课程。

本次实验报告将针对实训课程中的部分实验进行总结和分析。

二、实验目的1. 掌握嵌入式系统的基本原理和开发流程。

2. 熟悉嵌入式开发工具和环境。

3. 熟练使用C语言进行嵌入式编程。

4. 学会调试和优化嵌入式程序。

三、实验内容本次实训课程共安排了五个实验,以下是每个实验的具体内容和实验步骤:实验一:使用NeoPixel库控制RGB LED灯带1. 实验目的:学习使用NeoPixel库控制RGB LED灯带,实现循环显示不同颜色。

2. 实验步骤:(1)搭建实验平台,连接NeoPixel LED灯带。

(2)编写程序,初始化NeoPixel库,设置LED灯带模式。

(3)通过循环,控制LED灯带显示不同的颜色。

实验二:使用tm1637库控制数码管显示器1. 实验目的:学习使用tm1637库控制数码管显示器,显示数字、十六进制数、温度值以及字符串,并实现字符串滚动显示和倒计时功能。

2. 实验步骤:(1)搭建实验平台,连接tm1637数码管显示器。

(2)编写程序,初始化tm1637库,设置显示模式。

(3)编写函数,实现数字、十六进制数、温度值的显示。

(4)编写函数,实现字符串滚动显示和倒计时功能。

实验三:使用ds18x20库和onewire库读取DS18B20温度传感器的数据1. 实验目的:学习使用ds18x20库和onewire库读取DS18B20温度传感器的数据,并输出温度值。

2. 实验步骤:(1)搭建实验平台,连接DS18B20温度传感器。

(2)编写程序,初始化ds18x20库和onewire库。

(3)编写函数,读取温度传感器的数据,并输出温度值。

实验四:使用ESP32开发板连接手机热点,并实现LED1作为连接指示灯1. 实验目的:学习使用ESP32开发板连接手机热点,并通过LED1指示灯显示连接状态。

嵌入式触摸屏实验

嵌入式触摸屏实验

触摸屏实验一、实验目的1.了解触摸屏的基本概念与原理。

2.理解触摸屏工作原理。

二、实验设备计算机;博创UP-3000实验箱三、实验步骤1.新建工程,将“\3000的ADS实验\Exp8 触摸屏实验”中的文件添加到工程中。

2.定义头文件中的宏定义。

3.阅读触摸屏读取触摸点x,y电压值、坐标程序,画出流程图。

4.编写触摸点坐标及动作判断函数U32 TchScr_GetOSXY(int *x, int *y),返回值为触摸动作,画出程序流程图。

5.提高部分:与LCD结合,实现手写板功能,在触摸屏上画线,在LCD上显示出来。

6.提高部分:与LCD结合,实现按钮功能,在LCD上画一矩形按钮,点击该按钮,实现某个操作。

四、程序流程图,程序源代码及注释和程序运行结果(截屏)。

触摸点坐标判断函数:U32 TchScr_GetOSXY(int *x, int *y) {//获得触摸点坐标并返回触摸动作static U32 mode=0;static int oldx,oldy;int i,j;for(;;){if((mode!=TCHSCR_ACTION_DOWN) && (mode!=TCHSCR_ACTION_MOVE)){if(!TCHSCR_IsPenNotDown){//有触摸动作TchScr_GetScrXY(x,y,TRUE);//得到触摸点坐标for(i=0;i<40;i++){if(TCHSCR_IsPenNotDown)//抬起break;Delay(100);}if(i<40){ //在规定的双击时间之内抬起,检测是不是及时按下for(i=0;i<60;i++){if(!TCHSCR_IsPenNotDown){if (i<10) {i=60;break;}//如果单击后很短时间内按下,不视为双击mode=TCHSCR_ACTION_DBCLICK;for(j=0;j<40;j++) Delay(100);//检测到双击后延时,防止拖尾break;}Delay(100);}if(i==60)//没有在规定的时间内按下mode=TCHSCR_ACTION_CLICK;}else{ //没有在规定的时间内抬起mode=TCHSCR_ACTION_DOWN;}break;}}else{if(TCHSCR_IsPenNotDown){ //抬起mode=TCHSCR_ACTION_UP;*x=oldx;*y=oldy;return mode;}else{TchScr_GetScrXY(x, y,TRUE);if(ABS(oldx-*x)>4 ||ABS( oldy-*y)>4){//有移动动作mode=TCHSCR_ACTION_MOVE;break;}}}Delay(50);}oldx=*x;oldy=*y;//编写该函数return mode;}画线函数:void TchScr_Test(){U32 mode1,mode2;int x1,y1,x2,y2,i,j,p,q;float k;Uart_Printf("\nplease touch the screen\n");//画直线for(;;){mode1=TchScr_GetOSXY(&x1,&y1);//获得触摸点坐标并返回触摸动作if(mode1==TCHSCR_ACTION_CLICK){Uart_Printf("Action=click:x=%d,\t y=%d\n",x1,y1);Delay(1000);Uart_Printf("please touch another click");mode2=TchScr_GetOSXY(&x2, &y2);//获得触摸点坐标并返回触摸动作Uart_Printf("Action=click:x=%d,\t y=%d\n",x2,y2);Delay(1000);if(x1==x2) //无斜率情况{for(i=y1;i<=y2;i++){LCDBuffer[i][x1]=0x0000e000;}}elseif(abs(x1-x2)>=abs(y1-y2)){k=(y2-y1)/(x2-x1);if(x1<x2){for(j=x1;j<=x2;j++){ i=(int)(y1+k*(j-x1));LCDBuffer[i][j]=0x0000e000;}}else{for(j=x2;j<=x1;j++){ i=(int)(y1-k*(x1-j));LCDBuffer[i][j]=0x0000e000;}}}else{k=(y2-y1)/(x2-x1);if(y1<y2){for(i=y1;i<=y2;i++){j=(int)(x1+(i-y1)/k);LCDBuffer[i][j]=0x0000e000;}}else{for(i=y2;y<=y1;y++){j=(int)(x1-(y1-i)/k);LCDBuffer[i][j]=0x0000e000;}}}LCD_Refresh();}}}矩形按键控制步进电机函数:void TchScr_Test(){U32 mode,mode1,mode2;int x,y,x1,y1,x2,y2,i,j,p,q;float k;//////////////A, AB, B, BC, C CD, D, DAintstepdata[]={0x10,0x30,0x20,0x60,0x40, 0xc0,0x80,0x90};//正向转动时的位控制数组intstepdata1[]={0x90,0x80,0xc0,0x40,0x60 ,0x20,0x30,0x10};//反向转动时的*** Uart_Printf("\nplease touch the screen\n");//控制电机for(i=70;i<=120;i++)for(j=150;j<=210;j++){LCDBuffer[i][j]=0x0000e000;}LCD_Refresh();for(;;){mode=TchScr_GetOSXY(&x,&y);if(x>=150&&x<=210&&y>=70&&y<=120) //区域判断{if(mode==TCHSCR_ACTION_CLICK)//单击正转{for(j=0;j<20000;j++)//设置转动次数,尽量大会效果明显{for(i=0;i<8;i++)//步距角为360/512/8,所以即使四相步机转一次也不会有明显转动现象{SETEXIOBITMASK(stepdata[i],0xF0);//通过宏定义空位EXIO的高四位来控制步进机正向转动Delay(3000);}}}else if(mode==TCHSCR_ACTION_DBCLICK)//双击反转{for(j=0;j<20000;j++){for(i=0;i<8;i++){SETEXIOBITMASK(stepdata1[i],0xF0);//反向转Delay(3000);}}}}}}结果截图:五、实验心得通过本次实验,了解的触摸屏的基本实现原理,我们所用的实验箱的触摸屏为电阻式,基本原理是检测触摸点被压下后的电压值来返回坐标,还有一种触摸屏为电容式。

南昌大学嵌入式综合实验一介绍

南昌大学嵌入式综合实验一介绍

综合实验一直流、步进电机综合控制系统设计一、实验项目名称直流、步进电机综合控制系统设计二、实验目的1、初步熟悉实验GPIO口的初始化设置,并熟悉实验箱各个模块的功能2、掌握步进机的控制原理及利用延时脉冲来改变步进电机速度3、掌握直流电机的控制原理及利用pwm占空比控制来改变速度4、学习IIC总线读取和写数据原理,并掌握对CAT1025E2PROOM操作方法5、学会控制数码管的显示UART串口函数,并初步掌握中断处理函数的写法三、实验基本原理基于S3C2440处理器分别控制LED灯闪烁,串口打印,RTC显示,步进电机控制和直流电机控制以及EEPROM的读写。

由于S3C2440自带串口模块,RTC模块和EEPROM模块,配置好相应的寄存器值就可控制好各种外设。

一、GPIO口设置S3C2410芯片共计有117个GPIO口,每个GPIO口都至少有三个功能(输入、输出、第三功能等)每个GPIO口都有三个寄存器:CON寄存器设置其功能,DAT寄存器设置其高低电平,UP寄存器设置其是否使能上拉电阻。

具体设置可参考用户手册。

代码举例:rGPEDAT=rGPEDAT|(0x03<<11)设置GPE11、GPE12为高电平rGPECON=(rGPECON&(~(0x0F<<22)))|(0x05<<22);设置GPE11、GPE12为GPIO输出模式二、RTC设置RTC能够提供时分秒,年月日的计时功能,还具备定时报警功能。

RTC 单元使用后备电池供电,独立的时钟源(32.768khz)。

读取RTC需要先对其进行设置。

对其相关的有RTCCON,BCDYEAR,BCDMON,BCDDATE,BCDHOUR,BCDMON,BCDSECORD,BCDDAY.寄存器。

如下面的代码if(date){g_year=rBCDYEAR;g_month=rBCDMON;g_date=rBCDDATE;g_day=rBCDDAY;}g_hour=rBCDHOUR;g_min=rBCDMIN;g_sec=rBCDSEC;三、步进电机步进电机是将电脉冲转化为角位移的数据控制电机,电机步距18度,四相控制(AB-BC-CD-DA-AB)[正转](AB-DA-CD-BC-AB)[反转]。

嵌入式系统中的触摸屏及其控制

嵌入式系统中的触摸屏及其控制

第20卷第1期电脑开发与应用文苹编号:1003—5850(2007)01一0039一03嵌入式系统中的触摸屏及其控制Touch—screenanditsControlintheEmbeddedSvstem温景阳1于同2付梦印1陶然1张全海3f1北京理工大学\f2中国兵器科学研究院\f3中信昊园北京公司\Ij匕哥:10008l/Ij匕京100089/Ij匕焉}l00000/【摘要】触摸屏逐渐取代键盘成为嵌入式系统常选用的人机交互工具。

并以四线电阻式触摸屏和触摸屏控制器ADS7843,从系统的硬件入手,分析整个系统的硬软件原理及其实现方法,结合硬件的实现原理,阐述在WindowsCE系统下,触摸屏驱动的结构以及软件,的实现方法。

【关键词】嵌入式系统,触摸屏,控制器,驱动软件中图分类号:TP334.23文献标识码:AABSTRACTThetouch—screengraduallyreplacesthekeyboardandbecomestheman—machineinteractivetoolsoftheembeddedsystem.Andtakingfourresistancestouch—screenanditscontrollerADS7843asanexample,thispaperanalyzesthetheoryofhardwareandsoftwareofthesystemandtheimplementationapproach.Onthebasisofhardwareimplementationprinciple,thispaperalsoexpoundsthestructureoftouch—drivenscreenandsoftwareimplementationinWindowsCEsystem.KEYWoRDSembeddedsvstem,touch—screen,controlIer,drivesoftware在便携式的电子类产品中,触摸屏由于其轻便、占用空间少、方便灵活等优点,已经逐渐取代键盘成为嵌入式计算机系统的输入设备,此项技术引用到军用便携式通信设备上也同样具有很方便使用的优点,便于使用者进行输入信息的操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

综合试验一:触摸屏控制
一、实验目的
在实验二的基础上,参考并研究实验箱配带的触摸屏控制的源代码及相关资料,作适当修改,将实验二中键盘交互控制变为触摸屏控制。

实现触摸屏控制直流、步进电机的加速和减速、正反转;并在超级终端和液晶屏上同步显示转速。

另外进一步巩固MagicARM2410专用工程模板的使用;掌握Wiggler JTAG仿真器的安装和使用;能够在MagicARM2410实验箱上运行程序;掌握中断初始化以及中断服务函数的编写;了解触摸屏中断服务程序,进行ADC转换后输出显示;掌握S3C2410的模/数(A/D)转换器的应用设置;掌握步进电机的控制原理,掌握电机转动控制和调速方法;掌握使用PWM方式控制直流电机的转动速度。

二、实验原理
本实验在实验一和二的基础上,参考并研究实验箱配带的触摸屏控制的源代码及相关资料,作适当修改,将实验二中键盘交互控制变为触摸屏控制。

实现触摸屏控制直流、步进电机的加速和减速、正反转;并在串口调试助手和液晶屏上同步显示转速。

S3C2410 接4 线电阻式触摸屏的电路原理如图1 所示。

整个触摸屏由模向电阻比和纵向电阻线组成,由nYPON、YMON、nXPON、XMON 四个控制信号控制4 个MOS 管(S1、S2、S3、S4)的通断。

S3C2410 有8 个模拟输入通道。

其中,通道7 作为触摸屏接口的X 坐标输入(图1 的AIN[7]),通道5 作为触摸屏接口的Y 坐标输入(图1 的AIN[5])。

电路如图2 所示。

在接入S3C2410 触摸屏接口前,它们都通过一个阻容式低通滤器滤除坐标信号噪声。

这里的滤波十分重要,如果传递给S3C2410 模拟输入接口的信号中干扰过大,不利于后续的软件处理。

在采样过程中,软件只用给特殊寄存器置位,S3C2410 的触摸屏控制器就会自动控制触摸屏接口打开或关闭各MOS 管,按顺序完成X 坐标点采集和Y 坐标点采集。

电阻式触摸屏主要是一块与显示器配合的非常好的电阻薄膜,它是一种多层的复合薄膜,通常它以一层玻璃做基层,表面涂上一层透明的氧化金属导电层(ITO氧化铟,透明的导电电阻)。

上面再盖有一层外表面硬化处理,光滑且耐摩擦的塑料层。

它的内表面也有一个ITO 涂层,在他们之间有许多细小的(小于1/1000 英寸)
的透明隔离点把两层导电层隔开绝缘。

当手指触摸LCD屏时,两导电层在触摸点位置就有了接触,控制器检测到这一接触并计算出触摸点的位置。

关于步进电机的转动和调速,基于实验一的基础上,现详述原理如下:本工作模块使用的步进电机的步进角是18︒,由于步进电机旋转角度与输入脉冲数目成正比,所以输入20个脉冲信号,步进电机就会旋转20个步进角,且刚好转一圈(20⨯18︒=360︒)。

旋转一圈的时间是60s/30圈=2s,旋转一个步进角的时间是2s/20=100ms(每圈20个步进角)。

也就是说给一个脉冲信号,旋转一个步进角,延时100ms,再给一个脉冲信号,旋转一个步进角,延时100ms,这样就可以获得转速为30转/分。

同理:把延时时间改为50ms可以使转速变为60转/分根据以上分析,我们只要改变脉冲信号之间的延时时间,即改变每步之间的延时时间,便可控制步进电机的转速。

延时时间变短,转速提高,延时时间变长,转速降低。

在本实验中,用MOTO_Mode1(dly)的时序控制为AB--BC--CD--DA—AB,用于控制电机正转,MOTO_Mode2(dly)的时序控制为AD--DC--CB--BA—AD,用于控制步进电机反转,dly作为延时大小用于控制电机的转动速度。

关于直流电机的转动和调速,原理如下: S3C2410A具有四路PWM输出,输出口分别为TOUT0-TOUT3,其中两路带有死区控制功能。

为了能正确输出PWM 信号,需要正确设置GPBCON寄存器选择相应的I/O是的TOUTx功能。

然后,通过TCFG0寄存器为PWM定时器时钟源设置分频值,通过TCFG1寄存器PWM定时器时钟源。

接着,通过TCNTB0寄存器设置PWM周期,通过TCMPB0设置PWM占空比。

最后,通过TCON寄存器启动PWM定时器,即可输出PWM信号。

本实验将GPH9口设置为1并禁止TOUT0口的上拉电阻,这样,当占空比小于1/2时,直流电机反转,当占空比等于1/2时,直流电机停止转动,当占空比大于1/2时,直流电机正转,实验将PWM的初始占空比设置为pwm_duty = 255/10;这样可以使正反转分别有四个速度。

实验要求实现触摸屏控制直流、步进电机的加速和减速、正反转,在实验二的基础上布置好LCD屏幕布局以后,测试各个功能区的的触点坐标,使用for 语句判断触点是否选中某个区域,如果触点属于for语句的区域,那么程序将执行for语句里面的程序,完成指定功能。

三、主要仪器设备
1、硬件:PC机一台
MagicARM2410教学实验开发平台一套
2、软件:Windows98/XP/2000系统,ADS1.2集成开发串口调试助手程序
四、实验步骤
1、启动ADS1.2,打开工程shiyansan.mcp,开启实验箱。

2、安装J-LINK驱动软件。

3、打开串口调试助手
4、选用DebugRel生成目标,然后编译链接工程。

5、选择project-debug,启动AXD进行JTAG仿真调试。

6、全速运行程序,观察LCD屏幕上出现的指示信息,用触笔点相应功能
区,观察串口调试助手和触摸屏上的提示信息。

全速运行程序后,使用触笔点击直流电机,选中直流电机,出现直流电机的控制界面。

然后点击直流电机正转,因为在控制直流电机正转的程序中我设置初始的占空比为pwm_duty =6*255/10;,初始速度为1,所以显示的提示信息为:直流电机在正转,速度为1。

点击直流电机加速,提示信息为:直流电机在正转加速,速度为2。

直流电机正转
让直流电机一直加速,最后发现直流正转的最大速度为4。

因为在程序中,对于直流电机正转,我设置了当占空比大于或等于255*9/10时,使pwm_duty =9*255/10;并使sp=4;所以当加速到4以后,再加速时,电机还是以最大速度4转动。

当占空比小于5*255/10;时,设置pwm_duty =5*255/10,让电机停止转动;对于反转,初始的占空比为4*255/10,速度为1,如图五所示,当不停的加速时,判断占空比是否小于0,如果是,则使pwm_duty =1*255/10,保持反转以最大速度4转动,反转加速至最大。

然后在主界面选择步进电机,逐个测试步进电机正反转和加减速,步进电机用MOTO_Mode1(dly);控制电机正转,MOTO_Mode2(dly);控制电机反转,dly控制转速,步进电机正转如图九所示:
步进电机正转
本实验在前面基础实验的基础上,参考并研究实验箱配带的触摸屏控制的源代码及相关资料,作适当修改,将键盘交互控制变为触摸屏控制。

实现触摸屏控制直流、步进电机的加速和减速、正反转;并在液晶屏上同步显示转速。

相关文档
最新文档