|
#include <stdint.h>
#include "LPC17xx.h"
#include "type.h"
#include "1754_IO.h"
#include "1754_LCD.h"
#define uchar unsigned char
#define uint unsigned int
#define uchar unsigned char
#define uint unsigned int
#define HT1622_CS_H (LPC_GPIO1 -> FIOSET = 1 << 18) //P1.18
#define HT1622_CS_L (LPC_GPIO1 -> FIOCLR = 1 << 18)
#define HT1622_RD_H (LPC_GPIO1 -> FIOSET = 1 << 19) //P1.19
#define HT1622_RD_L (LPC_GPIO1 -> FIOCLR = 1 << 19)
#define HT1622_WR_H (LPC_GPIO1 -> FIOSET = 1 << 20) //P1.20
#define HT1622_WR_L (LPC_GPIO1 -> FIOCLR = 1 << 20)
#define HT1622_DATA_H (LPC_GPIO1 -> FIOSET = 1 << 22) //P1.22
#define HT1622_DATA_L (LPC_GPIO1 -> FIOCLR = 1 << 22)
#define HT1622_IRQ (LPC_GPIO1 -> FIODIR |= 1 << 23; LPC_GPIO1 -> FIOPIN &= (1 << 23) ) //P1.23
//********** 命令模式 *******//
#define HT1622_SYS_DIS HT1622_COMMAND+0X00 //关闭系统振荡器和LCD偏置发生器
#define HT1622_SYS_EN HT1622_COMMAND+0X02 //打开系统振荡器
#define HT1622_LCD_OFF HT1622_COMMAND+0X04 //关闭 LCD
#define HT1622_LCD_ON HT1622_COMMAND+0X06 // 打开 LCD
#define HT1622_TIMER_DIS HT1622_COMMAND+0X08 //禁止时基输出
#define HT1622_WDT_DIS HT1622_COMMAND+0X0A //禁止 WDT 溢出标志输出
#define HT1622_TIMER_EN HT1622_COMMAND+0X0C //使能时基输出
#define HT1622_WDT_EN HT1622_COMMAND+0X0E //使能 WDT 溢出标志输出
#define HT1622_TONE_OFF HT1622_COMMAND+0X10 //关闭音频输出
#define HT1622_CLR_TIMER HT1622_COMMAND+0X1A //清零时基发生器内容
#define HT1622_CLR_WDT HT1622_COMMAND+0X1E //清零 WDT
#define HT1622_RC32K HT1622_COMMAND+0X30 //系统时钟源,片内RC振荡器
#define HT1622_EXT32K HT1622_COMMAND+0X38 //系统时钟源,外部时钟源
#define HT1622_TONE_4K HT1622_COMMAND+0X80 //音调频率 4KHz
#define HT1622_TONE_2K HT1622_COMMAND+0XC0 //音调频率 2KHz
#define HT1622_IRQ_DIS HT1622_COMMAND+0X100 //禁止 IRQ 输出
#define HT1622_IRQ_EN HT1622_COMMAND+0X110 //使能 IRQ 输出
#define HT1622_F1 HT1622_COMMAND+0X140 //时基/WDT 时钟输出 1Hz, WDT 溢出标志 每 4s
#define HT1622_F2 HT1622_COMMAND+0X142 //时基/WDT 时钟输出 2Hz, WDT 溢出标志 每 2s
#define HT1622_F4 HT1622_COMMAND+0X144 //时基/WDT 时钟输出 4Hz, WDT 溢出标志 每 1s
#define HT1622_TEST HT1622_COMMAND+0X1C0 //测试模式 用户不用
#define HT1622_NORMAL HT1622_COMMAND+0X1C6 //正常模式
/*********************************************************************************************************
** Function name: delay
** Descriptions: 软件延时 100us
*********************************************************************************************************/
void delay(uint t)
{
uint i,j;
for(i = 0;i < t;i++)
{
for(j = 0;j < 10;j++) ;
}
}
extern void Write_Bit_L(uint data, uchar cnt);
extern void Write_Bit_H(uint data, uchar cnt);
uchar a[22]={0xff,0xff,0xff,0x00,0xaa,0xff,0x55};
//////////////////////////////////////////////////////
//延时 us
void delayus(uchar us)
{
while(us--);
}
//延时 ms
void delayms(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<65;j++)
{
delayus(1);
}
}
//写入脉冲
void LCD_Clk(void)
{
delayus(10);
HT1622_WR_L;
delayus(10);
HT1622_WR_H;
delayus(10);
}
//写命令
void LCD_WRCMD(unsigned char dat)
{
unsigned char i;
HT1622_CS_L;
delayus(1);
HT1622_DATA_H;//命令模式码
LCD_Clk();
HT1622_DATA_L;
LCD_Clk();
HT1622_DATA_L;
LCD_Clk();
for(i=0;i<9;i++)//送命令
{
if(dat&0x80) {HT1622_DATA_H;}
else {HT1622_DATA_L;}
dat<<=1;
LCD_Clk();
}
delayus(1);
HT1622_CS_H;
}
//写数据
void LCD_WRDATA(unsigned char dat)
{
unsigned char i,j,temp;
for(i=0;i<2;i++)
{
temp=dat&0x0f;
for(j=0;j<4;j++)
{
if(temp&0x01) {HT1622_DATA_H;}
else {HT1622_DATA_L;}
temp>>=1;
LCD_Clk();
}
dat>>=4;
}
}
//LCD显示
void LCD_DISP(void)
{
uchar i,lcdtemp;
HT1622_CS_L;
delayus(1);
HT1622_DATA_H;
LCD_Clk();
HT1622_DATA_L;
LCD_Clk();
HT1622_DATA_H;
LCD_Clk();
for(i=0;i<6;i++)
{
HT1622_DATA_L;
LCD_Clk();
}
for(i=0;i<10;i++)
{
lcdtemp=0x00;
LCD_WRDATA(lcdtemp);
}
delayus(1);
HT1622_CS_H;
}
///TES0**********
/////////////////////////////////////////////////////
int main(void)
{
unsigned char i;
SystemInit();
GPIO_Init(); //初始化GPIO
// HT1622_Init();
LCD_WRCMD(0x30);
LCD_WRCMD(0x00);
LCD_WRCMD(0x0a);
LCD_WRCMD(0x02);
LCD_WRCMD(0x06);
delayms(1000);
while(1)
{
LCD_DISP();
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|