📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 74HC595驱动14段数码管演示
//-----------------------------------------------------------------
// 说明: 本例运行时,8只集成式14段数码管在按键控制下依次显示几组英文与
// 数字字符串.案例中14段数码管段码表编码规则见程序内说明.
//
//-----------------------------------------------------------------
#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 //输出锁存器控制脉冲
//本例编码按数码管各段字母顺序设计编码(先外框循环,后内部米字循环):
//A B C D E F H I J G2 K L M G1 DP(编码时注意逆向)
//14段共阳数码管段码表(本例用的是共阴数码管,输出时要取反)
const INT16U SEG_CODE14[] =
{ 0xFB80,0xFFF9,0xDDE4,0xDDF0,0xDDD9,0xDDD2,0xDDC2,0xFFF8,0xDDC0,0xDDD0,//0-9
0xDDC8,0xDCC2,0xFFC6,0xF770,0xDFC6,0xDFCE,0xFDC2,0xDDC9,0xF776,0xEF6E,//A-J
0xDACF,0xFFC7,0xFE89,0xFB89,0xFFC0,0xDDCC,0xFBC0,0xD9CC,0xDBD6,0xF77E,//K-T
0xFFC1,0xEECF,0xEBC9,0xEABF,0xF6BF,0xEEF6 //U-Z
};
//数码管扫描码
const INT8U scan_Code[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//待显示字符串
const char str_buffer[] = "DEMO 509abcdefghijKLMNOPQRSTUVWXYZ 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 + -