关于单片机的数码管扫描

为什么下面的程序在现实的不是扫描而是有点乱
#include
#define uint unsigned int
#define uchar unsigned char

sbit LE1=P2^0; //位选573锁存器使能
sbit LE2=P2^1; //段选573锁存器使能
void delay (int time)
{
uint i,j;
for (i=0;i<time;i++)
for (j=0;j<50;j++);
}
uchar code dis[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

uchar code step[8]={0x7f,0xbf,0xcf,0xdf,0xf7,0xfb,0xfc,0xfd};
void main ()
{
while (1)
{
uint i;
for (i=0;i<8;i++)
{
P1=step[i];
LE1=1;
LE1=0;
P1=dis[i];
LE2=1;
LE2=0;
delay(8000);
}
}
}

4个回答

代码这么贴,太乱了。

你把for循环里的代码改成这样看看
for (i=0;i<8;i++)
{
P1=step[i];
LE1=1;
P1=dis[i];
LE2=1;
delay(8000);
LE1=0;
LE2=0;
}

这完全不能真正理解你的程序啊

能明白你的意思 看看锁存器的连接对不对 断选位选的数组编码有没有问题 程序上 P1每次赋值前先置0一下 看看有没有效果

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
单片机键盘扫描与数码管
这是一份关于用全列扫描法来控制数码管的程序 希望对大家有用处!
单片机:数码管的动态扫描
#include"bsp.h" sbit DUAN = P0^0; sbit WEI = P0^1; unsigned char TABLECA[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned char TABLECC[16] = {0x3f,0x...
单片机中数码管动态扫描
单片机课程设计中实现数码管动态显示,8个数码管显示连续数字
AVR单片机数码管动态扫描程序
AVR单片机数码管动态扫描程序,共阴的数码管
单片机控制数码管、点阵、矩阵键盘联合扫描
单片机控制数码管、点阵、矩阵键盘联合扫扫描,按下矩阵键盘上的键,数字显示在数码管和点阵上。
89c51单片机数码管动态扫描显示
该资源实现数码管的动态扫描显示!!! 很好的帮助初学者学习参考
c语言 单片机控制数码管扫描
单片机初学者的简单设计,单片机的数码管动态扫描程序
单片机C程序 扫描程序——数码管
单片机C程序 扫描程序——数码管.....
单片机数码管动态扫描汇编语言代码
汇编语言源程序代码可以做简易数码管动态显示,适合初学者学习显示电路程序
单片机数码管
单片机的数码管动态实现74HC138芯片74HC245芯片 #单片机数码管实现其实很简单首先你注意两个问题 1:你要控制是哪一个数码管亮(74HC138) 2:你要控制数码管的那个位置亮(74HC245) 74HC138芯片 数码管的位 由单片机接口控制输出 下面是单片机各个接口的真值表: LED P2.2 P2.3 P2.4 LED1: 0 0 0 LED2: 0 0 ...
单片机之数码管
通过单片机实现初步数码管的跳转,视觉暂留效果,实现数字的加减
verilog数码管动态扫描
利用verilog实现的数码管动态扫描,并且实现了模块的例化
VHDL数码管扫描电路
八位数码管扫描电路,学习使用vhdl设计语言,学会使用时钟
寄存器版本 数码管扫描
针对网上对于stm32的程序多为库函数操作,本文全部采用寄存器编写程序,使用定时器产生中断使得数码管分别以1s和0.1s的频率刷新,且支持手动加减计数。
8位数码管动态扫描
8位数码管动态扫描用Proteus仿真实现8位数码管动态扫描控制。 用Keil C51编程实现上述功能 用Keil与Proteus联调,自动或手动改写显示内容
数码管动态扫描显示
数码管动态显示单片机程序,郭天祥单片机程序,对学习单片机有很大帮助
动态数码管扫描
动态数码管是单片机的基础程序,希望对广大初学者有一定帮助
动态数码管扫描原理
详细的介绍了动态数码管的使用方法
动态 数码管 扫描
【实验题目】 动态数码管扫描 【实验目的】 数码管是各类电子设备极为常见的显示器件。对初学者来说,编写动态数码管扫描程序显得稍稍复杂些,但这又是基本功,必须要掌握。 掌握数码管的基本知识:共阴、共阳、静态、动态、内部结构示意图。 掌握数码管的一般驱动方法:I/O低电平直接驱动共阳静态数码管、结合74HC595驱动静态数码管、结合74HC573驱动动态数码管。 掌握动态扫描数码管的基本编程方法:主程序只负责向显示缓冲区写入显示数据,然后可以做其它事情;定时中断程序负责读取显示缓冲区内的数据,然后送到驱动电路扫描显示。 【硬件接法】 在地址XDATA:0x8000处,用74HC573扩展输出端口作为动态数码管位选扫描信号。 在地址XDATA:0x9000处,用74HC573扩展输出端口作为动态数码管段选扫描信号。 【实验步骤】 ISP下载开关扳到“00”,用Flash Magic软件下载程序文件“dpy.hex”,运行。 【运行效果】 动态数码管依次显示出如下字符:0123456789AbCdEF-。
数码管动态扫描PCL2321
数码管动态扫描数码管动态扫描数码管动态扫描数码管动态扫描数码管动态扫描
数码管动态扫描演示
C语言程序
按键扫描,数码管显示
本程序显示了扫描键盘,相应数码管显示,内涵Proteus仿真图
VHDL 扫描数码管 计数器
此工程是基于VHDL语言的扫描方式数码管计数器,十进制计数器,有复位键和保持键。
STM32之---数码管动态扫描
如果按照惯例,第一个实验一般是LED流水灯,但是我相信大家的胃口绝不仅仅满足于区区一个流水灯,因此给出了一个稍微复杂一点的实验,这个实验就是通过动态扫描的方式让这8个数码管分别显示0~7这8个数字。在这个实验中,大家将正式迈入STM32的开发大门。 上图为实验的原理图,8个数码管为共阴极数码管,它们的每一段分别接在一起,分别形成了a、b、c、d、e、f、g和h这8...
FPGA动态扫描数码管
功能:用两个数码管显示0-99的数,每隔一秒加1。 由于数码管的段选段是连在一起的,要想两个数码管显示不一样的值,就必须动态地扫描数码管。因为人眼地时间分辨率是20ms,只要扫描数码管地的周期小于20ms,就可以使用残影让数码管显示数值,给人的感觉就是数码管同时显示了两个数字。 使用到的模块: 1.查找表,将数码管要显示的数值翻译成数码管的段选信号,从低位到告位分别对应着hgfedcba 2.分频...
数码管动态扫描
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
四位数码管的动态扫描
实现同时在四位数码管上显示四个不同的数,实现动态扫描(写的第一个程序,可能会贻笑大方)
8位数码管扫描显示
基于verilog的8位数码管扫描显示,仿真成功
数码管动态扫描(源程序)
数码管动态扫描(源程序),可以用来检测自己所做数码管的好坏!
lesson4~数码管的动态扫描
1.动态显示:动态显示的原理:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略
80C52动态扫描数码管
自己写的STC80C52的动态扫描数码管,参考郭天祥的代码段。
按键扫描和数码管显示
数码管的显示及按键扫描程序总结,动态按键扫描,C语言,实现方案
动态数码管 扫描
【实验题目】 动态数码管扫描 【实验目的】 数码管是各类电子设备极为常见的显示器件。对初学者来说,编写动态数码管扫描程序显得稍稍复杂些,但这又是基本功,必须要掌握。 掌握数码管的基本知识:共阴、共阳、静态、动态、内部结构示意图。 掌握数码管的一般驱动方法:I/O低电平直接驱动共阳静态数码管、结合74HC595驱动静态数码管、结合74HC573驱动动态数码管。 掌握动态扫描数码管的基本编程方法:主程序只负责向显示缓冲区写入显示数据,然后可以做其它事情;定时中断程序负责读取显示缓冲区内的数据,然后送到驱动电路扫描显示。 【硬件接法】 在地址XDATA:0x8000处,用74HC573扩展输出端口作为动态数码管位选扫描信号。 在地址XDATA:0x9000处,用74HC573扩展输出端口作为动态数码管段选扫描信号。 【实验步骤】 ISP下载开关扳到“11”,用Flash Magic软件下载程序文件“dpy.hex”,运行。 【运行效果】 动态数码管依次显示出如下字符:0123456789AbCdEF-。
动态 数码管 扫描
【实验题目】 动态数码管扫描 【实验目的】 数码管是各类电子设备极为常见的显示器件。对初学者来说,编写动态数码管扫描程序显得稍稍复杂些,但这又是基本功,必须要掌握。 掌握数码管的基本知识:共阴、共阳、静态、动态、内部结构示意图。 掌握数码管的一般驱动方法:I/O低电平直接驱动共阳静态数码管、结合74HC595驱动静态数码管、结合74HC573驱动动态数码管。 掌握动态扫描数码管的基本编程方法:主程序只负责向显示缓冲区写入显示数据,然后可以做其它事情;定时中断程序负责读取显示缓冲区内的数据,然后送到驱动电路扫描显示。 【硬件接法】 两片74HC573驱动动态数码管,输入端都接到P0端口,I/O方式控制。 P1.2和P1.3分别控制两个74HC573的LE信号,P1.2对应位选、P1.3对应段选。 【实验步骤】 ISP下载开关扳到“10”,用Flash Magic软件下载程序文件“dpy.hex”,运行。 【运行效果】 动态数码管依次显示出如下字符:0123456789AbCdEF-。
数码管动态扫描程序-七段数码管动态扫描程序
七段数码管动态扫描程序 七段数码管动态扫描程序
关于数码管动态扫描的latch的简单问题
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义rnrn#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换rnsbit LATCH1=P2^2;//定义锁存使能端口 段锁存rnsbit LATCH2=P2^3;// 位锁存rnrnmain()rnrnrn while(1)rn rn DataPort=0xfe; //取位码 第一位数码管选通,即二进制1111 1110rn LATCH2=1; //位锁存rn LATCH2=0;rnrn DataPort=0x4F; //取显示数据,段码 “3”共阴字符码rn LATCH1=1; //段锁存rn LATCH1=0;rn rnrnrnrn latch 1 和 latch2 有什么作用?说简单点ok? rnrnrn 程序中分别应用 了两次 DataPort P0 分别有什么作用??rnrnrn 主函数rn------------------------------------------------*/rnmain()rnrn unsigned int num;rn unsigned int j;rn while(1)rn rn j++;rn if(j==200) //检测当前数值显示了一小段时间后,需要显示的数值加1,实现数据显示的变化rn rn j=0;rn num++;rn if(num==1000)//用于显示0~999rn num=0;rnrn rn rn TempData[0]=dofly_DuanMa[num/100];//分解显示信息,如要显示68,则68/10=6 68%10=8 rn TempData[1]=dofly_DuanMa[(num%100)/10];rn TempData[2]=dofly_DuanMa[(num%100)%10];rn Display(2,3);rn rnrn/*------------------------------------------------rn 延时函数,含有输入参数 unsigned int t,无返回值rn unsigned int 是定义无符号整形变量,其值的范围是rn 0~65535rn------------------------------------------------*/rnvoid Delay(unsigned int t)rnrn while(--t);rnrn/*------------------------------------------------rn 显示函数,用于动态扫描数码管rn 输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示rn 如输入0表示从第一个显示。rn Num表示需要显示的位数,如需要显示99两位数值则该值输入2rn------------------------------------------------*/rnvoid Display(unsigned char FirstBit,unsigned char Num)rnrn unsigned char i;rn rn for(i=0;i
keil编辑的关于数码管基本动态扫描
这是一个用KEIL写的八位数码管动态扫描程序,包括把最后一位按一秒钟改变一次。
80S51单片机数码管显示
74ls164作为段码发送 74ls138作为位选发送 驱动6位数码管显示
单片机——数码管显示实验
MM一直以来不喜欢这门课,做实验就开始急了,谢谢GG
单片机数码管动态显示
数码管 动态显示 适合初学者 这个程序不是我的原创也是网上的,大家做做参考吧
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件