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

📄 sram_cpld3.c

📁 单片机与cpld总线方式通信
💻 C
字号:
/*mcu向通过fpga控制ram,写入时候,给地址a0ff分两次先后送如1和0,fpga向ram写入一定数据
单片机从读数据时候,先向a0fe送入ram读取首地址,接着可以从此口读出数据 
//*7218在硬件译码的时候,低四位数据进行译码,最高位控制小数点,其余三位无效*/
// distab保存要显示的8位数据(每一位为一个字节)
// ledtab为7218软件译码字型表 /dp,a,b,c,e,g,f,d
#include<reg52.h>
//#include<intrins.h>
#include<absacc.h>
#define DisCmd XBYTE [0xC100]                     //7218控制字地址
#define DisData XBYTE [0xC000]                    //7218数据口地址
#define scode 0xb0                                //7218软件译码方式命令字
#define bcode 0x90                                //B码译码方式命令字
#define hexcode 0xd0                              //软件译码方式命令字
#define unchar  unsigned char 
#define unint  unsigned int
sbit P3_0=P3^0;
sbit P1_0=P1^0;
bit  enter=0;
unchar keynum;                                       //按键号 
unchar ledcursor=7;                                  //保存光标当前位置
unchar distab[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10} ; // 要显示的内容 hello-pp
unchar temp[8];
unchar code ledtab[]={ 0xfb,0xb0,0xed,0xf5,0xb6,0xd7,0xdf,0xf0,
                     //0,  1,   2,   3,   4,   5,   6,  7 
                     0xff,0xf7,0xfe,0x9f,0xcb,0xbd,0xcf,0xce,
                     //8    9   ,a   ,b    c    d    e    f  
                     0x80,0xbe,0x8b,0xee,0x84,0xca,0xf6,0x00, 
                    //灭   H    L    P    -   r     q    .
					 0xb7,0xbb,0xfa};
					//y,   u   n
unchar xdata * cpld;                                           // ram读取首地址
//***************************************************************************************    
 //void KeyprgF1(void){}
// void KeyprgF2(void ){}
 //void KeyprgClear(void){}
 //void KeyprgEnter(void){} 
 //***************************************************************************************  
        
void display()
{
   unchar i;   
   DisCmd=scode;             //采用软件译码
   for(i=0;i<8;i++)         //将distab中的数据送如7218
   {
     DisData =ledtab[distab[i]]; //查表转化并将字型送入7218
	
   }
   
}
void main()
{  
   unint i;
   //EX0=1;
   //EA=1;
  // display();
   while(1)
{
    i=30000;
    cpld=0x4000;
    distab[2]=(*cpld)/100;
    distab[1]=((*cpld)%100)/10;
    distab[0]=((*cpld)%100)%10;
    display();
    while(--i);
}
  
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -