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

📄 tst.c

📁 菜鸟,详细NRF24E1运用,程序,电路
💻 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 + -