資源簡(jiǎn)介
本人寫(xiě)的基于FPGA的LCD1602顯示模塊。經(jīng)過(guò)本人測(cè)試,已經(jīng)用在項(xiàng)目中。

代碼片段和文件信息
/*******************************
FD178?Demo?Board?C?Program
AT89S52&LCD1602:?
1、Test?the?FAN?vibrate?speed?
??and?show?the?frequence?on?the?LCD.
2、Generate?different?PWM?signal?to
???get?different?speed. ??
晶振頻率采用12MHz
*********************************/
#include
#include
#include
#define?unchar?unsigned?char
#define?unint?unsigned?int
#define?ulong?unsigned?long
#define?Data??P0????//數(shù)據(jù)端口
sbit?RS?=?P2^4;//Pin4
sbit?RW?=?P2^5;?//Pin5
sbit?E??=?P2^6;//Pin6
sbit?PWM_Out=P2^7;?//?PWM?OUTPUT?SIGNAL
sbit?ADD_A=P2^0;
sbit?ADD_B=P2^1;
sbit?ADD_C=P2^2;
sbit?ALE??=P2^3;
sbit??ST=P3^0;
sbit??OE=P3^1;
sbit?CLK=P3^4;
sbit?EOC=P3^3;
/**************************************************************************/
sbit?IR=P3^2;//紅外接口標(biāo)志
unsigned?char??irtime;//紅外用全局變量
bit?irpro_okirok;?//?控制處理進(jìn)程
unsigned?char?IRcord[4];
unsigned?char???irdata[33];//一位引導(dǎo)碼,?2*8位用戶編碼,8位數(shù)據(jù)碼,8位數(shù)據(jù)反碼
/*************************************************************************/
bit?Ldelay=0;??//?計(jì)數(shù)器溢出時(shí)候Ldelay為1,用于計(jì)算轉(zhuǎn)動(dòng)頻率
unchar?data??PWM[16]???=“PWM:?00%SP:000Hz“;????????????//?LCD?第一行顯示的數(shù)據(jù)
unchar?data?F_speed[16]=“V:0.00;??mA:0000“;????????????//?LCD?第二行顯示的數(shù)據(jù)
unsigned?char?PWM_N;?
unsigned?int?FG;
void?Init_EX0(void)???//外部中斷0初始化,中斷輸入端口為P3.2
{
?IT0?=?1;???//?Configure?interrupt?0?for?falling?edge?on?/INT0?(P3.2)
?EX0?=?1;???//?Enable?EX0?Interrupt
?EA?=?1;??
}
void?Init_Timer0(void)?????????//定時(shí)器0初始化
{
??TMOD=0x02;//定時(shí)器0工作方式2,TH0是重裝值,TL0是初值
??TH0=0x00;//reload?value
??TL0=0x00;//initial?value
??ET0=1;//開(kāi)中斷
??TR0=1;
}
void?Init_Counter1(void)?????//計(jì)數(shù)器1初始化
{
?TMOD|=0x50;
?TH1=0x00;
?TL1=0x00;
?EA=1;
?ET1=1;
?TR1=1;
}
void?Init_Timer2()???????//定時(shí)器2初始化
{
?RCAP2H=0xFF;
?RCAP2L=0x00;
?EA=1;
?ET2=1;
?TR2=1;
}
unsigned?int?FGtest(void)????//計(jì)數(shù)的結(jié)果
{
?unsigned?int?n;
?n=((TH1<<8)|TL1);
?return?n;
}
/******************************************************************/
/*????????????????????1602?LCD?函數(shù)聲明???????????????????????????*/
/******************************************************************/
void?DelayUs(unsigned?char?us)//delay?us
{
?unsigned?char?uscnt;
?uscnt=us>>1;/*?Crystal?frequency?in?12MHz*/
?while(--uscnt);
}
void?DelayMs(unsigned?char?ms)//delay?Ms
{
?while(--ms)
???{
?????DelayUs(250);
?????DelayUs(250);
?DelayUs(250);
?DelayUs(250);
???}
}
void?WriteCommand(unsigned?char?c)
{
?DelayMs(5);//short?delay?before?operation
?E=0;
?RS=0;
?RW=0;
?_nop_();
?E=1;
?Data=c;
?E=0;
}
void?WriteData(unsigned?char?c)
{
?DelayMs(5);???//short?delay?before?operation
?E=0;
?RS=1;
?RW=0;
?_nop_();
?E=1;
?Data=c;
?E=0;
?RS=0;
}
void?ShowChar(unsigned?char?posunsigned?char?c)
{
?unsigned?char?p;
?if?(pos>=0x10)
????p=pos+0xb0;?//是第二行則命令代碼高4位為0xc
?else?
????p=pos+0x80;?//是第一行則命令代碼高4位為0x8
?WriteCommand?(p);//write?command
?WriteData?(c);???//write?data
}
void?ShowString?(unsigned?char?linechar?*pt
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????75903??2010-03-04?09:33??xilinx_lib\BLK_MEM_GEN_V3_3.v
?????文件????????320??2011-01-25?15:51??xilinx_lib\ROM.mif
?????文件???????4650??2011-01-25?15:51??xilinx_lib\ROM.v
?????文件????????228??2011-01-24?14:22??xilinx_lib\ROM_INIT.coe
?????文件???????4039??2011-01-23?13:59??doc\LCD1602.C
?????文件?????635577??2008-04-21?13:16??doc\lcd1602.pdf
?????文件?????377300??2011-01-18?21:13??doc\S6A0069.pdf
?????文件??????11199??2011-01-23?17:08??doc\Show.c
?????文件??????11199??2011-01-18?20:34??doc\Show.c.bak
?????文件?????219143??2011-01-18?22:10??doc\TM162.pdf
?????文件?????158717??2011-01-20?16:36??doc\TM162A.pdf
?????文件???????1436??2011-01-25?17:11??rom\rom.gise
?????文件??????50167??2011-01-25?17:11??rom\rom.ise
?????文件??????33228??2011-01-25?17:11??rom\rom.xise
?????文件???????7866??2011-01-26?09:38??rtl\CHECK_BUSY.v
?????文件???????5251??2011-01-26?09:38??rtl\DELAY_1MS.v
?????文件???????5244??2011-01-26?09:38??rtl\DELAY_1US.v
?????文件??????17445??2011-01-26?09:36??rtl\INIT.v
?????文件???????9596??2011-01-26?09:37??rtl\LCD_SHOW.v
?????文件???????9462??2011-01-26?09:37??rtl\READ_4B.v
?????文件???????7323??2011-01-26?09:37??rtl\READ_8B.v
?????文件???????9472??2011-01-26?09:36??rtl\WRITE_4B.v
?????文件??????10624??2011-01-26?09:37??rtl\WRITE_4B_CHECK.v
?????文件??????11383??2011-01-26?09:37??rtl\WRITE_8B.v
?????文件???????9431??2011-01-26?09:37??rtl\WRITE_CHAR.v
?????文件???????9756??2011-01-26?09:38??rtl\WRITE_STRING.v
?????文件???????1272??2011-01-24?16:12??testbench\harness.v
?????文件???????1145??2011-01-24?16:11??testbench\harness.v.bak
?????文件????????320??2011-01-25?15:51??testbench\sim\ROM.mif
?????文件?????????20??2011-01-11?15:23??testbench\sim\sim.bat
............此處省略16個(gè)文件信息
評(píng)論
共有 條評(píng)論