YLY Studios

月亮雨小组的天地

Swift 成为增长最快的编程语言 已经杀入前 10

 

自 2011 年以来,RedMonk 每季度都会统计最受欢迎的编程语言。根据最新的统计,Swift  已经成为增长速度最快的编程语言,而且首次杀入前10,与 Objective-C 并列。RedMonk 表示,Swift 能在 4  年的时间就实现这样的成绩,让人很震惊。

通常来说,一种全新的编程语言想要进入前 25 都非常困难,更不用说前 10 了。RedMonk 的评级通过 GitHub 和 Stack Overflow,也就是通过结合代码和讨论一起得出哪些编程语言更受欢迎。下面是最受欢迎的  20 种编程语言。

深度解析政府监听工具FinFisher:Windows Defender可检测阻止

 

在近日发表的深度分析博文中,微软详细地回顾了去年Windows Defender检测和阻止的恶意软件类型,主要被政府用于监控目的。该工具主要被APT间谍组织NEODYMIUM使用,名为FinFisher(也被称之为FinSpy),被微软检测为Wingbird,是通过复杂策略来绕过防病毒软件并避免被安全研究专家捕捉的政府级别监听间谍软件。

微信 v6.6.5 for Android 正式版发布

 

Android版微信迎来v6.6.5正式版,上一个正式版v6.6.3发布于2月9日,时隔24天又迎来了更新,本次升级主要是修复了一些已知的问题。新增在本地添加两个常登录账号后,可一键切换登录。可在“设置”-“通用”-“发现页管理”控制功能是否在“发现”显示。

近期版本微信主界面新增任务栏,下拉可以找到用过的小程序。小程序菜单升级,并支持小程序间快捷切换。小程序支持新类目——小游戏。

Ubuntu 18.04 LTS每日构建版默认依然使用X.org显示服务器

 

Canonical今天宣布即将到来的Ubuntu 18.04 LTS操作系统每日构建版默认情况下依然使用老旧的X.org Server显示服务器,而并非更加安全且更主流的Wayland。

ubuntu-18-04-lts-bionic-beaver-will-ship-with-xorg-by-default-says-canonical-519564-2.jpg

高级威胁保护(ATP)将于今年夏季登陆Windows 7/8.1

 

Windows 7的生命旅程即将于2020年1月14日走到终点,微软计划将于今年夏季开始将Windows 10系统上的高级威胁保护(ATP)服务带到Windows 7/8.1系统上。Windows ATP由Azure提供背后支持,具备端点检测和快速响应等优点,努力打造最安全的Windows系统。

WindowsBusiness_ATP_1920__Hero_Img-1050x394.jpg

微软连续八年被评为全球最具道德企业之一

 

基于企业社会责任、企业文化氛围等多种衡量因素,每年咨询公司Ethisphere Institute都会公布年度最具道德企业排行榜。根据最新公布的第12份年度榜单,微软已经连续八年被评为全球最具道德的企业之一。

访问:

微软中国官方商城

勒索软件无法破解只能重装 FBI曾悬赏300万抓黑客


2017年05月13日 18:25                        8585 次阅读                        稿源:中国青年网

近日,一种名为“CTB-Locker”的比特币敲诈病毒在国内爆发式传播,该病毒通过远程加密用户电脑文件,从而向用户勒索赎金,用户文件只能在支付赎金后才能打开。

上海市就勒索软件发出预警:已构成较严重安全威胁

5月12日,互联网上出现针对Windows操作系统的勒索软件(Wannacry)攻击案例。目前,包括高校、能源等重要信息系统在内的多类用户受到攻击,已对我国互联网络构成较为严重的安全威胁。上海市互联网信息办公室13日表示,该勒索软件利用已披露的WindowsSMB服务漏洞(对应微软漏洞公告:MS17-010)攻击手段,对计算机中的文档、图片等实施高强度加密,并向用户勒索赎金。

VMware Workstation 无法桥接适配器并显示错误:无法更改要桥接的网络: 没有未桥接的主机网络适配器 (2097851)

 

免责声明:本文为 Workstation fails to bridge adapter with the error: Cannot change network to bridged: There are no un-bridged host network adapters (2005168) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


•虽然系统上有可用物理适配器,但是无法将另外一个虚拟网络配置为桥接网络
•显示以下错误:

51单片机电波钟源程序

 代码当时只是简单的调出了校时功能,没加奇偶校验。

要修改的地方还不少。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int

sbit BPC=P3^2;
bit BPC_add;
uchar BPC_temp,Dat_add,Dat_su,Dat_num;
uchar data BPC_dat[3][19];
bit Get_time,As_time;
uchar Time;
uchar data Times[6];

#include"LCD1602.h"

void Init_T(void)
{
  EA=1;     //总中断允许
  IT0=1;    //IT0=1时下降沿触发,IT0=0时低电平触发,
  EX0=1;    //允许中断0
  TMOD=0x01;  //16计数器
  TH0=(65536-10000)/256;//装初值
  TL0=(65536-10000)%256;
  ET0=1;
  TR0=1;
}

void main(void)
{
  Init_T();//中断初始化
  Init_LCD();//LCD初始化
  while(1)
     {
       if(As_time)//帧结束,两帧对比
         {
           As_time=0;//清零对比标志位
           if(//对比相邻接收到的三帧数据
               (BPC_dat[0][1]==BPC_dat[1][1])&&(BPC_dat[0][1]==BPC_dat[2][1])
               &&(BPC_dat[0][2]==BPC_dat[1][2])&&(BPC_dat[0][2]==BPC_dat[2][2])
               &&(BPC_dat[0][3]==BPC_dat[1][3])&&(BPC_dat[0][3]==BPC_dat[2][3])
               &&(BPC_dat[0][4]==BPC_dat[1][4])&&(BPC_dat[0][4]==BPC_dat[2][4])
               &&(BPC_dat[0][5]==BPC_dat[1][5])&&(BPC_dat[0][5]==BPC_dat[2][5])
               &&(BPC_dat[0][6]==BPC_dat[1][6])&&(BPC_dat[0][6]==BPC_dat[2][6])
               &&(BPC_dat[0][7]==BPC_dat[1][7])&&(BPC_dat[0][7]==BPC_dat[2][7])
               &&(BPC_dat[0][8]==BPC_dat[1][8])&&(BPC_dat[0][8]==BPC_dat[2][8])
               &&(BPC_dat[0][10]==BPC_dat[1][10])&&(BPC_dat[0][10]==BPC_dat[2][10])
               &&(BPC_dat[0][11]==BPC_dat[1][11])&&(BPC_dat[0][11]==BPC_dat[2][11])
               &&(BPC_dat[0][12]==BPC_dat[1][12])&&(BPC_dat[0][12]==BPC_dat[2][12])
               &&(BPC_dat[0][13]==BPC_dat[1][13])&&(BPC_dat[0][13]==BPC_dat[2][13])
               &&(BPC_dat[0][14]==BPC_dat[1][14])&&(BPC_dat[0][14]==BPC_dat[2][14])
               &&(BPC_dat[0][15]==BPC_dat[1][15])&&(BPC_dat[0][15]==BPC_dat[2][15])
               &&(BPC_dat[0][16]==BPC_dat[1][16])&&(BPC_dat[0][16]==BPC_dat[2][16])
               &&(BPC_dat[0][17]==BPC_dat[1][17])&&(BPC_dat[0][17]==BPC_dat[2][17])
             )Get_time=1;//接收成功,较正时钟标志位
         }
       if(Get_time)//判断是否要较正时钟
         {
           Get_time=0;//清零时钟较正标志位
           Times[0]=((BPC_dat[0][15]*16)+(BPC_dat[0][16]*4)+(BPC_dat[0][17]));//年
           Times[1]=((BPC_dat[0][13]*4)+(BPC_dat[0][14]));//月
           Times[2]=((BPC_dat[0][10]*16)+(BPC_dat[0][11]*4)+(BPC_dat[0][12]));//日
           Times[3]=((BPC_dat[0][2]*4)+(BPC_dat[0][3]));//时
           Times[4]=((BPC_dat[0][4]*16)+(BPC_dat[0][5]*4)+(BPC_dat[0][6])+1);//分
           if(Times[4]>59){Times[4]=0;Times[3]++;if(Times[3]>12)Times[3]=0;}
           Times[5]=0;//秒
         }
       display();//液晶显示
     }
}

void Time_EX0(void)interrupt 0
{
  BPC_add=1;//使能计数标志位置1
  Dat_add=0;//起始帧判断清零
}

void Time_T0(void)interrupt 1//中断计数器,每秒100
{
  TH0=(65536-10000)/256;
  TL0=(65536-10000)%256;
  Time++;//时间计数
  if(Time>100)
    {
      Time=0;
      Times[5]++;
      if(Times[5]>59)
        {
          Times[5]=0;
          Times[4]++;
          if(Times[4]>59)
            {
              Times[4]=0;
              Times[3]++;
              if(Times[3]>12)Times[3]=0;
            }
        }
    }
  Dat_add++;//起始帧计数
  if(Dat_add>150)Dat_num=0;//判断帧起始,在一秒内没清零Dat_add就大于100
  if(BPC_add)//计数标志,能计数
    {
      if(!BPC)BPC_temp++;//脉宽计数加加
      else
        {
          BPC_add=0;//一个脉冲结束,清零计数标志
          if((BPC_temp>5)&&(BPC_temp<15))BPC_dat[Dat_su][Dat_num]=0;//0.1秒   按脉宽换算成4进制
          else if((BPC_temp>15)&&(BPC_temp<25))BPC_dat[Dat_su][Dat_num]=1;//0.2秒
          else if((BPC_temp>25)&&(BPC_temp<35))BPC_dat[Dat_su][Dat_num]=2;//0.3秒
          else if((BPC_temp>35)&&(BPC_temp<45))BPC_dat[Dat_su][Dat_num]=3;//0.4秒
          else Dat_num=0;
          
          Dat_num++;//位计数
          if(Dat_num>18)//位满,帧结束
            {
              Dat_num=0;//位重计
              As_time=1;//帧接收完成,两帧对比标志位置1
              Dat_su++;if(Dat_su>2)Dat_su=0;//帧记录,换数组再记
            }
          BPC_temp=0;//脉宽计数器清零
        }
    }
}



#ifndef __LCD1602_H_
#define __LCD1602_H_

/*uchar code number[10]={0x30,0x31,0x32,
0x33,0x34,0x35,0x36,0x37,0x38,0x39};*/
                                
#define DataPort P0
sbit RS = P2^0;
sbit RW = P2^1;
sbit EN = P2^2;

//LCD专用延时
void delay_LCD(uint k)
{
  uchar i;
  while(k--)
     for(i=0;i<121;i++);
}

//写指令
void Write_com(uchar com)
{
  RS=0;
  RW=0;
  DataPort=com;
  EN=1;
  delay_LCD(2);
  EN=0;
}

//写数据
void Write_dat(uchar dat)
{
  RS=1;
  RW=0;
  DataPort=dat;
  EN=1;
  delay_LCD(2);
  EN=0;                      
}

//初始化
void Init_LCD(void)
{
  DataPort=0x00;     //IO口初始化
  RS=1;
  RW=1;
  EN=1;
  Write_com(0x38);     //8位数据口,两行显示
  Write_com(0x06);     //完成一个字符码传送后,光标右移,AC自动加1
  Write_com(0x01);     //清屏
  Write_com(0x0c);     //开显示
}
//Write_com(0x80);//第一行起始地址
//Write_com(0xc0);//第二行起始地址

void display(void)
{
  Write_com(0x80);
  Write_dat('Y');
  Write_dat('e');
  Write_dat('a');
  Write_dat('r');
  Write_dat(':');
  Write_dat('2');
  Write_dat('0');
  Write_dat(0x30+Times[0]/10);
  Write_dat(0x30+Times[0]%10);
  Write_dat('-');
  Write_dat(0x30+Times[1]/10);
  Write_dat(0x30+Times[1]%10);
  Write_dat('-');
  Write_dat(0x30+Times[2]/10);
  Write_dat(0x30+Times[2]%10);
    
  Write_com(0xc0);
  Write_dat('T');
  Write_dat('i');
  Write_dat('m');
  Write_dat('e');
  Write_dat(':');
  Write_dat(0x30+Times[3]/10);
  Write_dat(0x30+Times[3]%10);
  Write_dat('-');
  Write_dat(0x30+Times[4]/10);
  Write_dat(0x30+Times[4]%10);
  Write_dat('-');
  Write_dat(0x30+Times[5]/10);
  Write_dat(0x30+Times[5]%10);
}

#endif



这都是在学校时写的,现在看了,自己都看不下去了。

给想要的朋友个参考吧。

«12345678»

Powered By Z-Blog 2.2 Prism Build 140101

Copyright YLY Studio WebSite. Some Rights Reserved.
沪ICP备12001966号-1