这里要注意51单片机有最小系统电路,需要满足此系统电路后方能正常执行
实验过程需要注意的地方已经在注释中了,用时注意即可
什么是共阳和共阴?数码管中间针脚接vcc就是共阳,接Gnd就是共阴。如果没有接对无法点亮数码管
#include<reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
#define TUBE P0 //定义宏变量
//共阳型(0~9,A,b,C,d,E,F,全亮,全灭),字码组
//uchar code table_D[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00,0xFF};
//正常型,共阳型要取反,共阴型不用取反
u8 code display[]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
//延时方法
void delay_ms(u16 n)
{
u8 i;
while(n--)
{
i = 111;
while(i--);
}
}
void main()
{
u8 j;
u8 array_length = sizeof(display) / sizeof(display[0]);
while(1)
{
for(j=0; j < array_length; j++)
{
TUBE=display[j]; //设置P0区8个针脚的电平,使用byte 的二进制值作为电平信号
delay_ms(1000);
}
}
}
https://www.bilibili.com/video/BV188411y7AZ/
通常情况下,通电情况下单片机引脚默认为高电平。
由于发光二极管正极连接公共正电压源(共阳极),所以只有位为0时,灯才会亮。需要形成压差后才会有电流点亮二极管
P0端口的8个二进制位中,高位对应P0.7,低位对应P0.0。既二进制高位对应的io口的高位,二级制的低位对应着io口的低位。
二进制从右到左为低→高,右边最低,左边最高。
本文链接:https://blog.nnwk.net/article/168
有问题请留言。版权所有,转载请在显眼位置处保留文章出处,并留下原文连接
Leave your question and I'll get back to you as soon as I see it. All rights reserved. Please keep the source and links
友情链接:
子卿全栈
全部评论