📄 固定八字显示模拟串口.c
字号:
/*点阵显示汉字程串口输出字符数据,P2口输出行扫描信号,P0_0输出595锁存信号。
由于595接在LED阴极所以取模时要反白处理*/
#include<reg51.h>
sbit P2_7=P2^7;//定义控制端口
unsigned char code hanzi[8][32]={ //二维数据
/*-- /*-- 文字: 新 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xF7,0x8F,0xEF,0xF1,0x01,0xFD,0xBB,0xFD,0xD7,0x81,0x00,0xED,0xEF,0xED,0xEF,
0xED,0x00,0xED,0xEF,0xED,0xCB,0xEE,0xAB,0xEE,0xAD,0xEF,0x6E,0xEF,0xAB,0xEF,0xF7,
/*-- 文字: 年 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xEF,0xC0,0x0F,0xFE,0xF7,0xFE,0xF7,0xFE,0xFB,0xE0,0x0D,0xFE,0xEE,0xFE,0xEF,
0xFE,0xEF,0xFE,0xEF,0x80,0x00,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,
/*-- 文字: 普 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xF3,0xCF,0xF9,0x9F,0xC0,0x01,0xC0,0x01,0xEC,0x9B,0xE4,0x93,0x80,0x00,0x80,0x00,
0xFF,0xFF,0xE0,0x07,0xE7,0xE7,0xE0,0x07,0xE7,0xE7,0xE0,0x07,0xE7,0xE7,0xFF,0xFF,
/*-- 文字: 乐 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xF0,0xFF,0xE0,0x03,0xFF,0x83,0xFF,0xF3,0xFE,0x73,0xFE,0x79,0xE0,0x01,0xE0,0x01,
0xFE,0x7F,0xFA,0x6F,0xF2,0x67,0xE6,0x73,0xCE,0x79,0xDE,0x1F,0xFF,0x3F,0xFF,0xFF,
/*-- /*-- 文字: 新 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xF7,0x8F,0xEF,0xF1,0x01,0xFD,0xBB,0xFD,0xD7,0x81,0x00,0xED,0xEF,0xED,0xEF,
0xED,0x00,0xED,0xEF,0xED,0xCB,0xEE,0xAB,0xEE,0xAD,0xEF,0x6E,0xEF,0xAB,0xEF,0xF7,
/*-- 文字: 年 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xEF,0xC0,0x0F,0xFE,0xF7,0xFE,0xF7,0xFE,0xFB,0xE0,0x0D,0xFE,0xEE,0xFE,0xEF,
0xFE,0xEF,0xFE,0xEF,0x80,0x00,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,
/*-- 文字: 普 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xF3,0xCF,0xF9,0x9F,0xC0,0x01,0xC0,0x01,0xEC,0x9B,0xE4,0x93,0x80,0x00,0x80,0x00,
0xFF,0xFF,0xE0,0x07,0xE7,0xE7,0xE0,0x07,0xE7,0xE7,0xE0,0x07,0xE7,0xE7,0xFF,0xFF,
/*-- 文字: 乐 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xF0,0xFF,0xE0,0x03,0xFF,0x83,0xFF,0xF3,0xFE,0x73,0xFE,0x79,0xE0,0x01,0xE0,0x01,
0xFE,0x7F,0xFA,0x6F,0xF2,0x67,0xE6,0x73,0xCE,0x79,0xDE,0x1F,0xFF,0x3F,0xFF,0xFF,
};
unsigned char code sw[16]={0xe0,0xe2,0xe4,0xe6,0xe8,
0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe}; /*16行段码*/
//********C51端口模拟串口程序***************
/*****端口定义****************/
sbit skl=P1^0; //数据口
sbit lck=P1^1; //时钟口
/**************************/
/********C51端口模拟串口程序***************
函 数 名:TXD_data()
功 能:串口发送一字节
入口参数:d 写入的数据
返 回 值:无
***********************************************************************/
void delay(unsigned char i)
{
while(--i);
}
void TXD_data(unsigned char d)
{
unsigned char h=8;
while(1)
{
skl= 0x01&d; //取出第零位数
lck=1; //发送时钟信号
lck=0;
d =d>>1; //右移一位
if(--h==0) break;
}
}
unsigned char e;
void delay(); /*延时*/
void out_rxd(unsigned char *d); /*串口发送*/
/*主函数*/
void main()
{
unsigned char i; //i是从字模数组里向后取数据时的计数器,用以改变显示文字的内容.
SCON=0;//初始化串口为工作方式0(同步通信方式,TxD输出同步脉冲
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -