精华内容
下载资源
问答
  • Aeroflex推出旨在克服3GPP LTE(3G长期演进)网络基础设施开发测试与部署挑战的 TM500 LTE 移动测试设备。TM500 LTE 广泛的第 1 层、第 2 层及更高层测试功能使其成为不可或缺的测试设备,其通过生成工程师验证必要...
  • Aeroflex(艾法斯)公司开发的TM500网络测试仪在TD-LTE基站研发、生产和现场测试市场占据了主要的市场份额,LTE基站品牌制造商(如华为、中兴、大唐、诺基亚-西门子、阿尔卡特-朗讯、爱立信等)都在使用TM500开发产品。
  • LTE_TM500用户手册

    2011-08-19 12:10:51
    Aeroflex(艾法斯)公司开发的TM500网络测试仪在TD-LTE基站研发、生产和现场测试市场占据了主要的市场份额,LTE基站品牌制造商(如华为、中兴、大唐、诺基亚-西门子、阿尔卡特-朗讯、爱立信等)都在使用TM500开发产品。
  • TM500使用配置总结

    千次阅读 2020-07-19 23:17:50
    本文档主要是TM500配置测试的时候的注意事项及易错点进行归纳,同时列出我们QC team几个test模板的。对后面的测试工程师可以达到拿到简单修改下频点、PCI就可以使用的效果。 一,TM500基本配置信息说明: TM500控制...

    本文档主要是TM500配置测试的时候的注意事项及易错点进行归纳,同时列出我们QC team几个test模板的。对后面的测试工程师可以达到拿到简单修改下频点、PCI就可以使用的效果。

    一,TM500基本配置信息说明:

    TM500控制PC IP: 192.168.253.254

    D500的业务IP 192.168.253.251~253

    做速率业务的EPC信息:EPC 192.168.253.240(SGi口为192.168.243.241)新增加了一个V1R3的EPC:245~247三个地址分别对应s1-mme, s1-u, s1-sgi.

    Volte环境信息:EPC 192.168.9.242,PLMN 31142

    IMS服务器地址:192.168.9.120

    二,目前我们高通测试组主要有V4 FDD、V4 TDD及V3 FDD三种产品,我们在TM500里面都建立了相应的测试用例均以:“QC_test_team_”开头,如下图:

    在这里插入图片描述
    说明如下:其中“QC_test_team_V4_TDD_32UE”与“QC_test_team_V4_TDD_32UE_VoLTE”分别对应V4 TDD小站32UE速率测试及V4 TDD小站Volte测试。里面的配置基本已经固化,测试的时候TM500射频口连接上TM500,根据测试模板里面已经配置的频点、PCI配置待测基站,或者根据待测基站的配置信息修改修改测试模板里面的频点、PCI信息即可。
    (如非特意指定频点建议不要修改测试模板,根据已配置的信息修改待测基站更为方便点。)
    在这里插入图片描述在这里插入图片描述
    说明如下:其中“QC_test_team_V4_FDD_32UE”、“QC_test_team_V3_FDD_128UE_VoLTE” 与“QC_test_team_V3_FDD_255UE”分别对应V4 FDD小站32UE速率测试、V3 FDD小站128UE Volte测试及V3 FDD小站255UE 速率测试。如果需要做V4 FDD小站32UE Volte测试只需要修改“QC_test_team_V3_FDD_128UE_VoLTE”对应的UE数从127个修改到32个UE即可。

    三,D500对应QC测试的我建立了对应的二个测试模板,如下图:
    在这里插入图片描述
    说明如下:其中“QC_IMS_TEST” 与“QC_TEST”分别对应volte测试及速率测试。目前“QC_IMS_TEST”配置了可以打128UE Volte的配置信息,经验证可以正常使用。“QC_TEST”目前配置了可以打255UE的UE配置信息。我是从之前的模板里拷贝出来修改的,其中打volte的模板原来只配置了32UE,拷贝过来之后修改比较麻烦,修改地方较多信息量巨大。目前会修改这块配置的不多,建议不要轻易修改和删除此部分配置信息。

    四,TM500做测试的时候易错地方说明:
    1,Config Radio cards:由于TM500是公用的,如果做CA测试的就需要用到两个RC,正常我们测试只需要用到一个RC,默认还是RC2,如果做CA测试的组或其他用到两个RC的测试人员用过TM500释放后给我们用,我们第一步要修改一下Radio Cards,否则init不过,常见的报错信息是“no cell found”,但并不是所有的no cell found都是Radio Cards配置错了,比如射频线没有接或者接错了也是类似的报错,如下图。在这里插入图片描述2,RDA不要选中:不清楚RDA是什么用处,如果勾选了RDA,在init的时候肯定不过,会报错,打开测试模板的时候记得非选中RDA,如下图:在这里插入图片描述
    3,不要把别人的已经选中的测试模板去掉:如果非选中以前已经选中的测试模板,以后再次测试的时候重新选中,会发现里面的IMSI信息,PLMN信息,鉴权加密等等信息都是list出来的形态,需要勾选右下角的小框变成选中状态,这样init才能通过。不晓得为什么可能是TM500软件的一个bug,切记切记别手欠,如下图。在这里插入图片描述
    在这里插入图片描述
    说明:如下类似的,如果不小心把勾选的去掉了,切记要再次勾选,否则init不过,一个个查问题才能查到这个地方。
    4,测试UE速率或者打多用户Volte的时候,要逐渐并且分批的加进去。不然一次性的加到32UE、 128UE或者255UE可能会存在某些UE掉线的情况,这个属于测试的经验积累技巧不属于问题。
    5,每次做完一种业务的时候,再次做另外一种业务的时候,建议TM500从connected状态变成到disconnected状态一下,这样再重新init和attach一下UE比直接上另外一种业务成功率要高。这也是长期使用的时候发现的。
    6,特殊band测试可能TM500需要进行协议选择,实际测试的时候发现Band28在测试Volte的时候,如果使用默认的脚本,UE attach小区会attach不上,最后发现其在init之前需要配置R11的协议,这点后期再测试其它特殊band的时候如果出现类似情况,需要考虑下是不是这个问题。如下图:在这里插入图片描述
    五,关于Volte的一些记录

    北京ims服务器地址:192.168.6.120 root/baicells
    Imsi及号码的注册信息在如下路径:在192.168.9.120:/service/softcn/conf/iuh.cfg
    当前ims服务器最多可以支持4096对volte用户对打,如果支持这么多,需要修改mediaserver的配置文件,配置文件在:/service/scodec_ipp/config下scodec_ipp.ini
    在这里插入图片描述
    北京可以打volte的epc是:192.168.9.242 PLMN:31142
    EPC里面需要配置打volte的UE IMSI信息并且对应TM500上需要打volte 的UE要配上IMS PDN的APN。
    打volte的epc里面配置了两天默认承载,如下图:在这里插入图片描述
    在这里插入图片描述对于volte的epc与ims服务器之间的PDN的APN怎么配置的具体还不太清楚,一般连续epc这侧高卓,ims服务器这边李峰。但有个疑问就是打volte的UE imsi信息在epc的注册表里面写得是两遍。如下截图:

    在这里插入图片描述
    注意事项:
    TM500跑128UE 64对volte用户,期间遇到测试中发现9.242 epc建立专载只能建立192条经查9.242核心网上只配了 96个UE,  其中只有32个配置了IMS的PDN连接需要请高卓加到128UE, 然后所有UE配上IMS PDN的APN。再请ims那边的工程师李峰增加ims服务器那边的volte号码配置。
    后来测试中9.242 epc出现异常,128UE attach不上,请核心网工程师徐红超、虢旺、王晓杰等人查看是由于有人掉电9.242epc导致ovs没起来,因为ovs没有设置开机自启。最终attach正常之后,建立了256个bears。(如果默认的每个UE的两条承载都建立不正常一般与ims服务器的关系不太大,如果每个UE的两条默认bears都建立起来了,但运行D500服务器发现volte的时候QCI1建立异常或未发PRACK等等问题,此时重点关注ims服务器是否运行正常。)
    运行D500服务器,发现批量增加的D500脚本跑不通,在臧明明、施侦伟的帮助和提示下逐渐完善脚本配置最终打通volte,目前只有2对用户打不通。
    D500脚本里面如果host不够,需要增加host可以参照之前默认的host然后批量增加。但是application里面的条目cvoip的增加请区别单数与偶数的配置,因为单数与偶数分别是主叫和被叫,主被叫的配置是不一样的,具体我截得有图。可以参照。

    展开全文
  • TM500用户手册.docx

    2021-09-13 13:02:12
    TM500用户手册.docx
  • tm500用户指南

    2012-10-22 11:01:33
    tm500用户指南使用方法,英文版本,对tm500的相关的软件使用进行了描述
  • TM500无线测试仪的使用方法 英文版本
  • 艾法斯针对SON异构网络的干扰消除的TM500LTE-A测试手机,为LTE-Advanced异构网络增添了增强型小区间干扰协调(eICIC)功能,使测试用户终端完全支持关键的3GPPRelease10LTE-A功能。
  • 在日前举办的Data I/O先进非易失存储器技术研讨会暨FLX500TM新品介绍会上,自动化编程解决方案供应商Data I/O向业界展示了其最新的桌面自动编程系统新品FLX500TM。 FLX500TM小巧大方的外观吸引了与会者的注意力。...
  • TM1621参考程序

    2019-04-18 15:51:25
    i<500;i++); } /********************从高位写入数据*************************/ void Write_Data_H(uchar Data, uchar Cnt) //Data的高cnt位写入TM1621,高位在前 { uchar i; for(i=0;i;i++) { WRITE=0; if...
  • tm1比500万行列号

    2014-06-01 20:48:14
    tm行列号很多时候在分析某一地区的多个时段的土地利用变化时,需要用到TM、ETM+或MSS图像来进行解译分类。 而通常我们会知道所要分析地区的大致经纬度范围,却不知道如何根据经纬度范围来准确查找Landsat卫星上这些...
  • J9100,TM-L90,TM-L500A,TM-m10,TM-m30, TM-T20,TM-T20II,TM-T70,TM-T70II,TM-T81,TM-T81II,TM-T82,TM-T82II,TM-T83II,TM-T86FII,TM-T88,TM-T88II,TM- T88III,TM-T88IV,TM-T88V,TM-T88VI,TM-T90...
  • 泉盛 TM-850手台写频接口定义: 3.5mm四段的插头:从根往尖头是地、发、收、空,即顶尖部不用。 读或写时,对讲机必须上电,并接好三线:地、发、收,缺一不可。
  • ①微处理器、LCD 和语音讯号处理系统之功耗低于 500 mW,总体系统配置为高达 7W 的反激式转换器的隔离输出 ②高效率和免版税的Open Source Opus Audio Codec 可降低音频呼叫期间的网络利用和专利许可带来的软件成本 ...
  • STM32或GD32驱动TM1637

    2021-06-16 15:07:24
    一、TM1637介绍 TM1637 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。主要应用于电磁炉、...

    一、TM1637介绍
    TM1637 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。主要应用于电磁炉、微波炉及小家电产品的显示屏驱动。采用DIP/SOP20的封装形式。
    功能特点:
       采用功率CMOS 工艺
       显示模式(8 段×6 位),支持共阳数码管输出
       键扫描(8×2bit),增强型抗干扰按键识别电路
       辉度调节电路(占空比 8 级可调)
       两线串行接口(CLK,DIO)  振荡方式:内置RC 振荡
       内置上电复位电路
       内置自动消隐电路
       封装形式:DIP20/SOP20
    二、时序介绍
    在这里插入图片描述
    在这里插入图片描述
    三、寄存器介绍
    在这里插入图片描述
    四、驱动程序
    main.c

    #include "sys.h" 
    #include "usart.h" 
    #include "delay.h" 
    #include "led.h" 
    #include "tm1637.h"
    #include "string.h"
    
    int main(void)
    {
    	u8 sendData[6];
    	Cache_Enable();					//打开L1-Cache
    	HAL_Init();						//初始化HAL库
    	Stm32_Clock_Init(160,5,2,4);	//设置时钟,400Mhz
    	delay_init(400);				//延时初始化
    	uart_init(115200);				//串口初始化
    	led_init();						//初始化LED时钟  
    	tm1637_init();
    	while(1)
    	{
    
    		turn_g_led();
    		memset(sendData,0xff,sizeof(sendData));
    		tm1637_show_data(sendData,sizeof(sendData));
    		delay_ms(500);
    		
    		turn_g_led();
    		memset(sendData,0x00,sizeof(sendData));
    		tm1637_show_data(sendData,sizeof(sendData));
    		delay_ms(500);	
    		printf("key=0x%02x\r\n",tm1637_read_key());
    	}
    }
    
    

    tm1637.c

    #include "tm1637.h"
    #include "delay.h"
    
    void tm1637_init(void)
    {
        GPIO_InitTypeDef GPIO_Initure;
        __HAL_RCC_GPIOC_CLK_ENABLE();					//开启GPIOB时钟
    	
        GPIO_Initure.Pin=GPIO_PIN_7|GPIO_PIN_8;			//PB0,1
        GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;  		//推挽输出
        GPIO_Initure.Pull=GPIO_PULLUP;         			//上拉
        GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;  	//高速
        HAL_GPIO_Init(GPIOC,&GPIO_Initure);     		//初始化GPIOB.0和GPIOB.1
    	
        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7,GPIO_PIN_SET);	//PB0置0
    	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET);	//PB1置1 
    
    	
        GPIO_Initure.Pin=GPIO_PIN_6;            //PA0
        GPIO_Initure.Mode=GPIO_MODE_INPUT;      //输入
        GPIO_Initure.Pull=GPIO_PULLUP;        //上拉
        GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;     //高速
        HAL_GPIO_Init(GPIOC,&GPIO_Initure);	
    	
    }
     
    
    //产生IIC起始信号
    void tm1637_start(void)
    {
    	DIO_OUT();     //sda线输出
    	led_dio(1);	  	  
    	led_clk(1);
    	delay_us(4);
     	led_dio(0);//START:when CLK is high,DATA change form high to low 
    	delay_us(4);
    	led_clk(0);//钳住I2C总线,准备发送或接收数据 
    }	  
    //产生IIC停止信号
    void tm1637_stop(void)
    {
    	DIO_OUT();//sda线输出
    	led_clk(0);
    	led_dio(0);//STOP:when CLK is high DATA change form low to high
     	delay_us(4);
    	led_clk(1); 
    	led_dio(1);//发送I2C总线结束信号
    	delay_us(4);							   	
    }
    //等待应答信号到来
    //返回值:1,接收应答失败
    //        0,接收应答成功
    u8 tm1637_wait_ack(void)
    {
    	u8 ucErrTime=0;
    	DIO_IN();      //SDA设置为输入  
    	led_dio(1);delay_us(1);	   
    	led_clk(1);delay_us(1);	 
    	while(READ_DIO)
    	{
    		ucErrTime++;
    		if(ucErrTime>250)
    		{
    			tm1637_stop();
    			return 1;
    		}
    	}
    	led_clk(0);//时钟输出0 	   
    	return 0;  
    } 
    //产生ACK应答
    void tm1637_ack(void)
    {
    	led_clk(0);
    	DIO_OUT();
    	led_dio(0);
    	delay_us(2);
    	led_clk(1);
    	delay_us(2);
    	led_clk(0);
    }
    //不产生ACK应答		    
    void tm1637_nack(void)
    {
    	led_clk(0);
    	DIO_OUT();
    	led_dio(1);
    	delay_us(2);
    	led_clk(1);
    	delay_us(2);
    	led_clk(0);
    }					 				     
    //IIC发送一个字节
    //返回从机有无应答
    //1,有应答
    //0,无应答			  
    void tm1637_send_byte(u8 txd)
    {                        
        u8 t;   
    	DIO_OUT(); 	    
        led_clk(0);//拉低时钟开始数据传输
        for(t=0;t<8;t++)
        {              
            led_dio((txd&0x01));
            txd>>=1; 	  
    		delay_us(2);   //对TEA5767这三个延时都是必须的
    		led_clk(1);
    		delay_us(2); 
    		led_clk(0);	
    		delay_us(2);
        }	 
    } 	    
    //读1个字节,ack=1时,发送ACK,ack=0,发送nACK   
    u8 tm1637_read_byte(unsigned char ack)
    {
    	unsigned char i,receive=0;
    	DIO_IN();//SDA设置为输入
        for(i=0;i<8;i++ )
    	{
            led_clk(0); 
            delay_us(2);
    		led_clk(1);
            receive<<=1;
            if(READ_DIO)receive++;   
    		delay_us(1); 
        }					 
        if (!ack)
            tm1637_nack();//发送nACK
        else
            tm1637_ack(); //发送ACK   
        return receive;
    }
    
    
    
    
    
    void tm1637_show_data(u8 *showData,u8 length)
    {
    	u8 i;
    	tm1637_start();
        tm1637_send_byte(0x40);    //40 地址自加模式     44 固定地址模式
        tm1637_wait_ack();
        tm1637_stop();
    	
    	tm1637_start();
        tm1637_send_byte(0xc0);   //首地址
        tm1637_wait_ack();	
    	
    	
    	for(i=0;i<length;i++)
    	{
            tm1637_send_byte(showData[i]);  //依次发送数组数据
            tm1637_wait_ack();
    	}
    	tm1637_stop();
    	
    	tm1637_start();
        tm1637_send_byte(LED_ON|LED_BRIGHTNESS_3);   //亮度
        tm1637_wait_ack();
        tm1637_stop();	
    }
    
    u8 tm1637_read_key()
    {
    	u8 recData=0xff,i;
    	tm1637_start();
    	tm1637_send_byte(0x42);
    	tm1637_wait_ack();	
    
    	DIO_IN();//SDA设置为输入
        for(i=0;i<8;i++ )
    	{
            led_clk(0); 
            delay_us(2);
    		led_clk(1);
            recData<<=1;
            if(READ_DIO)recData++;   
    		delay_us(1); 
        }
    	tm1637_wait_ack();	
    	tm1637_stop();
    	
    	if(READ_KEY==0)
    		recData&=0xFE;
    	return recData;
    }	
    
    

    五、完整工程下载
    点击链接下载完整工程

    展开全文
  • TM1616 驱动

    2020-06-16 22:21:23
    http://www.51hei.com/bbs/dpj-168066-1.html https://blog.csdn.net/ccy764417301/article/details/84955918 #include "stm32f10x.h" #include "stdio.h" #include "tm1620.h" ... TM1616_...

    http://www.51hei.com/bbs/dpj-168066-1.html

     

    https://blog.csdn.net/ccy764417301/article/details/84955918

     

    http://www.mcuzx.net/thread-1728-1-1.html

     

    #include "stm32f10x.h"
    #include "stdio.h"
    #include "tm1620.h"
    #include "delay.h"
    extern u8 tab[];
    int main(void)
    {
      u8 i;
            TM1616_init();
            Write_Cmd(0x88);
            while(1)
            {
        for(i=0;i<10;i++)
                    {
                    Write_Data(0x00,tab[i]); 
               Write_Data(0x02,tab[i]);
                    delay_ms(500);
                    }
            }
            
            
    }
    
    #include "tm1620.h"
    #include "stdio.h"
    #include "stdlib.h"
    #include "delay.h"
    
    
    
     u8 tab[]={0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x30};      
    
    void TM1620port_init(void)   
    {   
        GPIO_InitTypeDef  GPIO_InitStructure;
            
              RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//?????   
        
              GPIO_InitStructure.GPIO_Pin =TM1620_CLK|TM1620_DIN|TM1620_STB;
              GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
              GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
              GPIO_Init(GPIOB, &GPIO_InitStructure); 
    }   
    
    void TM1620_Write(u8 data)
    {
      u8 i;
            for(i=0;i<8;i++)
            {
              TM1620_CLK_L;  //2us   复位CLK口
        if(data & 0x01)   //将低位数据传入
        TM1620_DIN_H;   
        else   
        TM1620_DIN_L;   
        data >>=1;     //右移一位
        TM1620_CLK_H;   //  捕获上升沿
            }
    }
     
    void Write_Cmd(u8 cmd)
    {
       TM1620_STB_L;
             TM1620_Write(cmd);
             TM1620_STB_H;
    }        
    
    void Write_Data(u8 add,u8 data)
    {
             Write_Cmd(0x44);
       TM1620_STB_L;
             TM1620_Write(0xc0|add);
             TM1620_Write(data);
             TM1620_STB_H;
    }
    
    
    void TM1616_init(void)
    {
       u8 i;
             TM1620port_init();
             delay_ms(10);
             Write_Cmd(0x8f);       //亮度 (0x88-0x8f)8级亮度可调
             Write_Cmd(0x40);
             TM1620_STB_L;
             TM1620_Write(0xc0);
             for(i=0;i<16;i++)
             TM1620_Write(0x00);
             TM1620_STB_H;
    }
    

     

    展开全文
  • 思博伦-网络安全性能测试课件思博伦-网络安全性能测试课件
  • 当主机加电时,TM卡通过500 kΩ和50 Ω阻抗之间的切换来响应主机,用信号被拉低的时长(长或短)来表示数字逻辑(长为1,短为0)。由于阻抗切换的幅度为10 000∶1,因此,触点的接触电阻不会影响数字信号的辨识
  • TM1637是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU&数字接口、数据锁存器、LED高压驱动、键盘扫描等电路。主要应用于电磁炉、微波炉及小家电产品的显示屏驱动。 ...

    1 硬件

                                        

    2 软件环境

              ArduinoIDE_31422

    3 TM1637芯片

    TM1637是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU&数字接口、数据锁存器、LED高压驱动、键盘扫描等电路。主要应用于电磁炉、微波炉及小家电产品的显示屏驱动。

                                                                         

                                   

    4 TM1637数码管模块 

                                 

                 该模块有商品出售,所以该电路图只示意各管脚连接关系,未列出其它辅助原件。 

    5 时钟数码管

     

                                   

     6 TM1637和Arduino uno 的接线关系

    TM1637

    Arduino uno

    CLK

    2

    DIO

    3

    VCC

    5V

    GND

    GND

     

    7 程序

    //unsigned char LED[4];       //用于LED的4位显示缓存
    
      int CLK = 2;
    
      int DIO = 3; //
    
     
    
    //sbit CLK= P3^4;   //定义模拟IIC总线的时钟线
    
    //sbit DIO = P3^5;   //定义模拟IIC总线的数据线
    
     
    
     unsigned char tab[] =
    
    {
    
            0x3F,/*0*/
    
            0x06,/*1*/
    
            0x5B,/*2*/
    
            0x4F,/*3*/
    
            0x66,/*4*/
    
            0x6D,/*5*/
    
            0x7D,/*6*/
    
            0x07,/*7*/
    
            0x7F,/*8*/
    
            0x6F,/*9*/
    
            0x77,/*10 A*/
    
            0x7C,/*11 b*/
    
            0x58,/*12 c*/
    
            0x5E,/*13 d*/
    
            0x79,/*14 E*/
    
            0x71,/*15 F*/
    
            0x76,/*16 H*/
    
            0x38,/*17 L*/
    
            0x54,/*18 n*/
    
            0x73,/*19 P*/
    
            0x3E,/*20 U*/
    
            0x00,/*21 黑屏*/
    
    };
    
     
    
        void setup ()
    
        {
    
          pinMode(CLK,OUTPUT);
    
          pinMode(DIO,OUTPUT); //让管脚为输出状态
    
        }
    
        void loop()
    
        {
    
          /*LED[0]=1;
    
          LED[1]=2;
    
          LED[2]=3;
    
          LED[3]=4;*/
    
          //unsigned char data_add4=1;
    
          while(1)
    
          {
    
            //DIO=1;
    
            //digitalWrite(DIO,HIGH);
    
            TM1637_display(0x01,0x02,0x03,0x04,0x00);//演示怎样按顺序显示
    
           // LED4_Display ();
    
            delay(500);
    
            TM1637_display(0x01,0x02,0x03,0x04,0x01);//演示怎样让两个点儿闪烁
    
            delay(500);
    
            unsigned char i;
    
          for(i=1;i<=9;i++)//演示按地址显示
    
          {
    
            display_fix(0x03,i);
    
            delay(500);
    
          }
    
          }
    
         
    
        }
    
     
    
    //IIC开始
    
    void TM1637_start(void)
    
    {
    
             digitalWrite(CLK,HIGH);
    
             digitalWrite(DIO,HIGH);
    
             delay(2);
    
             digitalWrite(DIO,LOW);
    
    }
    
     
    
    //IIC应答
    
    void TM1637_ack(void)
    
    {
    
            char i;
    
            digitalWrite(CLK,LOW);
    
            delay(5);
    
            while(DIO==1&&(i<250))i++;
    
            digitalWrite(CLK,HIGH);
    
            delay(2);
    
            digitalWrite(CLK,LOW);
    
    }
    
     
    
    //IIC停止
    
    void TM1637_stop(void)
    
    {
    
             digitalWrite(CLK,LOW);       
    
             delay(2);       
    
             digitalWrite(DIO,LOW);       
    
             delay(2);
    
             digitalWrite(CLK,HIGH);
    
             delay(2);
    
             digitalWrite(DIO,HIGH);
    
             delay(2);
    
    }
    
     
    
    //写数据函数
    
    void TM1637_Write(unsigned char DATA)  
    
    {
    
            unsigned char i;  
    
            for(i=0;i<8;i++)       
    
            {
    
                    digitalWrite(CLK,LOW);
    
                    if(DATA & 0x01)
    
                          digitalWrite(DIO,HIGH);
    
                    else
    
                    digitalWrite(DIO,LOW);
    
                     delay(3);
    
                    DATA=DATA>>1;
    
                    digitalWrite(CLK,HIGH);
    
                     delay(3);
    
            } 
    
    }
    
     
    
     
    
     
    
    //按顺序显示
    
    void TM1637_display(unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char h)
    
    {
    
     
    
            TM1637_start();
    
            TM1637_Write(0x40);//写数据+自动地址加1+普通模式
    
            TM1637_ack();
    
            TM1637_stop();
    
            TM1637_start();
    
            TM1637_Write(0xc0);//设置显示首地址即第一个LED
    
            TM1637_ack();
    
     
    
            TM1637_Write(tab[a]);
    
            TM1637_ack();
    
            TM1637_Write(tab[b]|h<<7);//h为1时显示时钟中间的两点
    
            TM1637_ack();
    
            TM1637_Write(tab[c]);
    
            TM1637_ack();
    
            TM1637_Write(tab[d]);
    
            TM1637_ack();
    
     
    
            TM1637_stop();
    
            TM1637_start();
    
            TM1637_Write(0x89);//开显示,2/16亮度
    
            TM1637_ack();
    
            TM1637_stop();
    
    }
    
      //指定地址写入数据
    
          void display_fix(unsigned char add,unsigned char DispData)
    
          {
    
            TM1637_start();
    
            TM1637_Write(0x40);
    
            TM1637_ack();
    
            TM1637_stop();
    
            TM1637_start();
    
            TM1637_Write(0xc0|add);//设置显示地址
    
            TM1637_ack();
    
            TM1637_Write(tab[DispData]);//写入数据如果第2个加0x80则显示两小点
    
            TM1637_ack();
    
            TM1637_stop();
    
            TM1637_start();
    
            TM1637_Write(0x89);
    
            TM1637_ack();
    
            TM1637_stop();
    
          }

     

    展开全文
  • Tm4c123GX(tiva)入门详细教程

    万次阅读 多人点赞 2019-06-24 16:34:19
    TM4C123GX系列 学了几个月的Tiva,总的来说这个款单片机功能还是比较强大的。下面我将以TM4C123GH6PM为例介绍其基本资源及工程建立,点亮板卡上的LED灯以及对基本的时钟配置、PWM、uart、Timer等方面来做简要...
  • 基于STM32的常用数码管芯片TM1637驱动

    万次阅读 2018-01-30 17:16:02
    店家给的是51或者arduino的,花了点时间移植一下; IIC协议这里就不多说了; ... HAL_GPIO_WritePin(GPIOB, AnalonSDA_Pin|AnalonSCL_Pin|... HAL_Delay(500);  }   HAL_Delay(1);  } }
  • 当主机加电时,TM卡通过500 kΩ和50 Ω阻抗之间的切换来响应主机,用信号被拉低的时长(长或短)来表示数字逻辑(长为1,短为0)。由于阻抗切换的幅度为10 000∶1,因此,触点的接触电阻不会影响数字信
  • 基于STM32的常用数码管芯片TM1650驱动

    万次阅读 2018-01-29 17:57:21
    店家给的是51或者arduino的,花了点时间移植一下;... HAL_Delay(500);  }  osDelay(1);    }  /* USER CODE END StartDefaultTask */ } 依次显示1234 2345 4567。。。
  • RC522(RFID模块)实践总结

    万次阅读 多人点赞 2019-03-18 15:00:12
    此次使用RC522模块和S50卡实现近场通讯功能(开发板与RC522通讯方式为硬件SPI),就实践过程中的一些知识点进行总结: RC522模块和M1卡要点介绍; 驱动代码; 出现问题及解决方法;...MFRC522简化功能框图...
  • 本文为在用龙芯1c做3D打印机过程中的笔记。...本文重点放在tm7705的linux驱动上,关于温度测量后面另外写一篇详细介绍。硬件电路测试用的硬件为“安富莱”推出的TM7705模块。这里着重强调一下TM7705是深圳天微电子的A
  • 泉盛TM 800 810 850 TG-500 TG-K58 mini写频软件
  • Arduino使用TM1637四位数码管

    千次阅读 2019-03-06 19:25:26
    TM1637是一种带键盘扫描接口的LED驱动控制专用电路,内部集成有MCU数字接口,数据锁存器,LED高压驱动,键盘扫描等电路。 4位数码管:这里用的是TM1637驱动的数码管 引脚 数码管有四个引脚,意义如下: GND:电源...
  • 同时提供500mW,1W及2W的输出功率的产品,以满足客户对不同传输距离的要求。  特性描述  工作频率范围:2.4-2.5GHz,同时兼容802.11b/g  双向半双工,自动收发切换(Plug & Play),使用方便  弹性供电方式可...
  • STM32F103ZE驱动TM7705(兼容AD7705)代码加心得 1、讲解之前,我还是得狠狠得吐槽一下,我虽然没用AD7705,但还是劝大家尽量选择AD7705,国产的一些芯片真的有点不行,新能确实差的不是一点。博主可以很认真的说的是...
  • 2.本人对tm4的理解并不多,所以写的内容不会涉及到寄存器,完全是依赖于库函数和代码逻辑,看完后可以让你写出基本的代码,但深入挖掘仍须看书 3.本人曾用tm4单片机写出了完整的倒立摆代码,算是一点小小的成就 4....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,219
精华内容 6,487
关键字:

tm500