⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mytest.m

📁 一本关于控制系统仿真的书的程序 1、文件夹1中的程序是书中的一些仿真。 2、文件2中的是最近做的预测控制、PID控制及逻辑控制的对比综合研究。 3、文件夹3中是与maltab通信的数据采集板的设
💻 M
字号:
%此函数为使用者编写。
 function mytest(temp)
% 1、连接DA的OUT1和AD的CH1。
% 2、temp发送什么数据,matlab的命令窗口就返回读入的数据。
% temp的范围是0-1010。(1011-1023的数据将会达到DA输出的极限,建议不用。)
  global fids 
  fids=serial('com1','baudrate',4800,'parity','none','databits',8,'stopbits',1);%设置串口
  fopen(fids);%打开串口
  Send_Data(temp,1);  %发送数据temp给OUT1通道。
  data = Read_Data(1);   %读取CH1通道的数据。
  %data1=Send_Read(temp);
  %IO_out(tempIO,0);     %输出tempIO电平给通道PB0。
  %level = IO_in(4)      %读入PB4的电平。
  fclose(fids);%关闭串口
  delete(fids);%清除句柄。
  clear fids;
  display(data);%在命令窗口显示读入的指令。
  %display(data1);
%———以下函数不要轻易改动———————————————————————————
 function Send_Data(temp,channel)
%函数名称:function Send_Data(temp,channel)
%入口参数:temp为输入数据,10位精度。channel为通道选择。
%出口参数:无
%函数功能:发送指定电压到DA。
  global fids 
   %十进制85就是十六进制55H.
   %十进制16就是十六进制10H.数据
   tempH=fix(temp/256);%将一个10进制数转化成两个字节。
   tempL=mod(temp,256);
   fwrite(fids,[85 16 channel tempH tempL],'uchar');
%--------------------------------------------------------------------------
function data = Read_Data(channel)
%函数名称:function data=Read_Data(channel)
%入口参数:channel为通道选择
%出口参数:data为接收到的数据。10位精度。
%函数功能:读取指定通道的数据。
global fids 
fwrite(fids,[85 01 channel 00 00],'uchar');
tm= fread(fids,2,'uchar');
data = tm(1)*256+tm(2);%将两个字节转化为10进制数据。
%--------------------------------------------------------------------------
 function level = IO_in(channel)
 % 函数名称:level = function IO_in(channel)
 %入口参数:channel为通道选择。
 %出口参数:电平level。Level为0时代表低电平。Level为1时代表高电平。
 %函数功能:读入指定IO口的电平。
 global fids
 fwrite(fids,[85 02 channel 00 00],'uchar');
 level = fread(fids,1,'uchar');
%--------------------------------------------------------------------------
 function IO_out(temp,channel)
% 函数名称:function IO_out(temp,channel)
% 入口参数:temp为输入数据,高电平发1,低电平发0。channel为通道选择。
% 出口参数:无
% 函数功能:指定IO口的输出电平。
 global fids
 fwrite(fids,[85 03 channel temp 00],'uchar');
%--------------------------------------------------------------------------
function data=Send_Read(temp)
%入口参数:temp为需要发送给单片机的数据。
%出口参数:data为AD采集到的数据。
%函数功能:发送指定电压到DA,同时返回AD采集到的数据。
%注:设计此函数的目的是如果一个设计既要输出数据又要采集数据,此函数可以提高运行速率。此时通道是固定的。输出为通道1,输入也为通道1。
 global fids 
 tempH=fix(temp/256);%将一个10进制数转化成两个字节。
 tempL=mod(temp,256);
 fwrite(fids,[85 17 01 tempH tempL],'uchar');
 tm= fread(fids,2,'uchar');
 data = tm(1)*256+tm(2);%将两个字节转化为10进制数据。
   
   
   
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -