精华内容
下载资源
问答
  • sensor 并口输出波形

    2020-08-28 13:18:09
    sensor 并口输出波形

    sensor 并口输出波形

    sensor 并口输出波形

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • DCCE-DUT4000数据采集模块并口输出时序说明pdf,DCCE-DUT4000数据采集模块并口输出时序说明
  • 网络在测控领域前景广阔,在办公室如何通过网络开关家里的空调?一个实现的方法是在家用电脑上安装IIS把家用电脑变成服务器,在网页上通过CGI技术利用WINIO空间控制并口输出高低电平来开关空调。
  • c#2005并口输出控制和输入检测源代码
  • 我们发现有的时候小的开发板没有那种连续的IO口输出,所以只能使用一个P2的高四位和P4的低四位来完成矩阵键盘的扫描。

    我在做msp430f5529的时候,发现没有那么多连续的IO口输出,只有一个P3是连续的8个口都有。所以我就想能不能使用不连续的IO口,就是取P2的高4位和P4的第四位来组成一组8个并口输出的控制扫描的矩阵键盘。因为我是新手嘛而且C语言基础也不是很好,所以代码写的比较繁琐,广大的网友看看就好图个乐呵。

    //这个是代码的延迟函数

    #include "MSP430F235.h"
    typedef unsigned char uchar;
    typedef unsigned int uint;
    void delayms(uint ms)
    {
      uchar i;
      while(ms--)
        for(i=0;i<123;i++);
    }
    
    ```c
    这个是代码
      uchar key,di,gao;
      uchar key_checkdiin;
      uchar key_checkgaoin;
      uchar key_checkin;
      uchar key_check;
      P4DIR=0x0f;
      P4OUT=0xf0;
      P2DIR=0x00;
      P2OUT=0xff;
      key_checkdiin=P4IN;
      key_checkdiin&=0x00;
      key_checkgaoin=P2IN;
      key_checkgaoin&=0xf0;
      key_checkin=key_checkdiin+key_checkgaoin;

    //按键扫描函数

    if(key_checkin!=0xf0)
      {
        delayms(10);
        key_checkdiin=P4IN;key_checkgaoin=P2IN;
        key_checkdiin&=0x00;  key_checkgaoin&=0xf0;
        key_checkin=key_checkdiin+key_checkgaoin;
         if(key_checkin!=0xf0)
        {
          P4OUT=0x0e;
          P2OUT=0Xf0;
          di=P4IN;gao=P2IN;
          di&=0x0f;gao&=0xf0;
          key_check=di|gao;
           switch(key_check)
          {
     case 0xee:key=15;break;
     case 0xde:key=11;break;
     case 0xbe:key=7;break;
     case 0x7e:key=3;break;
          }
            P4OUT=0x0d;
          P2OUT=0Xf0;
          di=P4IN;gao=P2IN;
          di&=0x0f;gao&=0xf0;
          key_check=di+gao;
     
          switch(key_check)
          {
     case 0xed:key=14;break;
     case 0xdd:key=10;break;
     case 0xbd:key=6;break;
     case 0x7d:key=2;break;
          }
           P4OUT=0xfb;
          P2OUT=0Xff;
          di=P4IN;gao=P2IN;
          di&=0x0f;gao&=0xf0;
          key_check=di+gao;
        
          switch(key_check)
          {
     case 0xeb:key=13;break;
     case 0xdb:key=9;break;
     case 0xbb:key=5;break;
     case 0x7b:key=1;break;
          }
          P4OUT=0x07;
          P2OUT=0Xf0;
          di=P4IN;gao=P2IN;
          di&=0x0f;gao&=0xf0;
          key_check=di+gao;
       
          switch(key_check)
          {
     case 0xe7:key=12;break;
     case 0xd7:key=8;break;
     case 0xb7:key=4;break;
     case 0x77:key=0;break;
          }
        }
      }
      else 
      {
        key=0xff;
        return key;
      }
      return key;
    }
    //控制lcd命令的代码
    void w_com(uchar com)
    {
      P6DIR=0x07;//0000 0111
      P6OUT=0x04;//0000 0100
      P1OUT=com;
      P6OUT=0x00;
      delayms(1);
    }
    void w_dat(uchar dat)
    {  P6DIR=0x07;///设置P6的低三位输出
      P6OUT=0x05;//0000 0101
      P1OUT=data;///向lcd输出数据
     P6OUT=0x01;///0000 0001
      delayms(1);
    }
    void lcd_ini()
    {
      delayms(10);
      w_com(0x38);
      delayms(10);
      w_com(0x0c);
      delayms(10); w_com(0x06);
      delayms(10);
      w_com(0x01);  delayms(10);
      w_com(0x38);
      delayms(10);
    };
    主函数以后更新
    展开全文
  • 74hc595串口转并口输出

    千次阅读 2015-05-02 10:31:37
    74hc595.h #ifndef _74HC585_H_ #define _74HC585_H_ ...//CPU发送完后,R_CLK将数据并行输出, ...//实现了只占用CPU一个输出口就可以输出8bit数据 R_CLK = 0 ; NOP; NOP; R_CLK = 1 ; }

    74hc595.h

    #ifndef _74HC585_H_
    #define _74HC585_H_
    
    #include<reg51.h>
    #include<intrins.h>
    #include<function.h>
    
    
    #ifndef uchar 
    #define uchar unsigned char
    #endif
    #ifndef uint 
    #define uint unsigned int
    #endif
    #define NOP _nop_()
    
    
    sbit MOSIO = P3^4;
    sbit R_CLK = P3^5;
    sbit S_CLK = P3^6;
    
    void hc595SendData(uchar SendVal);  //函数声名
    
    #endif
    

    74hc595.c

    #include<74hc595.h>
    
    
    void hc595SendData(uchar sendVal)
    {
        uchar i;
        //从CPU中向595一位一位发送,595一位一位接收
        for(i = 0; i < 8; i++)
        {
            if((sendVal << i) & 0x80)
                MOSIO = 1;
            else MOSIO = 0;
            S_CLK = 0;
            NOP;
            NOP;
            S_CLK = 1;
    
        }
        //CPU发送完后,R_CLK将数据并行输出,
        //实现了只占用CPU一个输出口就可以输出8bit数据
        R_CLK = 0;
        NOP;
        NOP;
        R_CLK = 1;
    
    }
    展开全文
  • 并口输出输入规则:  DataPort 地址0x378 8 个针脚(D0-D7) 正常,写入 0 输出低电平,写入 1 则输出高电平;  ContorlPort 地址0x37A 4 个针脚(C0-C3)  C2 正常, C0 、 C1 、 C3 取反 ----- 写入 0 输出...

    PC并行口各阵脚定义:

    1.选通,PC->Printer

    2-9 数据(D0-D7

    10.应答(ACK),Printer->PC

    11.忙(BUSY),Printer->PC

    12.无纸(PE),Printer->PC

    13.联机(SLCT),Printer->PC

    14.自动换行(AUTO FD),PC->Printer

    15.错误(ERROR),Printer->PC

    16.初始化(INIT),PC->Printer

    17.选择输出(SELECT IN),PC->Printer

    18.-25.地(GND

    并口针脚定义

        并口开机时默认状态:                                        除了C317)针及地线外,全部为高;

        并口输出输入规则:                                        DataPort      地址0x378   8个针脚(D0-D7) 正常,写入0输出低电平,写入1则输出高电平;

                                           ContorlPort  地址0x37A  4个针脚(C0-C3) C2正常,C0C1C3取反-----写入0输出高,写入1则输出低;读取同理;

                                           StatePort       地址0x379   5个针脚(S3-S7) S7取反,其他正常;

     PC并口的8DataPort 4ContorlPort都可以作为数字输出端口,两个端口可以组成112位的任意数字输出端口;而这4位StatePort、5位ContorlPort 都可以作为数字输入端口,状态端口共5位,控制端口共4位,两个端口可以组成19位的任意数字输入端口。

      本人使用WinIo3.0库操作并口,在XP下操作成功,附上源码如下

    [csharp] view plaincopy
    1.     public class WinIo  
    2.     {  
    3.         [DllImport("WinIo32.dll")]  
    4.         public static extern bool InitializeWinIo();  
    5.         [DllImport("WinIo32.dll")]  
    6.         public static extern void ShutdownWinIo();  
    7.         [DllImport("WinIo32.dll")]  
    8.         public static extern bool GetPortVal(IntPtr wPortAddr, out int pdwPortVal, byte bSize);  
    9.         [DllImport("WinIo32.dll")]  
    10.         public static extern bool SetPortVal(IntPtr wPortAddr,int dwPortVal, byte bSize);  
    11.         //以下是与并口无关  
    12.         [DllImport("WinIo32.dll")]  
    13.         public static extern byte MapPhysToLin(byte pbPhysAddr, uint dwPhysSize, IntPtr PhysicalMemoryHandle);  
    14.         [DllImport("WinIo32.dll")]  
    15.         public static extern bool UnmapPhysicalMemory(IntPtr PhysicalMemoryHandle, byte pbLinAddr);  
    16.         [DllImport("WinIo32.dll")]  
    17.         public static extern bool GetPhysLong(IntPtr pbPhysAddr, byte pdwPhysVal);  
    18.         [DllImport("WinIo32.dll")]  
    19.         public static extern bool SetPhysLong(IntPtr pbPhysAddr, byte dwPhysVal);  
    20.         [DllImport("user32.dll")]  
    21.         public static extern int MapVirtualKey(uint Ucode, uint uMapType);  
    22.   
    23.   
    24.         public bool online = false;                          //WinIo打开标志  
    25.         //数据端口共8位,控制端口共4位,可以组成1~12位的任意数字输出端口;  
    26.         //状态端口共5位,控制端口共4位,可以组成1~9位的任意数字输入端口  
    27.         private static IntPtr data_port = (IntPtr)0x378;     //数据端口地址 D0-D7 8个端口  
    28.         private static IntPtr state_port = (IntPtr)0x379;    //状态端口地址 S3-S7 只能读取5位  
    29.         private static IntPtr control_port = (IntPtr)0x37A;  //控制端口地址 C0-C3 只能控制或输出4位  
    30.   
    31.         /// <summary>  
    32.         /// 设定DataPort输出  
    33.         /// </summary>  
    34.         /// <param name="WriteValue">设定值:范围为0~255</param>  
    35.         private void setDateBuff(int WriteValue)  
    36.         {  
    37.             IntPtr m_nport = data_port;                 //数据端口地址data_port  
    38.   
    39.             int m_nValue = WriteValue;  
    40.   
    41.             //调用WinIo库函数SetPortVal写端口值  
    42.             SetPortVal(m_nport, m_nValue, 1);           //write a BYTE value to an I/O port  
    43.         }  
    44.   
    45.         /// <summary>  
    46.         /// 设定ControlPort输出  
    47.         /// 高4位默认设置,请不要修改,因此输出时保持高位值不变,将要输出的值从低4位输出  
    48.         /// Control端口C2读写正常,C0、C1、C3写入0则输出高电平,写入1输出低电平;读取亦然  
    49.         /// </summary>  
    50.         /// <param name="WriteValue">设定值</param>  
    51.         private void setControlBuff(int WriteValue)  
    52.         {  
    53.             IntPtr m_nport = control_port;              //获得控制端口地址  
    54.             //获得控制端口的值,  
    55.             int temp_dwPortVal = 0;  
    56.             GetPortVal(m_nport, out temp_dwPortVal, 1); //reads a BYTE value from an I/O port  
    57.   
    58.             int temp_aa = temp_dwPortVal & 0xF0;        //将低4位置为0;高4位不变  
    59.   
    60.             int WriValue = WriteValue & 0x0F;           //取设定值低4位;高4位为0  
    61.             temp_aa = temp_aa | WriteValue;             //合并端口值高4位与设定值低4位  
    62.             temp_aa = temp_aa ^ 0x0B;                   //将低4位中C0、C1、C3取反(0->1;1->0)(保证设定值与实际电平相吻合)  
    63.             SetPortVal(m_nport, temp_aa, 1);            //写出的值中,高4位保持端口原来的值不变,低4位实际输出  
    64.         }  
    65.   
    66.         /// <summary>  
    67.         /// 读取ControlPort值  
    68.         /// Control端口C2读取正常,C0、C1、C3高电平则读入0,低电平则读入1  
    69.         /// </summary>  
    70.         /// <returns>返回C0-C3 四个端口的值:范围为0~15</returns>  
    71.         private int getControlBuff()  
    72.         {              
    73.             IntPtr m_nport = control_port;              //控制端口地址data_port  
    74.   
    75.             int m_nValue = 0;  
    76.             //调用WinIo库函数SetPortVal写端口值  
    77.             GetPortVal(m_nport, out m_nValue, 1);      //reads a BYTE value from an I/O port  
    78.   
    79.             int ValueGet = m_nValue ^ 0x0B;            //将低4位中C0、C1、C3取反(0->1;1->0)  
    80.             ValueGet = ValueGet & 0x0F;                //去掉高4位值  
    81.             return ValueGet;  
    82.         }  
    83.   
    84.         /// <summary>  
    85.         /// 读取StatePort值  
    86.         /// State端口S7高电平则读入0,低电平则读入1;其他正常  
    87.         /// </summary>  
    88.         /// <returns>返回S3-S7 五个端口的值:范围0-31</returns>  
    89.         private int getStateBuff()  
    90.         {             
    91.             IntPtr m_nport=state_port ;               //控制端口地址state_port  
    92.               
    93.             int dwPortVal =0;  
    94.             GetPortVal(m_nport, out dwPortVal, 1);    //reads a BYTE value from an I/O port  
    95.   
    96.             int ValueGet = dwPortVal ^ 0x80;          //将S7取反(保证读取与实际电平相吻合)  
    97.             ValueGet = ValueGet & 0xF8;               //去掉S0 ~S2位;  
    98.             ValueGet = ValueGet >> 3;                 //右移3位,将S7~S3变为低5位  
    99.             return ValueGet;  
    100.         }  
    101.   
    102.         public bool OpenWinIo()  
    103.         {  
    104.             if (InitializeWinIo())  
    105.             {  
    106.                 this.online  = true;  
    107.                 return true;  
    108.             }  
    109.             else   
    110.             {  
    111.                 this.online  = false;  
    112.                 return false;  
    113.             }  
    114.         }  
    115.   
    116.         public void CloseWinIo()  
    117.         {  
    118.             ShutdownWinIo();  
    119.             this.online  = false;  
    120.         }  
    121. }  

     

    附上WinIo3.0库:WinIo

    及小弟例程源码:源码

     

    更多0
    相关主题推荐
    数据 源码 sel
    展开全文
  • 驱动程序必须支持垂直文本输出,否则,不能使用VARCHART XGantt中日期行的垂直注释。 例如,从第6版开始的Adobe Acrobat Suite中的打印驱动程序和免费驱动程序eDocPrintPro 可满足上述要求。 下面,使用...
  • 哈喽,我是老吴。此时此刻,各位嵌入式大佬应该...tree 命令可以输出文件列表,但是它的输出格式不符合 Xmind 的要求:$treetinyalsa/tinyalsa/├──Android.bp├──CMakeLists.txt...├──include│└──tin...
  • 电脑及打印机的普及,让人们的书写习惯发生了巨大的变化,一般文本都采用打印输出的方法。但在公民的遗嘱这类法律文件中,打印文件需要符合法规,即使是立遗嘱人的真实意愿,如果形式不合规,遗嘱仍然无法律效力。...
  • 求n的阶乘c = c / f1 '阶乘的结果参与运算然后再存回变量c里Call f(m - n, f1) '调用子过程,求同m-n的阶乘c = c / f1 '阶乘的结果参与运算然后再存回变量c里Text3 = c '最后求得的组合数在文本框中输出End Sub ...
  • 经过信息查询,能够获取市电输入电压、UPS电源输出电压、负载运用率、电池容量运用率、机内温度和市电频率等信息;经过参数设置,能够设定UPS电源基本特性、电池可维持时刻和电池用完告警等。经过这些智能化的操作,...
  • POS小票打印时,通过并口输出打印中文出现乱码: VB.net 2010中: Dim theLPT As New LPT theLPT.Open() theLPT.Write(Chr(28) + Chr(38)) 'FS &进入汉字模式 theLPT.Write(Chr(28) + Chr(87) + ...
  • 给自己输出一个苹果,还可以选择颜色,关键是不用钱,就像前几天一个java程序员为自己新建了一个对象一样,简单而又实在。 程序员过平安夜 php程序员过平安夜 php程序员作为被所有程序员鄙视的小弟,如果你在一个...
  • 并口输入输出

    2012-06-15 13:59:13
    关于MS51单片机 P0口等并行口实验,主要利用P1口输入,P0口利用LED作输出查询
  • 并口输入输出实验

    2020-06-14 23:07:22
    并口输入输出实验一、用Proteus软件来绘制电路图二、用Keil软件来写程序三、将Keil写的代码,放进Proteus的仿真图中 实验题目: 用P1脚的按键开关状态来控制P0的LED亮灭。 MCS-51系列单片机的P0~P3端口工作在输入...
  • 本人工作成果,很高兴与大家分享。电脑并口模拟串口输出,IIC模拟,很有价值。
  • CSharp2010并口IO输入输出控制继电器程序,直接操作电脑并口作数字输入输出使用,代15点小型PLC使用。控制继电器之类产口。
  • 直接操作电脑并口作数字输入输出使用,代15点小型PLC使用。控制继电器之类产口。
  •  25针并口定义(输入输出是相对于PC机的并口,从并口输出,输入到并口):  功能说明: (2)编程基础  这些引脚,其实就是I/O口。而且是可以控制的,以软件的方式。在计算机内部,对应的寄存器...
  • 针对目前大多数导弹测试数据都从测试计算机并口输出,设计了基于单片机对测试数据进行并口采集的系统,通过介绍打印机的工作模式和工作时序,给出了并口数据采集的原理、系统的接口电路和软件编程的流程图,且给出了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 412
精华内容 164
关键字:

并口输出