用matlab运行PCF8591的AD转换实验

可以帮忙解释一下下面这些代码分别表示什么函数和什么意思嘛?

%% 采集数据并绘图
% data = zeros(1, 1000);
data = [];
num = 1;
led_state = 1;
%% 采集数据并绘图,根据采集值改变PWM占空比
pic = plot(nan);
xlim([0 1000]);
ylim([0 3.3]);
xlabel('Points');
ylabel('Voltage');
grid on;

while 1   
      if(num <= 1000)      
      data(num) = readRegister(PCF8591, hex2dec('40'));
%         writePWMDutyCycle(mypi, 16, data(num) / 255);       
       num = num + 1;              
       set(pic, 'YData', data*3.3/255, 'Marker', 'o');       
       drawnow;    
else        
        num = 1;       
        data = [];       
        writeLED(mypi, 'led0', led_state);                
         set(pic, 'YData', data*3.3/255, 'Marker', 'o');        
         drawnow;   
 end        
         led_state = ~led_state;
 end

注释如下:

%% 采集数据并绘图
% data = zeros(1, 1000);         %生成一个1*1000的全0矩阵
data = [];                       %data为一个数组
num = 1;
led_state = 1;
%% 采集数据并绘图,根据采集值改变PWM占空比
x=0:1:1000;
y=2*x;
pic = plot(x,y);                 %画一个空白图
xlim([0 1000]);                  %设置图的横坐标范围:0-1000
ylim([0 3.3]);                   %设置图的纵坐标范围:0-3.3
xlabel('Points');                %横坐标轴名称Points
ylabel('Voltage');               %纵坐标轴名称Voltage
grid on;                         %图中添加网格
 
while 1                          %死循环
      if(num <= 1000)            %如果num<=1000,
      data(num) = readRegister(PCF8591, hex2dec('40'));     %读入寄存器64的值并传给data数组。readRegister:从PCF8591设备上的寄存器返回数据作为标量,hex2dec将十六进制数字的文本表示形式转换为十进制数字。
%         writePWMDutyCycle(mypi, 16, data(num) / 255);     %在  mypi的16引脚设置占空比为data(num) / 255   
       num = num + 1;              
       set(pic, 'YData', data*3.3/255, 'Marker', 'o');      %设置图片中纵轴数据为data*3.3/255,数据标记点为圆圈
       drawnow;                                             %刷新屏幕
else        
        num = 1;       
        data = [];       
        writeLED(mypi, 'led0', led_state);                  %向mypi的led0写入状态led_state,也就是设置led为高或低电平
         set(pic, 'YData', data*3.3/255, 'Marker', 'o');        
         drawnow;   
 end        
         led_state = ~led_state;                            %led电平状态取反,1变0.0变1
 end