怎么的单片机一位数码管输入0xbe就可以显示1

作者&投稿:弭汪 (若有异议请与网页底部的电邮联系)
为什么单片机一位数码管输入0xbe就可以显示1?~

因为数码管的段和单片机连接,0xbe 就是点亮了不同的段

程序清单如下:
#include // 51单片机头文件
#define uchar unsigned char// 宏定义,用uchar替代无符号字符型
#define uint unsigned int// 宏定义,用uint 替代无符号整数型
sbit Key = P2 ^ 7;
uchar Count = 0;
uchar code DataChar[10] = // 定义数码管的段码 '0'~'9'、'-'、' ' 'P'
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
};//延时N毫秒
void DelayNms( uint N )// 利用x、y作简单的自减运算,消耗单片机指令周期,达到延时的目的
{
uint x,y;
for( x=N; x>0; x-- )
for( y=110; y>0; y-- );
}
//数码管显示 // 显示方式为动态扫描,视觉暂留原理
void Display( uchar Num )// *p指向Main函数中的数组ShowNum的首地址
{
P0 = DataChar[ Num ];// 向P0赋段码值
DelayNms(2);// 短暂的延时
P0 = 0x00;// 让数码管熄灭,否则会造成数字重叠
}
void main( void )
{
while(1)
{
if( Key == 0 )
{
DelayNms(30);
if( Key == 0 )
{
Count += 1;
Count = (Count>9)? 0 : Count;
}
while( !Key );
}
Display( Count );
}
}

扩展资料
8051单片机具有如下功能:
8位CPU·4kbytes程序存储器(ROM) (52为8K)
128bytes的数据存储器(RAM) (52有256bytes的RAM)
32条I/O口线·111条指令,大部分为单字节指令
21个专用寄存器
2个可编程定时/计数器·5个中断源,2个优先级(52有6个)
一个全双工串行通信口
外部数据存储器寻址空间为64kB
外部程序存储器寻址空间为64kB
逻辑操作位寻址功能·双列直插40PinDIP封装
单一+5V电源供电
CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM:用以存放程序、一些原始数据和表格;
I/O口:四个8位并行I/O口,既可用作输入,也可用作输出
T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
五个中断源的中断控制系统;
一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。
参考资料来源:百度百科-51单片机

这个取决于数码管引脚与单片机IO口的连接,0xbe显示1,说明数码管右边的两划(笔画段b和c)接在单片机某个端口的第0脚和第6脚,因为0xbe的二进制是10111110,两个0就是两个被点亮的笔画段,这是共阴数码管


单片机不定义sbit可以直接操作一个位数吗
可以。在单片机编程中,可以通过直接操作位的方式来对单片机的特定位进行操作,不要使用sbit关键字进行位定义。通过位操作的方法,可以直接访问特定的位,进行读取或写入操作。

单片机的位数是怎么定义的?
简单明了的说:\\x0d\\x0a位数定义:CPU内部总线的位数就是单片机的位数。\\x0d\\x0a总线包括:地址总线、数据总线、控制总线。\\x0d\\x0a单片机总线位数越高,CPU一次能处理的数据量也就越大、处理速度也就越快。

C51单片机1位数的加1计数显示
从你描述的现象来看,书上是写错了,P2口可能有一位是控制数码管的位选,因为只有一个,所以P2的一位是控制数码管是否显示。P0口控制段选。

单片机的位数是什么意思
在讨论单片机的位数时,我们实际上是在指代单片机内部数据存储器的宽度。例如,一个8位单片机能够一次性处理8位二进制数据。位数越高,单片机处理数据的能力就越强。关于经济性问题,理论上,可以使用多个8位单片机来代替一个32位单片机,但这并不经济。替换过程中涉及的问题远不止简单的数学计算,例如8位...

单片机几位的好啊,是不是位数越高越好?
单片机并非位数越高越好。单片机有4、8、16、32位之分。4位不常用,主要用在一些廉价的玩具上。8位单片机的价格最低,速度相对较慢,但是抗干扰性较好,因此广泛用在恶劣的工业环境中或者要求高度稳定的工况下。所以到今天为止,8位单片机有巨大的市场份额。代表有Atmel公司的89系列等。开发相对较易。16...

单片机中的 位数 是什么
一位表示二进制的1或0 , 也就是一个高低电平

单片机外部中断,为何导致数码管只会显示一位数?(不要用其他办法,我只想...
你程序让人无法读。从你的描述的现象来分析,应该是显示函数在暂停计数时被跳过了,可将显示函数移到计时程序段的外层来,保证在暂停时也能执行即可。

单片机的位数(8位16位)是指的什么?
单片机的位数指的是该设备内部数据总线宽度的计量,即一次能够处理的数据量大小。通常,8位单片机被认为是低端的微控制器,适合处理简单的数据任务,如英文字母和模拟信号。而16位单片机则属于中端产品,能够处理包括英文字母、中文字符、模拟信号和声音在内的中等复杂度的数据。32位单片机代表了更高端的性能...

用单片机设计1位十进制加法计算器,
我用的是51单片机,你也可以把它改成你需要的即可。程序如下:include <reg52.h> include <intrins.h> define uchar unsigned char define uint unsigned int uchar code DSY_CODE[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff };uchar Num_Buffer[] = {0,0,0};...

51单片机的串口接收一帧数据有几位?
发送的位数跟工作方式有关。51单片机的发送和接受,只有10位和11位两种。先说单片机串口的工作方式:单片机串口的工作方式共4种,方式0--方式3.方式0:用移位脉冲。RXD做输入\/输出,TXD进行移位。收发的数据为八位。方式1:传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先)和1位停止位(1)。数据位由TXD...

大田县17716792007: 怎么的单片机一位数码管输入0xbe就可以显示1 -
市庄地喹: 这个取决于数码管引脚与单片机IO口的连接,0xbe显示1,说明数码管右边的两划(笔画段b和c)接在单片机某个端口的第0脚和第6脚,因为0xbe的二进制是10111110,两个0就是两个被点亮的笔画段,这是共阴数码管

大田县17716792007: 为什么单片机一位数码管输入0xbe就可以显示1? -
市庄地喹: 因为数码管的段和单片机连接,0xbe 就是点亮了不同的段

大田县17716792007: 在51单片机中1位位数码管显示的编程怎么写啊, -
市庄地喹: 下面这个程序是4x4距阵键盘,LED数码管显示,一共可以到0-F显示,你可以稍微改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你! #include unsigned char code Dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,...

大田县17716792007: 请问单片机中要怎么用按键控制数码管显示的模式..用C语言编程.. -
市庄地喹: 可以用按键中断,也可以用按键查询. 用按键中断:如果按键按下就进入中断子程序里,然后在中断子程序里改变显示模式即可 按键查询:用while 语句查询某个按键是否按下,如果未按下则继续执行子程序,如果按键按下则跳入到事先写好的子程序,在子程序里改变显示模式希望能帮到你!

大田县17716792007: 单片机控制一位数码管显示,数码管从0 - 9依次显示,时间间隔为100ms,循环下去,用定时器编写程序 -
市庄地喹: 只控制一位数码管没啥意思,如果只是研究一下倒是可以的 给你一份我自己写的,利用四位数码管显示模拟时钟的程序吧,供你研究 另外,再给你一个一位数码管的,是你要求的那种 这两个都是利用单片机的定时器中断来产生秒信号的 下面这...

大田县17716792007: 单片机动态数码显示0 - 99,没有锁存器,怎么用c语言写,求指点. -
市庄地喹: 应该是这样的 你先打开段选 然后输入你要显示的数字,关闭段选 打开位选 选择用哪一个数码管来显示 然后关闭位选 这个程序应该是这样的吧 dula=1; p0=table[a]; dula=0; wela=1; p0=0xfe; wela=0; delay(5) ; 这之后再选择别的数码管点亮 这样就达到动态显示的效果了 前面说错了 有锁存器的话是可以用同一个io口就能达到动态显示的目的了

大田县17716792007: 求单片机高手帮忙.帮写一个数码管的显示程序.十万火急.谢谢了 -
市庄地喹: ORG #0000H LJMP #0030H MIAN: MOV DPTR , #TAB ;表头送指针 MOV A, #0HMOV R2,#2AH ;延时一秒 MOV R3,#3BH MC: MOV R4,#4CHDJNZ R3,MC DJNZ R2,MC MOV P0,A+@DPTR ;从表中取值 INC A ;自加一,去下一...

大田县17716792007: 求单片机按键控制数码管程序 -
市庄地喹: 实现方法有挺多种的,下面介绍一种: 1、按键子程序:实现按第一个键使键值keyvalue=1,第二个键使键值keyvalue=2,第三个键使键值keyvalue=3 2、显示子程序定义3个字节的显示缓存,如dispbuf1,dispbuf2,dispbuf3使dispbuf1的数字显...

大田县17716792007: 那位高手能告诉我单片机中数码管是这样控制的. 用到哪些p几口,程序呀!! -
市庄地喹: 单片机的数码管显示分为动态和静态两种:对于动态显示一般是所有数码管的段码由一组IO【比如P0_0到P0_7】控制,通过位码,有几个数码管就需要几个位IO引脚,来控制分时依次显示单个的数码管.一般也称作动态扫描.对于静态扫描就是用锁存器,你可以看一下74HC573的芯片说明.这样的话就只能使用单个的数码管,即一个锁存器对应输出到一个数码管的段码输入端.【注:以上以共阴数码管为例作说明的】

大田县17716792007: 单片机接1位数码管 -
市庄地喹: 改成共阳的数码管,一般单片机都是低电平驱动能力强,可以直接驱动共阳的数码管,当然限流电阻选择也要合适.还有就是如果是动态显示的话,要考虑程序点亮数码管的时间,时间越短,限流电阻要越小才行,实在不行只有加驱动芯片,uln2803一类的,可以有几百毫安的驱动电流.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网