• 大小: 1.22MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-29
  • 语言: 其他
  • 标签: LCD1602  Verilog  

资源简介

本人写的基于FPGA的LCD1602显示模块。经过本人测试,已经用在项目中。

资源截图

代码片段和文件信息

/*******************************
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    //数据端口
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;//红外接口标志
unsigned char  irtime;//红外用全局变量

bit irpro_okirok; // 控制处理进程
unsigned char IRcord[4];
unsigned char   irdata[33];//一位引导码, 2*8位用户编码,8位数据码,8位数据反码
/*************************************************************************/
bit Ldelay=0;  // 计数器溢出时候Ldelay为1,用于计算转动频率
unchar data  PWM[16]   =“PWM: 00%SP:000Hz“;            // LCD 第一行显示的数据
unchar data F_speed[16]=“V:0.00;  mA:0000“;            // LCD 第二行显示的数据
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)         //定时器0初始化
{
  TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值
  TH0=0x00;//reload value
  TL0=0x00;//initial value
  ET0=1;//开中断
  TR0=1;
}

void Init_Counter1(void)     //计数器1初始化
{
 TMOD|=0x50;
 TH1=0x00;
 TL1=0x00;
 EA=1;
 ET1=1;
 TR1=1;
}


void Init_Timer2()       //定时器2初始化
{
 RCAP2H=0xFF;
 RCAP2L=0x00;
 EA=1;
 ET2=1;
 TR2=1;
}

unsigned int FGtest(void)    //计数的结果
{
 unsigned int n;
 n=((TH1<<8)|TL1);
 return n;
}





/******************************************************************/
/*                    1602 LCD 函数声明                           */
/******************************************************************/
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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      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个文件信息

评论

共有 条评论