精华内容
下载资源
问答
  • 多位LED动态扫描显示

    2014-10-19 14:27:35
    关于led静态和动态扫描,有Proteus和keil的应用
  • 数码管动态扫描显示 象棋小子 1048272975 数码管由于发光亮度强,指示效果好,非常适合于电梯楼层等数值显示应用中。对于一位数码管,可以采用静态显示,但实际应用中都是需要显示多位数值,数码管模块也只能动态...

    51单片机开发系列三

    数码管动态扫描显示

    象棋小子    1048272975

    数码管由于发光亮度强,指示效果好,非常适合于电梯楼层等数值显示应用中。对于一位数码管,可以采用静态显示,但实际应用中都是需要显示多位数值,数码管模块也只能动态显示,因此笔者在这里简单分析一下数码管动态扫描驱动的实现。

    1. 数码管原理概述

    数码管由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。数码管根据内部接法又可分成共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管(如下图SM*10501),共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管如下图(SM*20501)。以共阳数码管为例,要想显示数字2,需把A、B、G、E、D段点亮,即公共端接上正电源,ABGED段阴极拉低,其余段拉高即可显示数字2。


    2. 硬件设计

    笔者此处以四位一体共阳数码管显示为例讲解其大概的硬件设计。

    微控制器的IO口均不能流过过大的电流,LED点亮时有约10ms的电流,因此数码管的段码输出不要直接接单片机IO口,应先经过一个缓冲器74HC573。单片机IO口只需很小的电流控制74HC573即可间接的控制数码管段的显示,而74HC573输出也能负载约10ms的电流。设置数码管段的驱动电流为ID=15ma,这个电流点亮度好,并且有一定的裕度,即使电源输出电压偏高也不会烧毁LED,限流电阻值

    R = (VCC- VCE – VOL – VLED) / ID

    VCC为5v供电,VCE为三极管C、E间饱和电压,估为0.2v, VOL为74hc573输出低电平时电压,不同灌电流,此值不一样,估为0.2v,具体查看规格书,VLED为红光驱动电压,估为1.7v,根据上式可算出限流电阻为R = 200R。

    数码管需接收逐个扫描信号,扫描到相应数码管时,对应的段码数据有效,即显示这个数码管的数值。笔者采用三线八线译码器74HC138来产生对应的扫描线信号。

    当各个段码均点亮时,电流约15max8=90ma流过数码管公共端,74HC138无法直接驱动这个电流,需加三极管驱动,由于74HC138输出低电平有效,此处只有PNP三极管适合作为驱动。三极管基极电流设为2ma即可让三极管饱和,最大驱动电流远大于90ma。基极偏置电阻阻值

    Rb =(VCC - VEB – VOL) / IB

    VCC为5v供电,VEB为三极管E、B间的导通电压0.7v,VOL为74hc138输出低电平时电压,可根据规格书估为0.3v,故Rb = 2k即可。


    图2-1 四位一体数码管原理图

    3. 驱动实现

    数码管段码接P0口,位码接P2口第0~2位。对于LED显示器都是有一个刷新频率的,同样对于数码码动态扫描也需要一个扫描频率。扫描频率下限为50HZ,低于一定的扫描频率,显示会闪烁。频率过高,则亮度较差且占用cpu资源。一般整个数码管扫描一遍时间为约10ms较合适(即扫描频率100HZ),我们用的是四位数码管,每个数码管点亮时间为2ms,扫描一遍时间为8ms。为保证这个刷新频率,通过是通过定时器来周期性进行数码管刷新。笔者在此以四位一体数码管实现秒表计数显示为例来作代码开发。

    数码管动态显示功能实现模块文件DigitalTubeTable.c内容如下:

     

    #include "reg52.h"

    #include"DigitalTube.h"

     

    // 数值相对应的段码,共阳极

    static unsigned char codeDigitalTubeTable[12]= { // 共阳LED段码表

    0xc0, 0xf9, 0xa4, 0xb0, 0x99,0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xbf

    //"0"  "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9" "不亮"  "-"

    };

     

    // 每个数码管需一个字节的内存保存对应数码管数据            

    static unsigned charFrameBuffer[DigitalTubeNumber];

     

    unsigned char*DigitalTube_GetBuffer()

    {

           return FrameBuffer;

    }

     

    void DigitalTube_Scan()

    {

           static unsigned char Select = 0; // 记录扫描的选择线

           unsigned char Code;

           // 从对应选择线中找到显存数据,并得到相应的段码

           Code = DigitalTubeTable[FrameBuffer[Select]];

           // 段码实际输出到数码管接口

           DigitalTube_Data(Code);

           // 位选实际输出到数码管接口

           DigitalTube_Select(Select);

           Select++; // 进入到下一位选扫描

           if (Select >= DigitalTubeNumber) {

                 Select = 0;    // 所有数码管已扫描,从第一个数码管再次开始扫描

           }

    }

     

    我们在数码管模块头文件DigitalTube.h中实现模块的接口访问宏实现,使之方便移植及修改接口配置。模块头文件同时也引出模块的接口函数,void DigitalTube_Scan(void)为数码管刷新函数,需周期性调用刷新数码管显示。unsigned char *DigitalTube_GetBuffer(void)用来获得数码管显存,从而更新数码管显存数据。其内容如下:

     

    #ifndef __DigitalTube_H__

    #define __DigitalTube_H__

     

    #ifdef __cplusplus

    extern "C" {

    #endif

     

    // 数码管模块中的个数,最大为8

    #define DigitalTubeNumber      4

     

    // 输出数码管位选

    #defineDigitalTube_Select(Select) {P2 = (P2&0xf8) + (Select);}

    // 输出数码管段码

    #define DigitalTube_Data(Dat)     {P0 =(Dat);}

     

    // 数码管刷新函数,必须保证以一定周期调用刷新

    void DigitalTube_Scan(void);

    // 获得数码管显存,以作显示的数据更新

    unsigned char*DigitalTube_GetBuffer(void);

     

    #ifdef __cplusplus

    }

    #endif

     

    #endif /*__DigitalTube_H__*/

     

    外部模块通过引入数码管的模块头文件DigitalTube.h来实现调用数码管驱动函数,简单测试调用(秒表数码管显示计数)实现如下:

     

    #include"reg52.h"

    #include"DigitalTube.h"

     

    // 以定时器时间为计时标准,记录时间间隔

    static volatile unsignedint SystemTick = 0;

     

    // 定时器2ms中断处理进行数码管刷新

    void T0_Interrupt()interrupt 1

    {

           TH0 = (65536-2000) / 256;

           TL0 = (65536-2000) % 256;

           SystemTick++; // 记录时间间隔

           DigitalTube_Scan();     //刷新数码管

    }

     

    void T0_Init()

    {

           TMOD = 0x01; // 定时器0工作方式1

           // 2ms计时中断(12M)

           TH0 = (65536-2000) / 256;

           TL0 = (65536-2000) % 256;

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

           EA = 1; // 总中断允许

    }

     

    void main()

    {

           unsigned char *pBuffer;

           unsigned char i;

           // 定时器初始化

           T0_Init();

           // 获得数码管显存,以作更新数据显示

           pBuffer = DigitalTube_GetBuffer();

           // 数据管显存初始化显示0

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

                  pBuffer[i] = 0;

           }

           // 开启定时器进行计时以及数码管刷新

           TR0 = 1;

     

           while(1) {

                  // SystemTick读数到500时为1s间隔到

                  if (SystemTick > 500) {

                         SystemTick =0; // 重新计秒

                         // 更新数码管秒表计数显存     

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

                                pBuffer[DigitalTubeNumber-1-i]++;

                                if (pBuffer[DigitalTubeNumber-1-i] <10) {

                                       break; // 未到10,不用进位更新高位显存,退出

                                } else {

                                       // 到10,这一位清0,并继续循环更新高位显存

                                       pBuffer[DigitalTubeNumber-1-i] =0;

                                }

                         }                         

                  }                         

           }

    }

    附录:

    此章节的Keil工程,包含源码,Preteus仿真,包含仿真电路,可直接查看效果,DigitalTube.rar。

    http://pan.baidu.com/s/19wRr4

     

    展开全文
  • 激光扫描投影显示技术是凭借激光准直性和方向性好的特点,利用扫描器件将激光 ...这些优点为激光扫描投影显示在一些特殊领域的扩展应用提供了可能。因此,激光扫描投影显示及其扩展应用具有重要的研究意义和市场价值。
  • 动态扫描LED显示电路编程范例

    千次阅读 2008-01-17 16:07:00
    2006-05-11 09:32:16 51单片机编程范例(动态扫描LED显示电路编程范例) 上一节我们讲述了单只LED与单片机的接口电路及编程实例,目的在于让初学者了解LED在单片机中的应用原理,单只LED显示在实际应用中并...
    2006-05-11 09:32:16

    字体变小 字体变大
    51单片机编程范例(动态扫描LED显示电路编程范例)
    上一节我们讲述了单只LED与单片机的接口电路及编程实例,目的在于让初学者了解LED在单片机中的应用原理,单只LED显示在实际应用中并无多大用途,一般都是多位的LED显示。现在我们作进一步学习,我们要讲解的是8位LED的显示原理及实际的编程方法。这里我们没有采用多I/O口的8051系列单片机,而是采用了完全兼容C51指令系统的质优价廉的AT89C2051单片机,它的软件编程与C51完全一致。
    在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。在没有富余端口的情况下,怎样通过扩展电路达到预期的目的呢?我们希望通过此例使设计人员在实际应用中了解一点电路扩展的原理,对实际的应用有所帮助。

    左图是显示电路,由于AT89C2051外部15个I/O引脚,即P1口和P3口,单P3口的P3.6是不引出的,15个I/O口要直接驱动8位LED显然是不够的,我们通过一片面74LS273对地址进行锁存,如果P1口仅用于显示驱动,而没有与其它外设进行数据交换,可省略这个锁存器,直接或通过其他驱动电路驱动连接LED。地址线我们通过一片74LS138三—八译码器对8位LED进行分时选通,这样在任一时刻,只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是我们常说的动态扫描电路。
    此电路中,74LS273用于驱动LED的8位段码,8位LED相应的"a"—"g"段连在一起,它们的公共端分别连至由74LS138(点击芯片型号可浏览其详细的技术手册)译码选通后经74LS04反相驱动的输出端。这样当选通某一位LED时,相应的地址线(74LS04输出端)输出的是高电平,所以我们的LED选用共阳LED数码管。
    动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改,可参见程序清单中的DELAY延时子程序。
    为简单起见,我们只是编写了8位LED同步显示"00000000"—"11111111"直到"99999999"数字,并且反复循环。程序很简单,流程图略去。

    · 程序清单:
    展开全文
  •  在单片机系统中动态扫描显示接口是单片机中应用为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形...
  • 现在一般的室内LED显示屏,通用的控制方法均采用行列分控模式,即通常所说的扫描模式,目前来说LED电子显示屏的驱动模式有静态扫描动态扫描,静态扫面又分为静态实像素和静态虚拟,动态扫描也分为动态实像和动态...
  • 8位数码管动态扫描

    2014-01-08 17:44:28
    8位数码管动态扫描用Proteus仿真实现8位数码管动态扫描控制。 用Keil C51编程实现上述功能 用Keil与Proteus联调,自动或手动改写显示内容
  • iOS开发-二维码扫描应用跳转

    千次阅读 2016-07-04 22:51:42
    在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar。使用时集成麻烦,出错也不方便调试。在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方...

    序言

    前面我们已经调到过怎么制作二维码(点我),在我们能够生成二维码之后,如何对二维码进行扫描呢?

    • 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar。使用时集成麻烦,出错也不方便调试。在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方框架。本文讲解如何使用原生框架实现二维码扫描功能,并且进行扫描后的项目跳转。

    ps:本期的源代码会在文章结尾给出链接

    扫描相关类

    • 二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话。我们需要用到一下几个类:

      • AVCaptureSession 会话对象。此类作为硬件设备输入输出信息的桥梁,承担实时获取设备数据的责任

      • AVCaptureDeviceInput 设备输入类。这个类用来表示输入数据的硬件设备,配置抽象设备的port

      • AVCaptureMetadataOutput 输出类。这个支持二维码、条形码等图像数据的识别

      • AVCaptureVideoPreviewLayer 图层类。用来快速呈现摄像头获取的原始数据

    • 二维码扫描功能的实现步骤是创建好会话对象,用来获取从硬件设备输入的数据,并实时显示在界面上。在扫描到相应图像数据的时候,通过AVCaptureVideoPreviewLayer类型进行返回
      应用跳转
    • 在使用第三方登陆、分享sdk的时候,我们的项目会在本机安装有目标平台的应用的情况下进行应用跳转,并且传递信息过去。这在沙盒机制下的iOS应用而言,理应是不符合规则的。但是,iOS SDK给我们提供了一个叫做url scheme的机制来实现这个功能。

    • url scheme让我们可以像使用Safari打开网页的方式跳转到其他应用中,并使用类似网络请求的GET请求的参数拼凑方式来在不同应用之间传递数据。

    • 使用url scheme的第一步是在项目的info.plist文件中添加新row,命名为URL types

    • 展开新增的字典,我们修改其中的URL Identifier以及新增加一个字段

    URL Schemes。
    
    • Identifier用来跳转后,让跳转应用识别从哪里跳转过来的,我们可以设置为bundleID反转,来确保其特殊性。

    • URL Schemes是一个数组,我们将在这个数组里面自定义自己的url schemes,这里我们填写应用名。

    • 接着,我们就可以在其他应用中通过openURL:方法打开我们的app。

    二维码扫描

    • 二维码扫描的步骤:

      • 1、创建设备会话对象,用来设置设备数据输入

      • 2、获取摄像头,并且将摄像头对象加入当前会话中

      • 3、实时获取摄像头原始数据显示在屏幕上

      • 4、扫描到二维码/条形码数据,通过协议方法回调

    • 会话对象AVCaptureSession的创建

      _session = [AVCaptureSession new];
      [_session setSessionPreset: AVCaptureSessionPresetHigh];    //高质量采集
      [self setupIODevice];
    • setupIODevice方法中懒加载方式创建输入对象和输出对象,注意必须在输出数据对象加入到当前会话后才能设置识别的数据格式。这里设置为扫描二维码以及条形码
      [_session addInput: self.input];
      [_session addOutput: self.output];
      _output.metadataObjectTypes = @[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];
    • 创建AVCaptureMetadataOutput设置好扫描成功回调代理以及回调线程
      _output = [AVCaptureMetadataOutput new];
      [_output setMetadataObjectsDelegate: self queue: dispatch_get_main_queue()];
    • 创建AVCaptureDeviceInput输入设备为手机摄像头
      AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType: AVMediaTypeVideo];
      _input = [AVCaptureDeviceInput deviceInputWithDevice: device error: nil];
    • 创建AVCaptureVideoPreviewLayer对象来实时获取摄像头图像,我们需要调用[self.view addSubview: self.scanView]把摄像头获取的图像实时展示在屏幕上
      _scanView = [AVCaptureVideoPreviewLayer layerWithSession: self.session];
      _scanView.videoGravity = AVLayerVideoGravityResizeAspectFill;
      _scanView.frame = self.bounds;
    • 实现captureOutput: didOutputMetadataObjects: fromConnection:来获取扫描得到的数据。回调参数metadataObjects中存放了扫描结果,我们需要先判断这个数组的数据个数不为0再执行下面的代码:
      [self stop];
      AVMetadataMachineReadableCodeObject * metadataObject = metadataObjects[0];
      if ([self.delegate respondsToSelector: @selector(scanView:codeInfo:)]) {
          [self.delegate scanView: self codeInfo: metadataObject.stringValue];
          [self removeFromSuperview];
      } else {
          [[NSNotificationCenter defaultCenter] postNotificationName: LXDSuccessScanQRCodeNotification object: self userInfo: @{ LXDScanQRCodeMessageKey: metadataObject.stringValue }];

    读取二维码信息进行应用跳转

    扫描优化

    应用传值

    PS查看原文请点击下面提示

    本文demo:二维码扫描集成

    本文转自:点我坐飞机

    拓展Demo:

    简单二维码集成,代码量仅需不到十行

    展开全文
  • 使用opencv模拟雷达扫描显示

    千次阅读 热门讨论 2018-11-20 09:41:14
    使用opencv模拟雷达扫描显示,扫描到的目标点,由rand函数随机产生,最终用于显示,目标识别后,显示目标。 实现工程代码:https://download.csdn.net/download/u010440456/11999373 // VectorPoint.cpp : 定义...

    使用opencv模拟雷达扫描显示,扫描到的目标点,由rand函数随机产生,最终用于显示,目标识别后,显示目标。

    实现工程代码:https://download.csdn.net/download/u010440456/11999373

     

    很多需要图片的同学,我已经上传了,以后就不一一发了。自己下载去。

    图片地址:https://download.csdn.net/download/u010440456/12499917

     

    // VectorPoint.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include<opencv2/opencv.hpp>
    #include<iostream>
    #include"stdio.h"
    #include<stdlib.h>
    #include<windows.h>
    #define random(x) (rand()%x)
    
    using namespace std;
    using namespace cv;
    
    
    
    
    class MvTimer
    {
    public:
    	MvTimer() { QueryPerformanceFrequency(&Freq); restart(); }
    	void restart() { QueryPerformanceCounter(&Count1); }
    	float time() { QueryPerformanceCounter(&Count2); return (float)((Count2.QuadPart - Count1.QuadPart) / (double)Freq.QuadPart * 1000.0f); }
    private:
    	LARGE_INTEGER Count1, Count2, Freq;
    };
    
    //void CBasicDlg::object_location(cv::Mat mat_img, std::vector<bbox_t> result_vec, cv::Mat *mat_imgout)    //视场角为5°,雷达图像分辨率1000*1000
    //object_location(newframe1, result_vec, &copyRadar);
    int main()
    {
    	Mat mat_img = imread("test.bmp");
    	Mat radar = imread("radar.png");
    	cv::Point center;
    	double theta, beta, rho;
    	center.x = mat_img.cols / 2;
    	center.y = mat_img.rows / 2;	
    	vector<vector<Point>> circlecenter(72);
    
    
    	int num = 10;
    	while (num--)
    	{
    		MvTimer t;  		  
    		for (int index = 0; index < 72; index++)	//index属于0-71
    		{			
    			Mat mat_imgcopy = radar.clone();
    			t.restart();
    			Mat *mat_imgout = &mat_imgcopy;			
    			theta = 3.1415926 * (2 * center.x - mat_img.cols + 2 * mat_img.cols * index) / (72 * mat_img.cols);
    			circlecenter[index].clear();
    			for (int t = 0; t < random(5); t++)
    			{
    				center.y = random(250);
    				rho = 0.31 * (*mat_imgout).rows - (0.12 * (*mat_imgout).rows * center.y) / mat_img.rows;				
    				float x = (*mat_imgout).cols / 2 + rho*sin(theta);
    				float y = (*mat_imgout).rows / 2 - rho*cos(theta);
    				circlecenter[index].push_back(Point(x, y));		
    			}
    
    			for (int i = 0; i < 72; i++)
    			{
    				for (int j = 0; j< circlecenter[i].size(); j++)
    				{
    					circle(*mat_imgout, circlecenter[i][j], 10, Scalar(0, 0, 255), -1, 8, 1);  //在Mat类型上画圆
    				}
    			}
    
    			//显示雷达扫描指示直线
    			double beta, beta0;
    			//	int rhomax = 1125;
    			double rhomax = (*mat_imgout).cols / 2.67;
    			beta = 3.1415926 * index / 36;
    			beta0 = beta - 1.134;
    			Point start, end, end0;
    			start.x = (*mat_imgout).cols / 2;
    			start.y = (*mat_imgout).rows / 2;
    			end.x = start.x + rhomax * sin(beta);
    			end.y = start.y - rhomax * cos(beta);
    			end0.x = start.x + rhomax * sin(beta0);
    			end0.y = start.y - rhomax * cos(beta0);
    			//line(*mat_imgout, start, end0, Scalar(0, 255, 0), 3);
    			line(*mat_imgout, start, end, Scalar(0, 255, 0), 3);
    			cout << t.time() << endl;
    			imshow("test", *mat_imgout);			
    			waitKey(100);
    		}		
    	}	
    	return 0;
    }
    

    展开全文
  • 数码管的动态扫描实现

    千次阅读 2020-08-12 18:02:27
    实现FPGA驱动数码管动态显示,板级调试时通过in system sources and probes(ISSP)输入想要显示的数据。 八段数码管的驱动原理: 八段数码管的结构如下图所示,七段数码管就是少了h那个点。 数码管分别共阳极和共阴极...
  • iOS - 二维码扫描应用跳转

    千次阅读 2017-05-31 09:36:18
    在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar。使用时集成麻烦,出错也不方便调试。在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方...
  • 8255扫描键盘显示实验

    2011-05-12 10:25:22
    应用8255芯片实现扫描键盘,显示的实验,配有电路图,软件设计流程图,已经软件编程,应用汇编语言
  • 第七章 Web 应用扫描(一) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 7.1 使用 Nikto 扫描 Web 应用Nikto 是 Kali 中的命令行工具,用于评估 Web 应用的已知安全问题。Nikto 爬取目标站点并...
  • iOS开发-二维码扫描应用跳转 序言 前面我们已经调到过怎么制作二维码(点我),在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,...
  • 网页调扫描扫描显示

    万次阅读 2017-05-08 17:15:51
    js调起扫描仪,如果厂商没有提供...ActiveXObject:通过它可以访问windows的本地文件系统和应用程序, 比如:有的时候我们需要得到用户的机器名,用户名,得到某个文件的信息,或者读写注册表,或者启动计算器、out
  • 扫描二维码和签到打卡应用程序

    千次阅读 热门讨论 2016-11-22 11:00:41
    扫描二维码和签到打卡应用程序项目简介 完整的二维码扫描功能 漂亮的界面 查询数据库功能 写入到本地文件在本地文件中手动创建txt文件 打卡功能实现 集成扫描二维码功能我的做法和大多数朋友有点区别,这个是参考大神...
  • BlackBerry 9850 应用:条码 二维码扫描

    千次阅读 2012-11-08 11:03:36
    扫描条码,二维码,可以直接显示中文,打开web网站,搜索条码
  • 51单片机开发系列四 LED点阵扫描显示 ...笔者此处就LED点阵屏动态扫描显示作一个简单的介绍。 1. LED点阵屏显示原理概述 图1-1为一种8x8的LED点阵单色行共阳模块的内部等效电路图,对于红光LED其工作正向电压约
  • Powerbuilder中Kodak图像扫描控件应用技巧作者:佚名 8){NewsContentLabel.style.fontSize=(--newasp_fontsize)+"pt";NewsContentLabel.style.lineHeight=(--newasp_lineheight)+"pt";}">减小字
  • 我们知道,依次只能让一个数码管/led灯亮起来,但是我们可以通过高频动态扫描得到8位数码管同时亮起来,这里介绍如何实现。 一、八位数码管 八位数码管原理图 下图为原理图: 段选信号:P0[7…0] 位选信号:P2[2…...
  • 上一节讲了在主函数循环中动态扫描数码管的程序,但是该程序有一个隐患,在一些项目中 ,主函数循环中的任务越多,就意味着在某一瞬间,每显示一位数码管停留的时间就会越久,一旦超过某个值,会严重影响显示的效果...
  • C51单片机数码管动态显示

    万次阅读 多人点赞 2018-08-27 21:49:25
    数码管作为最廉价的输出设备,在各种自动化设备中有很大的应用,最简单普通的显示方式为动态刷新显示,称为假动态显示,即通过分时扫描每一位,利于人眼的视觉停留现象,造成一种静态显示的效果,如下图所示: ...
  • Android 应用之二维码扫描登录

    千次阅读 2014-08-12 08:59:51
    下面介绍二维码扫描登录原理, 首先需要web服务端,和app客户端。 web服务端主要工作是生成二维码,检测客户端提交信息正确性,更新网页界面。 app客户端主要工作是扫描二维码,提交账户信息(此不是指...
  • nikto2 — Web应用漏洞扫描

    万次阅读 2017-06-05 23:18:57
    Nikto非常全面的网页扫描
  • 最近工作的需要,又涉及到了数码管的动态扫描问题。在此把其中需要注意的地方记录一下,总结一下,也和爱好电子朋友们分享一下,由其是当代的大学生们,及那些刚刚踏入这一领域的新手们。虽然简单,但也值的注意。...
  • 打开相册,发现应用下载的图片被显示在其中,往往这时候我们不希望把其暴露给用户。 比如:视频、图片、音频都不需要暴露给用户。 ### 解决方案 * 1.修改资源文件名 * 比如图片为img/png的格式修改为ing 等等...
  • 四位一体数码管介绍、扫描原理、应用电路和共阳共阴码段编写1、 数码管结构如图 1,一般7段数码管由7段条形发光二极管和一个圆点发光二极管组成,控制ABCDEFG发光二极管的亮灭,可以显示0-F字符以及其他特殊字符,...
  • 树莓派应用:摄像头条形码扫描

    千次阅读 2016-11-08 10:22:18
    树莓派小而强大,有非常多的应用场景。这里分享下使用树莓派,摄像头,以及C和Python代码来实现一个条形码扫描工具。之前分享过如何把OpenCV Python获取的图像传递到C层处理,会用到里面的代码。 测试环境 ...
  • AR应用程序脱离扫描图功能实现

    千次阅读 2016-03-04 08:45:23
    下面咱们说说怎么实现脱离扫描托仍然让模型在屏幕的最中显示 首先你需要判断什么情况下是脱离扫描图的状态,高通为此提供了一个方法 在这个代码里面,自己写一个bool判断, 这样你就可以通过监听imesh来判断是否...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 224,499
精华内容 89,799
关键字:

动态扫描显示的应用