导航:首页 > 操作系统 > 51单片机个16

51单片机个16

发布时间:2023-08-22 13:32:17

A. 51单片机控制16个led灯,要求16个灯依次点亮后依次熄灭

假设16个灯接P0和P1,高电平点亮,每次亮一个灯
程序大致这样:
uint b;//16位变量对应16个灯
uchar i;
while(1)
{
for(i=0;i<16;i++)
{
b=0x01<<i;
P0=b;//自动取低8位

P1=b<<8;//取高8 位
delayms(200);
}
}

B. 51单片机,16个灯依次点亮后依次熄灭,跪求!!!

#include "REG52.H"

#define LEDH8 = P1;//所有LED 阳极接电源
#define LEDL8 = P2;//所有LED 阳极接电源

u8 LED_Status = 0xfe; // LED灯指示状态
u8 LED_bit = 0; //LED指示灯位 0-15

void Init_GPIO()
{
LEDH8 = 0xff; LEDL8 = 0xff; //熄灭所有LED
}
void Delay( u16 dat )
{
u16 i, j ;
for( i = dat; i>0; i-- )
for( j=100; j>0; j--);
}
int main ()
{
Init_GPIO();
while(1)
{
switch (LED_bit)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7: LEDL8 &= LED_Status ; break ;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15: LEDH8 &= LED_Status ; break ;
default : break;
}
Delay( 1000);
LED_bit++;
LED_Status = (LED_Status <<1);
}
}

C. 51单片机有没有16位的什么型号

MCS-251单片机就是16位的,能兼容运行MCS-51单片余备尺机的指令。当然现在很少很少听说有竖高这单片机了。
MCS-196单片机虽然是16位,但和51没有半点关滚敏系。

D. 51单片机16位特殊功能寄存器有几个

51单片机16位特殊功能寄存器只有PC和DPTR,其中PC不可以直接操作,就剩下DPTR了。
另外定时器虽是16位的,但被分成了两个8位寄存器分别操作。

E. 51单片机能做两个16位的加法运算吗如1010h和1010h,求大虾!!!!!

没有问题的,可以的,如用汇编
MOV R5, #10H ; 第一数据高字节
MOV R4,#10H ; 第一数据低字节
MOV R3, #10H ; 第二数据高字节
MOV R2,#10H ; 第二数据低字节
MOV A, R4
ADD A, R2
MOV R4, A ; 和低字节 在 R4 中
MOV A, R5
ADDC A, R3
MOV R5, A ; 和高字节 在 R5 中
RET

F. 51单片机的T0计数器是16位可以用什么和什么表示

方式0,为13位定时器/计数器,计数范围是0到2的13次方减中漏敬1。

方式1,为16位定时器/计数器,计数范围是0到2的16次方减1。

方式2,为8位初值自动重装的8位定时器/卖慎计数器,所以它的计数范围是0到2的8次方减1。

方式3,仅适用于T0,分成两个8位计数器,T1停止计搜滑数,8位计数器的计数范围是0到2的8次方减1。

G. MCS-51单片机的片内有( )个16位的特殊功能寄存器

mcs-51单片机内的i/o口锁存器、定时器、串行口缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现
。它们位于片内数据存储器之上,离散地分布在80h~ffh的地址空间范围内。mcs-51单片机特殊功能寄存器的总个数为26个
。其中有12个可以位寻址,用户可以通过位功能标记对这12个寄存器的任意一个有效位进行操作。
这些特殊功能寄存器颁在以下各个功能部件中:
(1)cpu:acc、b、psw、sp、dptr(由dpl和dph两个8位寄存器组成);
(2)中断系统:ip、ie;
(3)定时器/计数器:tmod、tcom、tl0、th0、tl1、th1;
(4)
并行i/o口:p0、p1、p2、p3;
(5)
串行口:scon、sbuf、pcon。
51单片机的寄存器基本上都是8位的,而16位都是由两个组装起来的,例如dptr以及定时器t0与t1

H. 51单片机,利用0和1两个数字组成16种模式,并用四个开关控制数码显示一位密码求程序设计

以下是使用51单片机(如STC89C52)和4个开关来控敏搭槐制数码管显示一位密码的简单示例代码。假设使用的是共阴数码管,并且数码管的引脚连接到了单片机的P0口。
#include <reg52.h> // 引入单片机寄存器定义头文件// 数码管显示的密码模式,共16种,每种模式使用4位二进制表示unsigned char password[16] = { 0x3F, // 0b00111111, 模式0
0x06, // 0b00000110, 模式1
0x5B, // 0b01011011, 模式2
0x4F, // 0b01001111, 模式3
0x66, // 0b01100110, 模式4
0x6D, // 0b01101101, 模式5
0x7D, // 0b01111101, 模式6
0x07, // 0b00000111, 模桥友式7
0x7F, // 0b01111111, 模式8
0x6F, // 0b01101111, 模式9
0x77, // 0b01110111, 模式10
0x7C, // 0b01111100, 模式11
0x39, // 0b00111001, 模式12
0x5E, // 0b01011110, 模式13
0x79, // 0b01111001, 模式14
0x71 // 0b01110001, 模式15};void main() { unsigned char i = 0; // 密码模式的索引

while (1) { // 读取四个枝竖开关的状态,每个开关对应一个二进制位
unsigned char switchValue = (P1 & 0x0F); // 根据开关状态选择密码模式
i = switchValue; // 设置数码管显示的密码模式
P0 = password[i]; // 简单延时
for (unsigned int j = 0; j < 1000; j++);

}
}

以上代码通过读取四个开关(连接到P1口的低4位)的状态来选择密码模式,并将选择的密码模式通过P0口设置到数码管上显示。

I. 51单片机怎么接收电脑发送的16位数据

51单片机是8位的,一次只能接一个字节,你这16位的,要分两次的。

电脑串口也是按两次来发送,也就是把这个16位的拆成两个字节,所以每个字节发送都是遵循串口协议的,你在单片机里面开串口接收中断即可。

你可能会疑问,要是第一个字节中断了,进入中断函数接第一个字节后,那第二个字节会不会错过,来不及接收?

这个不会的,上面说了,第二个字节也是按串口标准发的,也就是起始位,数据位,(校验位),结束位。

电脑在发一个字节后,又会接着发第二个字节。可是,要知道串口的波特率是很低的,远远比单片机的处理速度低。当你接了第一个字节,将此字节做一些处理,比如存起来时,电脑可能都还没开始发第二个字节呢,因为电脑发数据的速率是以K为单位的,而单片机处理速度是以M为单位的。

因此,不用担心第二个字节会丢失。

阅读全文

与51单片机个16相关的资料

热点内容
蜜源app是什么时候创立的 浏览:704
计算机专业学51单片机 浏览:208
程序员不接受反驳 浏览:294
微软自带的压缩软件 浏览:286
中国玩家在日本服务器做什么 浏览:48
12864和单片机 浏览:898
25匹空调压缩机 浏览:649
adkandroid下载 浏览:308
如何在苹果电脑上装python 浏览:327
哪个app的跑步训练内容最丰富 浏览:583
广讯通怎么删除文件夹 浏览:206
解压的视频化妆品 浏览:674
易语言新进程监视源码 浏览:941
turbo码译码算法 浏览:956
stc11f16xe单片机 浏览:282
linuxupdate命令行 浏览:578
pdf转化成wps 浏览:765
php抛出错误 浏览:159
买车看车用什么app 浏览:656
dos怎么清除屏幕上的命令 浏览:813