您的当前位置:首页正文

南昌大学ARM综合实验三实验报告

2022-01-15 来源:易榕旅网


实验报告

学生姓名: 翁 学 号:专业班级: 中兴131 实验类型:□ 验证 ■综合 □ 设计□ 创新 实验日期:实验成绩:

一、实验项目名称

触摸屏控制

二、实验目的

了解触摸屏的基本工作原理,学会s3c2410 TouchScreen的配置

三、实验基本原理及设计思路

将综合实验一种的步进电机和直流电机控制用触摸实现。触摸屏不同区域对应不同功能,通过设置全局变量以及X、Y坐标的读取,来实现。 (一) 采集坐标原理

查阅user manual,配置寄存器ADCTSC,再读取ADCDAT寄存器相应位,即可轮流得到X坐标和Y坐标的值。利用综合实验二中掌握的LCD图片显示原理,显示出对应的图片,使人机交互友好。 (二) 电机控制原理

设置全局变量dcdir、pwm、stdir、speed,分别表示直流电机方向、转速,步进电机方向转速。对X、Y的取值区间做分类讨论,从而控制电机。控制原理在综合实验一中已经说明,这里不再赘述。注意每次读到X、Y坐标之后最好对X、Y置0操作。

部分代码: if(Y>466) {

if(733UART_SendStr(\"直流正转\\n\"); dcmoto_start(2,0); dirdc = 2; }

else if (468UART_SendStr(\"直流反转\\n\"); dcmoto_start(3,0); dirdc = 3; }

else if (263UART_SendStr(\"直流加速\\n\"); dcmoto_start(dirdc,4); }

else if (10UART_SendStr(\"直流减速\\n\"); dcmoto_start(dirdc,5); } }

else if( Y>0 && Y<466) {

if(733UART_SendStr(\"步进正转\\n\"); stepmoto_start(2,0); dirst=2; }

else if (468{

UART_SendStr(\"步进反转\\n\");; stepmoto_start(3,0); dirst=3; }

else if (263UART_SendStr(\"步进加速\\n\");;

stepmoto_start(dirst,4); }

else if (10UART_SendStr(\"步进减速\\n\");;

stepmoto_start(dirst,5); } }

void dcmoto_start(uint32 dcdir,uint32 speed)//直流电机的方向23和加减速45 {

if(dcdir==2)//正转 {

if(speed == 0)//正转初始化 {

pwm_duty=0; UART_SendStr(\"初始化完毕\\n\"); }

else if(speed==4) {

pwm_duty = pwm_duty + 255/4; }

else if(speed==5) {

pwm_duty = pwm_duty - 255/4; }

if(pwm_duty>255||pwm_duty<0) {

pwm_duty = 0; UART_SendStr(\"PWM超出量程 重置为0\\n\"); }

rTCMPB0 = pwm_duty; }

四、主要仪器设备及耗材

实验箱一台,PC机一台,JTAG一个。

五、实验现象

加载程序到SDRAM全速运行,LCD显示控制区域图片

点击步进正转区域,实验箱上步进电机转动:

点击步进加速,步进电机转速加快,并在串口助手中打印消息。

电机直流正转区域,试验箱上直流电机初始化:

电机直流加速,直流电机转速加快,并在串口助手中打印消息。

反转同理,串口打印信息如下。

六、实验总结

ADC采集屏幕坐标在不同屏幕采到的坐标不尽相同,并且范围不是0-640与0-480,所以具体的坐标一定要先显示图片,并获取几个关键点的坐标之后才能正确划分功能。剩下的就是步进电机、直流电机的控制了,综合实验一已经完成过了,这里把重要参数改成全局变量后照搬就行。

因篇幅问题不能全部显示,请点此查看更多更全内容