测试测试

/*

项目名称:机顶盒频道锁定

日期:2016年1月31日  23:33

版本:2.1

设计:chunli

博客:http://990487026.blog.51cto.com/

邮箱:[email protected]

编码环境:GBK2312简体中文

μVision 版本:4.72.9.0

代码类型:C语言

功能:用导线的方式实现红外控制功能

2.0更新说明:

1, 废弃弃原来模拟按键的方式去控制机顶盒的频道,因为这种方式不稳定。

2,采用红外控制的思想,用导线代替红外发射,频道锁定迅速

2.1更新说明:

1,简化代码,为机顶盒高度定制的C程序

使用说明:

//在 void channel(void)函数内   设定频道锁定

为什么要这么设计?

因为该环境内有7个同批次机顶盒同时在工作,如果只想控制其中的一个机顶盒,

用发射红外的方式,必然带来对其他机顶盒的干扰。

用导线的方式代替发射红外,彻底杜绝红外发射对其他机顶盒的干扰。、

而且频道锁定迅速,

单片机:STC15f104W

【注意】【注意】【注意】烧录晶振设定12M

接线:

1,单片机的GND 接机顶盒的 GND

1,单片机的3号脚接机顶盒红外接收一体化的OUT引脚

STC15F104W引脚

1 P3.4

2 VCC  3.8--5.5V

3 P3.5

4 GND

5 P3.0 接烧录器的TXD

6 P3.1 接烧录器的RXD

7 P3.2

8 P3.3

*/

#include <STC15F104E.H>

#define waiting 3     //开机初始化的时间 值应该为60,单位秒钟 范围:0--65535秒

#define rollback 2    //轮询锁定频道,   值应该为15,单位分钟 范围:0--255分钟

sbit  ISR_Single = P3^5;

staticunsignedint count;        //中断次数计数器

staticunsignedint End_Times;    //终止延时计数

static bitSingle_flag;           //0、1电平标志

unsignedchar code usercode1=0x48;   //遥控器用户码前8位

unsignedchar code usercode2=0x77;   //遥控器用户码后8位

unsignedchar code key_0=0x10;        //遥控器数字按键0

unsignedchar code key_1=0x11;        //遥控器数字按键1

unsignedchar code key_2=0x12;        //遥控器数字按键2

unsignedchar code key_3=0x13;        //遥控器数字按键3

unsignedchar code key_4=0x14;        //遥控器数字按键4

unsignedchar code key_5=0x15;        //遥控器数字按键5

unsignedchar code key_6=0x16;        //遥控器数字按键6

unsignedchar code key_7=0x17;        //遥控器数字按键7

unsignedchar code key_8=0x18;        //遥控器数字按键8

unsignedchar code key_9=0x19;        //遥控器数字按键9

unsignedchar code key_menu=0x07;     //遥控器菜单按键

unsignedchar code key_back=0x1C;     //遥控器返回按键

unsignedchar code key_ok=0x1F;       //遥控器确定按键

unsignedchar code key_up=0x00;       //遥控器向上按键

unsignedchar code key_down=0x01;     //遥控器向下按键

unsignedchar code key_left=0x03;     //遥控器向左按键

unsignedchar code key_right=0x02;    //遥控器向右按键

unsignedchar code key_CH_UP   =0x5A;//遥控器频道加按键

unsignedchar code key_CH_DOWN =0x5B;//遥控器频道减按键

unsignedchar codekey_VOL_UP  =0x06;//遥控器音量加按键

unsignedchar code key_VOL_DOWN=0x0B;//遥控器音量减按键

voidDELAY_MS (unsignedint a){

unsignedint i;

while(--a !=0)      {

for(i=0;i<=600;i++);

}

}

void sleep_s(unsignedint a){

unsignedint i;

for(i=0;i<a;i++){

DELAY_MS(1000);

}

}

void sleep_m(unsignedint a){

unsignedint i;

for(i=0;i<a;i++){

sleep_s(60);

}

}

voidSendSingle(unsignedint Single_times, bit Single_type){  //参数信号持续时间控制,电平高低

End_Times=Single_times;

Single_flag=Single_type;

EA=0;

count=0;

EA=1;                            //避免中断影响count置数

while(1){

EA=0;

if( count < End_Times ) EA=1;  //避免中断影响count比较

else{EA=1;break;}

}

}

voidSend_Byte(unsignedchar irdata){    //发射一个8位数据,低位先发送!!

unsignedchar i;

for(i=0;i<8;i++) {

SendSingle(43,1);                    //先发送0.56ms的38KHZ红外波(即编码中0.56ms的高电平)13.02*43=0.56ms

if(irdata &1) SendSingle(130,0);   //1为宽电平,13.02*130=1.693ms

else SendSingle(43,0);              //0为窄电平,13.02*43=0.560ms

irdata=irdata>>1;                     //数据右移,原先的最低位移出

}

}

voidSend_Code(unsignedchar Code){//编码发送,

SendSingle(692,1);    //13.02*692=9.010ms   //发送9ms的起始码,高电平有38KHZ载波

SendSingle(346,0);    //发送4.5ms的结果码,低电平无38KHZ载波 //13.02*346=4.505ms

Send_Byte(usercode1);  //发送十六位地址的前八位

Send_Byte(usercode2);  //发送十六位地址的后八位

Send_Byte(Code);       //发送八位数据

Send_Byte(~Code);      //发送八位数据的反码

SendSingle(43,1);     //发送总的结束位1bit  //13.02*43=0.56ms

Single_flag=0;

}

voidTimerInit(void){  // 12M @12T 13微秒中断, 1S/38K=26.31微秒,1/2的占空比方波,需要13微秒的中断

TMOD =0x02;         //(定时器0 方式2,8位自动重装)

TH0 =0xF3;

TL0 =0xF3;

TR0 =1;            //开始计数

ET0 =1;            //定时器0中断允许

EA =1;             //允许CPU中断

}

void channel(void){

// CCTV 1  综合 7   CCTV1 是7 号频道,按一下7

// CCTV 5  体育 20  CCTV5 是20号频道,先按2 再按0

// CCTV 13 新闻  22

// CCTV 14 少儿  87

// 湖南卫视      39

// 安徽卫视      55

// 东方卫视      33

// 黑龙江卫视    25

Send_Code(key_CH_UP);   //跳到CCTV1 综合频道

DELAY_MS(500);

//    Send_Code(key_down);

//    DELAY_MS(500);

}

void main(void){

count =0;

Single_flag =0;

ISR_Single =1;

TimerInit();

sleep_s(waiting);  //等待机顶盒初始化完成

channel();          //开始锁定频道

while(1){

//   sleep_m(rollback);

sleep_s(rollback);

channel();           //再次锁定频道

}

}

void timeint(void) interrupt 1{

count++;

if(Single_flag) ISR_Single=0;

else             ISR_Single=1;

}

时间: 2024-10-05 05:06:06

测试测试的相关文章

软件测试培训 高级测试/测试开发基本技能列表

软件测试培训从事软件测试许多年,想必很多人都有感到迷茫不知所措的时候,人生的十字路口有很多,该如何抉择呢?有人成功转型,QA.项目管理.配置管理.当然还有技术型,性能测试.自动化测试.测试开发,而想要延续走技术型路线,不可避免的就是钻研开发技术,说的通俗些就是coding的能力.软件测试所涉及的知识面很广,所以有些开发不要一味的黑测试诋毁测试的能力,当然不否认,现在大部分黑盒测试仍然局限在点点点,但技术需要提升,想要晋升为高级测试或者测试开发,所需要的能力变慢慢有所体现出来,测试所带来的价值也应

测试测试测试测试测试测试测试测试

测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试

高级测试/测试开发技能

从事软件测试许多年,想必很多人都有感到迷茫不知所措的时候,人生的十字路口有很多,该如何抉择呢?有人成功转型,QA.项目管理.配置管理.当然还有技术型,性能测试.自动化测试.测试开发,而想要延续走技术型路线,不可避免的就是钻研开发技术,说的通俗些就是coding的能力.软件测试所涉及的知识面很广,所以有些开发不要一味的黑测试诋毁测试的能力,当然不否认,现在大部分黑盒测试仍然局限在点点点,但技术需要提升,想要晋升为高级测试或者测试开发,所需要的能力变慢慢有所体现出来,测试所带来的价值也应声而来. 言

测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试

测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试

测试测试测试测试测试测试

测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试

测试测试测试测试测试测试测试测试测

测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试

SpringJUnit4测试--测试无反应/控制台报空指针的解决---junit的jar冲突!

前言: 前些日子碰到一个诡异的问题--用springJUnit进行测试,运行方法什么反应也没有,控制台 也没有输出,百度也没有答案--只好暂时作罢.今天我只好用上了排除法,建个测试小项目,将只要能测试的几个Spring相关jar拷进去,测试正常,然后开始与原项目进行对比排除jar,看看到底是哪个/哪些jar惹的祸导致jar冲突,结果真是出乎我的意料--竟然是自家兄弟!原来这个项目中也有个junit-4.4的jar,把它删掉就好了.(项目build path添加junt4依赖时会导入相应jar,与

一次测试测试(C++11)智能指针引用的崩溃结论

项目中用到了智能指针,但是要在智能指针指向的类中获取此类的shared_ptr指针传给其引用的类,结果出现了问题, 测试代码如下: (包括错误解释) 1 //测试 shared_ptr weak_ptr map<string,shared_ptr> 2 #include <stdio.h> //pinrtf ... 3 #include <string> //string ... 4 #include <map> 5 #include <memory&

JMF 下载安装与测试 测试成功

本来就是想在自己写的java里面加入实习的摄像头监控,然后个各种百度了一下,就用JMF来弄了,不过这个东西貌似比较旧,网上的资料虽然说有,但是也不是太多,并且遇到的一下问题也不能解决,总之经过了一天的百度,终于搞定了,其实最大的问题就是安装和设置这方面. 首先就是下载,csdn也有得下载,不过觉得要积分的不太好,毕竟oracle官网有得下:http://www.oracle.com/technetwork/java/javase/download-142937.html  然后就是安装了,这里我