📄 tst.c
字号:
/*****************************************
/ nRF24LE1驱动12864液晶显示程序
*****************************************/
#include "reg24le1.h"
#include "intrins.h"
/*****************************************/
sbit CS =P0^2;
sbit E_CLK =P0^1;
sbit RW_SID =P0^0;
/*****************************************/
#define Enableint do{EA=1;}while(0)
#define Disableint do{EA=1;}while(0)
/*****************************************/
typedef enum YON{false,true}bool;
/*****************************************/
typedef unsigned char uchar;
typedef unsigned int uint ;
/*****************************************/
uchar code tab[]={
"这是一个液晶测试"
"小江编写,仅供简"
"程序,由南华大学"
"当测试,谢谢支持"
};
/***************************************
/
/nRF24LE1的I/O口初始化
/
***************************************/
void IOCNFG()
{
P0DIR&=0XF0; /*设置P0.0~P0.3为输出*/
}
/***************************************
/
/nRF24LE1工作时钟设置
/
***************************************/
void WorkClkSet()
{
CLKCTRL = 0x28;
CLKLFCTRL = 0x01;
}
/*****************************************
/
/延时函数
/
*****************************************/
void delay(uint n)
{
uint i;
for(i=0; i<n; i++);
}
/*****************************************
/
/串行发送一字节数据
/
******************************************/
void SendByte(uchar dat)
{
unsigned char i;
CS=1;
for(i=0;i<8;i++)
{
E_CLK=0;
if(dat&0x80)
{
RW_SID=1;
}
else
{
RW_SID=0;
}
_nop_();
_nop_();
E_CLK=1;
dat=dat<<1;
_nop_();
_nop_();
}
CS=0;
}
/*****************************************
/
/写控制命令
/
******************************************/
void SendCMD(uchar dat)
{
SendByte(0xF8);
SendByte(dat&0xF0);
SendByte((dat&0x0F)<<4);
}
/*****************************************
/
/发送一个数据
/
******************************************/
void SendDat(uchar dat)
{
SendByte(0xFA);
SendByte(dat&0xF0);
SendByte((dat&0x0F)<<4);
}
/*****************************************
/
/LCD初始化函数
/
******************************************/
void initlcm(void)
{
delay(100);
SendCMD(0x30);/*功能设置,一次送8位数据,基本指令集 */
SendCMD(0x0C);/* 开显示 */
SendCMD(0x01);/* 清DDRAM */
SendCMD(0x02);/* DDRAM地址归位 */
SendCMD(0x80);/* 设定DDRAM */
delay(100);
}
/******************************************
/
/显示汉字或字符
/
*******************************************/
void chn_disp (uchar code *chn)
{
uchar i,j;
SendCMD(0x80);
for (j=0;j<4;j++)
{
for (i=0;i<16;i++)
{
SendDat(chn[j*16+i]);
}
}
}
/******************************************
/
/主函数部分
/
*******************************************/
void main(void)
{
WorkClkSet();
IOCNFG();
initlcm(); /*12864初始化程序 */
while(1)
{
chn_disp(tab);
delay(1000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -