登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:求助:触摸屏问题!

点击:684 回复:7

我今年做的毕业设计题目是(基于单片机的触摸屏温度控制系统设计与实现),因为单片机是大四第一学期才学,学得知识有限,现在做这个题目感觉特别吃力,尤其是触摸屏这块不懂,单片机主芯片我选择AT89C51,温度传感器我选的是LM35,A/D转换我用的是ADC0809,大致工作图如下
附件
其中我觉得AT89C51与触摸屏的通信和用PID算法来控制温度设定参数这块比较麻烦具体请看我的任务书,而且我不知道选择哪种触摸屏合适,哪位有爱高手的帮忙解决解决啊,导师说这是她报的题目,但她并不是很懂单片机这块,我现在特别着急,眼看要到4月份了,求求大家指点指点,不胜感激!
附件:
[本地下载]
(任务书)
11-03-24 00:13
这种题目实在没啥意思,改成plc加触摸屏加A/D模块加温度传感器得了,本来就是一个毕业课题。如果用单片机就不要用触摸屏了,没必要,直接用个便宜点液晶就好了。造价那么高。
如果想用触摸屏不如用mcgs的,单片机都省了。
11-03-24 09:05
谁说不是呢,但是老师给的就是这个题目,做学生的也改变不了什么啊
11-03-24 10:33
导师说这是她报的题目,但她并不是很懂单片机这块。
那她还做什么导师呢?
11-03-24 17:13
这么说吧,我上的是一个2本里面2流的学校,师资力量不咋地,虽然这么说我的母校不好,但这是事实,我是真心来请教的,不是来玩的,有高人能指点指点我最好,谈别的没意思!
11-03-24 19:10
温度传感器换用DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,支持3V~5.5V的电压范围,使系统设计更灵活、方便;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20使电压、特性有更多的选择,让我们可以构建适合自己的经济的测温系统。DS18B20的2脚DQ为数字信号输入/输出端;1脚GND为电源地;3脚VDD为外接供电电源输入端。
11-03-24 22:16
仅供参考
/*==============================================================================  
在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。
由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,
运算到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,
根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。
这个程序只是一般常用pid算法的基本架构,没有包含输入输出处理部分。
==============================================================================*/
#include
#include
/*===============================================================================
PID Function        
The PID  function is used in mainly    
control applications. PID Calc performs one iteration of the PID    
algorithm.
While the PID function works, main is just a dummy program showing
a typical usage.
PID功能
在PID功能主要用于控制应用。 PID 计算器执行一个PID的迭代算法。虽然PID功能的工程,
主要只是一个虚拟程序显示一个典型的使用。
================================================================================*/
typedef struct PID {
       double  SetPoint;           //  设定目标 Desired Value
       double  Proportion;         //  比例常数 Proportional Const        
       double  Integral;           //  积分常数 Integral Const        
       double  Derivative;         //  微分常数 Derivative Const
       double  LastError;          //  Error[-1]        
       double  PrevError;          //  Error[-2]        
       double  SumError;           //  Sums of Errors
} PID;
/*================================  PID计算部分===============================*/
double PIDCalc( PID *pp, double NextPoint )
{    
               double  dError,            Error;
       
   Error = pp->SetPoint -  NextPoint;          // 偏差        
   pp->SumError += Error;                      // 积分        
   dError = pp->LastError - pp->PrevError;     // 当前微分        
   pp->PrevError = pp->LastError;        
   pp->LastError = Error;        
   return (pp->Proportion * Error              // 比例项          
                    +   pp->Integral * pp->SumError         // 积分项            
                    +   pp->Derivative * dError             // 微分项        
    );
}
/*=======================  初始化的PID结构  Initialize PID Structure===========================*/
void PIDInit (PID *pp)
{    
       memset ( pp,0,sizeof(PID));
}
/*=======================  主程序  Main Program=======================================*/
double sensor (void)                    // 虚拟传感器功能   Dummy Sensor Function{    return 100.0;}
void actuator(double rDelta)            // 虚拟驱动器功能   Dummy Actuator Function{}
void main(void)
{    
               PID         sPID;                   // PID控制结构   PID Control Structure    
               double      rOut;                   // PID响应(输出) PID Response (Output)    
               double      rIn;                    // PID反馈(输入) PID Feedback (Input)
   PIDInit ( &sPID );                  //  初始化结构  Initialize Structure    
   sPID.Proportion = 0.5;              //  设置PID系数  Set PID Coefficients    
   sPID.Integral   = 0.5;    
   sPID.Derivative = 0.0;    
   sPID.SetPoint   = 100.0;            // 设置PID设定  Set PID Setpoint
   for (;;)
   {                                   // 模拟最多的PID处理  Mock Up of PID Processing
       rIn = sensor ();                // 读取输入  Read Input        
       rOut = PIDCalc ( &sPID,rIn );   // 执行的PID迭代 Perform PID Interation        
       actuator ( rOut );              // 所需的更改的影响 Effect Needed Changes
11-03-24 22:30
现在才看到  非常感谢您的解答!
11-03-25 22:38

工控新闻

更多新闻资讯