⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 51

📁 51单片机应用系统典型模块开发大全
💻
字号:
#include <reg51.h>           //头文件
#define uchar unsigned char
#define uint  unsigned int
sbit sh_cp=P3^0;             //595时钟端
sbit ds=P3^1;                //595数据端
sbit st_cp=P3^2;             //595锁存端

uchar tab[]={  //取码方式 阴码 逆向 逐列 16×16 十六进制
0x00,0x20,0x00,0x22,0x7f,0xec,0x20,0x00,0x10,0x20,0x00,0x22,0xff,0xaa,0x0a,0xaa,
0x0a,0xaa,0x0a,0xbf,0x4a,0xaa,0x8a,0xaa,0x7f,0xeb,0x00,0xa2,0x00,0x20,0x00,0x00,//请
};
void send(uchar dat595);     //595发送8位扫描段码子程序
void delay(uint n);          //延时子程序
void disp(void);             //显示子程序

main()                       //主程序
{
	while(1)
	{
		disp();              //只是显示
	}
}
void send(uchar dat595)      //595发送8位扫描段码子程序
{
	uchar dat=dat595;        //把要发送的数据给dat
	uint i;
	for(i=0;i<8;i++)         //8位发送循环
	{
		dat<<=1;             //数据左移一位至CY  即先发送高位
		ds=CY;               //数据送至595的数据端
		sh_cp=0;             //时钟产生高电平
		sh_cp=1;             //
	}
}

void delay(uint n)           //延时子程序 
{
	uint i,j;
	for(i=0;i<n;i++)
		for(j=0;j<100;j++);
}


void disp(void)
{
	uchar i,row=0x08;         //74138的编码初值08 第一行有效
	for(i=0;i<16;i++)         //16行循环有效
	{
		st_cp=0;              //595锁存端无效
		send(tab[2*i]);       //上半屏
		send(tab[2*i+1]);     //下半屏
		P1=row;               //对应行输出
		row++;                //行号加1
		st_cp=1;              //595锁存数据
		delay(1);             //延时后刷屏
	}	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -