?? sram_cpld3.c
字號:
/*mcu向通過fpga控制ram,寫入時候,給地址a0ff分兩次先后送如1和0,fpga向ram寫入一定數(shù)據(jù)
單片機從讀數(shù)據(jù)時候,先向a0fe送入ram讀取首地址,接著可以從此口讀出數(shù)據(jù)
//*7218在硬件譯碼的時候,低四位數(shù)據(jù)進行譯碼,最高位控制小數(shù)點,其余三位無效*/
// distab保存要顯示的8位數(shù)據(jù)(每一位為一個字節(jié))
// 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數(shù)據(jù)口地址
#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} ; // 要顯示的內(nèi)容 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中的數(shù)據(jù)送如7218
{
DisData =ledtab[distab[i]]; //查表轉(zhuǎn)化并將字型送入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);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -