#ifndef jh_f330 #define jh_f330 #include #endif typedef unsigned char uint8; typedef unsigned int uint16; /*************端口配置**************/ sbit LCD_CS = P0^4; //片选信号,低电平有效 sbit LCD_RST = P0^3; //复位信号,低电平有效 sbit LCD_A0 = P0^2; //数据、指令选择,H:数据、L:指令 sbit LCD_DAT = P1^0; //串行输入数据引脚 sbit LCD_CLK = P1^1; //串行时钟输入引脚 uint8 code word1[]= { 0x04,0x44,0x84,0x04,0xE4,0x1F,0x84,0x44,0xA4,0x3F,0xA4,0xA4,0x64,0x06,0x04,0x00, 0x20,0x10,0x09,0x04,0xFF,0x04,0x04,0x14,0x26,0x05,0x84,0xFF,0x04,0x06,0x04,0x00 }; /**********预定义数据*********/ #define LCD_X 128-1 //屏幕的 X 轴的物理宽度 #define LCD_Y 64-1 //屏幕的 Y 轴的物理宽度 /***********LCD 指令集***************/ //LCD 开关命令 #define LCD_ON() Wr_Com(0xaf) #define LCD_OFF() Wr_Com(0xae) //设置显示起始行 #define LCD_START_LINE 0x40 //起始行地址为,0x40+(0-63) //页地址设置 #define LCD_Page 0xb0 //页地址为:0xb0+(0-8) //列地址设置 #define LCD_Ad_H 0x10 //列高四位地址:0x10+() #define LCD_Ad_L 0x00 //列低四位地址:0x00+() //行列地址方向设置 #define ADC_Norm() Wr_Com(0xa0); #define ADC_Reve() Wr_Com(0xa1); #define Com_Norm() Wr_Com(0xc0); #define Com_Reve() Wr_Com(0xc8); void Init_f330() { /*****内部振荡器配置******/ OSCICL=OSCICL+4; //设置系统时钟为24MHZ,ΔT=(0.005*ΔOSCICL)/fbase // OSCICL=OSCICL+22; //设置系统时钟为22.1184MHZ // OSCICL=OSCICL+45; //设置系统时钟为20MHZ //15MHZ--24.5MHZ /********设置分频*********/ // OSCICN|=0x00; //设置时钟为八分频,OSCIN 复位值为1100000 //00:8 分频,01:4 分频,10:2 分频,11:不分频 // OSCICN|=0x01; //设置系统时钟4 分频 // OSCICN|=0x02; //设置系统时钟2 分频 OSCICN|=0x03; //设置系统时钟不分频 // RSTSRC=0x04; // OSCLCN = 0x82; // 设置内部L-F 振荡器为40kHZ // CLKSEL = 0x02; // 内部低频振荡器 while(OSCLCN&0x40 == 0); // 等待振荡器频率稳定 /*****设置看门狗*****/ PCA0MD &=~0x40; /...