📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 74HC595驱动16段数码管演示
//-----------------------------------------------------------------
// 说明: 本例运行时,8只集成式16段数码管在按键控制下依次显示几组英文与
// 数字字符串.案例中16段数码管段码表编码规则见程序内说明.
//
//-----------------------------------------------------------------
#include <pic.h>
#include <math.h>
#include <ctype.h>
#include <string.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 4000000UL
#define K1 RD7 //按键定义
//595引脚定义
#define SH_CP RB0 //移位时钟脉冲
#define DS RB1 //串行数据输入
#define OE RB2 //使能输出
#define ST_CP RB3 //输出锁存器控制脉冲
//本例编码按数码管各段字母顺序设计编码(先外框循环,后内部米字循环):
//A1 A2 B C D2 D1 E F H I J G2 K L M G1 DP(编码时注意逆向)
//16段共阳数码管段码表(本例用的是共阴数码管,输出时要取反)
const INT16U SEG_CODE16[] =
{ 0xEE00,0xFFF3,0x7788,0x77C0,0x7773,0x7744,0x7704,0xFFF0,0x7700,0x7740,//0-9
0x7730,0x7304,0xFF0C,0xDDC0,0x770C,0x773C,0xF704,0x7733,0xDDCC,0xDD9C,//A-J
0x6B3F,0xFF0F,0xFA33,0xEE33,0xFF00,0x7738,0xEF00,0x6738,0x6F4C,0xDDFC,//K-T
0xFF03,0xBB3F,0xAF33,0xAAFF,0xDAFF,0xBBCC //U-Z
};
//数码管扫描码
const INT8U scan_Code[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//待显示字符串
const char str_buffer[] = "DEMO 313abcdefghijKLMNOPQRSTUVWXYZ 0123456789";
//上次按键状态
INT8U pre_key_status = 1;
// 595并行输出宏定义(上升沿将数据送到输出锁存器)
#define Parallel_Output() {ST_CP = 0; NOP(); ST_CP = 1; NOP(); }
//------------------------------------------------------------------
// 获取字符的16位段码
//------------------------------------------------------------------
INT16U get_16_segcode(char c)
{
}
//-----------------------------------------------------------------
// 串行输入595子程序
//-----------------------------------------------------------------
void Serial_Input_595(INT8U dat)
{
}
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
void main()
{
INT8U i,j,len = strlen(str_buffer),n = ceil(len / 8.0);
INT16U sCode = 0x0000;
ADCON1 = 0x06; //RA端口设为数字端口
TRISD7 = 1; //按键输入引脚
TRISB = 0x00; //数码管输出端口(595输出)
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -