标题:
8x16LED点阵屏显示数字 Proteus仿真+单片机程序
[打印本页]
作者:
PAWN315
时间:
2019-7-24 09:17
标题:
8x16LED点阵屏显示数字 Proteus仿真+单片机程序
话不多说直接上文件
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载).
0.png
(12.98 KB, 下载次数: 71)
下载附件
2019-7-24 13:52 上传
单片机源程序如下:
//74HC595练习程序
//串入并出实现16流水灯效果
//2009.12.28
#include"reg52.h"
#include"intrins.h"
#define u8 unsigned char
#define u16 unsigned int
sbit SCK=P2^0; //数据在上升沿进入移位寄存器
sbit SER=P2^1; //串行数据输入端
sbit RCK=P2^2; //上升沿时将数据输出到并行端口
sbit gA=P0^0;
sbit gB=P0^1;
sbit gC=P0^2;
sbit gD=P0^3;
void DigDisplay(unsigned char n);
u8 zi1[]={0x00,0x70,0x88,0x04,0x04,0x04,0x98,0x00,0x00,0x10,0x10,0x11,0x11,0x11,0x1F,0x00};
void send_data(u8 dat0)//,u8 dat1,u8 dat2,u8 dat3) //发送数据
{
u8 i = 0, j = 0;
SCK = 0; // 将SCK置为初始状态
RCK = 0; // 将RCK置为初始状态
for (i=0; i<8; i++)
{
SER = dat0 & (0x01);
dat0 >>= 1;
SCK = 0;
_nop_();
_nop_();
_nop_();
SCK = 1;
}
// for (i=0; i<8; i++)
// {
//
// SER = dat1 & (0x01);
// dat1 >>= 1;
// SCK = 0;
// _nop_();
// _nop_();
// _nop_();
// SCK = 1;
//
// }
// for (i=0; i<8; i++)
// {
// SER = dat2 & (0x01);
// dat2 >>= 1;
// SCK = 0;
// _nop_();
// _nop_();
// _nop_();
// SCK = 1;
//
// }
// for (i=0; i<8; i++)
// {
//
// SER = dat3 & (0x01);
// dat3 >>= 1;
// SCK = 0;
// _nop_();
// _nop_();
// _nop_();
// SCK = 1;
//
// }
RCK = 0;
_nop_();
_nop_();
_nop_();
RCK = 1;
RCK=0;
SCK=0;
SER=0;
}
void main()
{
u8 k=0;
while(1)
{
for(k=0;k<16;k++)
{
DigDisplay(k);
send_data(zi1[k]);//,zi2[k],zi3[k],zi4[k]);
send_data(0x00);
}
}
}
void DigDisplay(u8 n)
{
switch (n) //位选,选择点亮哪个数码管
{
case 0:
gA = 1; gB = 1; gC = 1,gD=1;
break; //显示第0位
case 1:
gA = 0; gB = 1; gC = 1,gD=1;
break; //显示第1位
case 2:
gA = 1; gB = 0; gC = 1,gD=1;
break; //显示第2位
case 3:
gA = 0; gB = 0; gC = 1,gD=1;
break; //显示第3位
case 4:
gA = 1; gB = 1; gC = 0,gD=1;
break; //显示第4位
case 5:
gA = 0; gB = 1; gC = 0,gD=1;
break; //显示第5位
case 6:
gA = 1; gB = 0; gC = 0,gD=1;
break; //显示第6位
case 7:
gA = 0; gB = 0; gC = 0,gD=1;
break; //显示第7位
case 8:
gA = 1; gB = 1; gC = 1,gD=0;
break; //显示第0位
case 9:
gA = 0; gB = 1; gC = 1,gD=0;
break; //显示第1位
case 10:
gA = 1; gB = 0; gC = 1,gD=0;
break; //显示第2位
case 11:
gA = 0; gB = 0; gC = 1,gD=0;
break; //显示第3位
case 12:
gA = 1; gB = 1; gC = 0,gD=0;
break; //显示第4位
case 13:
gA = 0; gB = 1; gC = 0,gD=0;
break; //显示第5位
case 14:
gA = 1; gB = 0; gC = 0,gD=0;
break; //显示第6位
case 15:
gA = 0; gB = 0; gC = 0,gD=0;
break; //显示第7位
default:
break;
}
}
复制代码
所有资料51hei提供下载:
级联.zip
(108.39 KB, 下载次数: 45)
2019-7-24 09:12 上传
点击文件名下载附件
仿真及代码
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1