点亮第一个数码管
书中P49例子
#include <reg52.h>
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit dula = P2 ^ 6; //U1锁存器的锁存端
sbit wela = P2 ^ 7; //U2锁存器的锁存端
//延时
void sleep(uint delay)
{
uint i, j;
for(i = delay; i > 0; i--)
{
for(j = 100; j > 0; j--);
}
}
void main()
{
wela = 1; //打开U2锁存端
P0 = 0xfe;
wela = 0; //关闭U2锁存端
dula = 1; //打开U1锁存端
P0 = 0x7f;
dula = 0; //关闭U1锁存端
while(1); //程序停止
}
点亮全部数码管
书中P50例子
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit dula = P2 ^ 6; //U1锁存器的锁存端
sbit wela = P2 ^ 7; //U2锁存器的锁存端
//延时
void sleep(uint delay)
{
uint i, j;
for(i = delay; i > 0; i--)
{
for(j = 100; j > 0; j--);
}
}
void main()
{
uchar num;
uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; //共阴极数码管编码表
wela = 1; //打开U2锁存端
P0 = 0xc0;
wela = 0; //关闭U2锁存端
while(1)
{
for (num = 0; num < 16; num++)
{
dula = 1; //打开U1锁存端
P0 = table[num];
dula = 0; //关闭U1锁存端
sleep(500);
}
};
}
数码管的电路原理图看起来挺复杂,还有点亮原理略显晦涩,暂时未做深究。
待以后有需要的时候,再深入学习。
显示数字
书中P52例子
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit dula = P2 ^ 6; //U1锁存器的锁存端
sbit wela = P2 ^ 7; //U2锁存器的锁存端
//延时
void sleep(uint delay)
{
uint i, j;
for(i = delay; i > 0; i--)
{
for(j = 100; j > 0; j--);
}
}
void main()
{
uchar delay = 1;
uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; //共阴极数码管编码表
while(1)
{
dula = 1; //打开U1锁存端
P0 = table[1];
dula = 0; //关闭U1锁存端
P0 = 0xff; // 送位选数据前,关闭所有显示。
wela = 1; //打开U2锁存端
P0 = 0xfe; //送位选数据
wela = 0; //关闭U2锁存端
sleep(delay);
dula = 1; //打开U1锁存端
P0 = table[2];
dula = 0; //关闭U1锁存端
P0 = 0xff; // 送位选数据前,关闭所有显示。
wela = 1; //打开U2锁存端
P0 = 0xfd; //送位选数据
wela = 0; //关闭U2锁存端
sleep(delay);
dula = 1; //打开U1锁存端
P0 = table[3];
dula = 0; //关闭U1锁存端
P0 = 0xff; // 送位选数据前,关闭所有显示。
wela = 1; //打开U2锁存端
P0 = 0xfb; //送位选数据
wela = 0; //关闭U2锁存端
sleep(delay);
dula = 1; //打开U1锁存端
P0 = table[4];
dula = 0; //关闭U1锁存端
P0 = 0xff; // 送位选数据前,关闭所有显示。
wela = 1; //打开U2锁存端
P0 = 0xf7; //送位选数据
wela = 0; //关闭U2锁存端
sleep(delay);
dula = 1; //打开U1锁存端
P0 = table[5];
dula = 0; //关闭U1锁存端
P0 = 0xff; // 送位选数据前,关闭所有显示。
wela = 1; //打开U2锁存端
P0 = 0xef; //送位选数据
wela = 0; //关闭U2锁存端
sleep(delay);
dula = 1; //打开U1锁存端
P0 = table[6];
dula = 0; //关闭U1锁存端
P0 = 0xff; // 送位选数据前,关闭所有显示。
wela = 1; //打开U2锁存端
P0 = 0xdf; //送位选数据
wela = 0; //关闭U2锁存端
sleep(delay);
};
}
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 郭天祥51单片机开发教程学习(3)
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 郭天祥51单片机开发教程学习(3)