LPC2148的ADC多通道数据采集程序PCB抄板
- PCB抄板#include "config.h"
- PCB抄板#include "stdio.h"
- PCB抄板#define GPIOSET(PIN) IO0SET = PIN // 方便修改置位端口
- PCB抄板#define GPIOCLR(PIN) IO0CLR = PIN // 方便修改清位端口
- #define LCD_CON 0x00000250 // 液晶显示控制字
- #define E_CLK (1<<4) //clock input 同步时钟输入端 P0.4
- const uint32 RW_SID= (1<<6); //data input/output 串行数据输入、输出端 P0.6
- const uint32 CS = (1<<9); //P0.9
- unsigned char IC_DAT1[] = "多通道数据采集系统";
- /*************************************************************
- * 名称:delay()
- * 功能:延时程序
- **************************************************************/
- void delay(uint32 dly)
- {
- uint32 i;
-
- for ( ; dly>0; dly--)
- for (i=0; i<10; i++);
- }
-
- /******************************************************************
- * 名称:SeddByte()
- * 功能:发送1字节数据
- *******************************************************************/
- void SendByte(uint8 data)
- {
- uint8 i;
- IO0SET=CS;
- for(i=0;i<8;i++)
- {
- IO0CLR=E_CLK ;delay(5);
- if(data&0x80)
- {
- IO0SET=RW_SID;delay(5);
- }
- else IO0CLR=RW_SID;
- {
- IO0SET=E_CLK;delay(5);
- }
- data=data<<1;
- }
- IO0CLR=CS;
- }
-
- /******************************************************************
- * 名称:ReceieveByte()
- * 功能:接收1字节数据
- *******************************************************************/
- unsigned char ReceieveByte(void)
- {
- uint8 i,d1,d2;
- for(i=0;i<8;i++)
- {
- IO0CLR=E_CLK;delay(5);
- IO0SET=E_CLK;delay(5);
- if(RW_SID)d1++;
- d1=d1<<1;
- }
- for(i=0;i<8;i++)
- {
- IO0CLR=E_CLK;delay(5);
- IO0SET=E_CLK;delay(5);
- if(RW_SID)d2++;
- d2=d2<<1;
- }
- return (d1&0xF0+d2&0x0F);
- }
-
- /***************************************************************
- * 名称:SendCMD()
- * 功能:向LCD12864发送命令
- ****************************************************************/
- void SendCMD(uint8 data)
- {
- SendByte(0xF8);
- SendByte(data&0xF0);
- SendByte((data&0x0F)<<4);
- }
-
- /*************************************************************
- * 名称:SendData()
- * 功能:向LCD12864发送数据
- **************************************************************/
- void SendData(uint8 data)
- {
- SendByte(0xFA);
- SendByte(data&0xF0);
- SendByte((data&0x0F)<<4);
- }
-
- /****************************************************************
- * 名称:lcd_mesg()
- * 功能:在LCD12864上显示汉字
- *****************************************************************/
-
- void lcd_mesg(uint8 x_add, unsigned char * word)
- {
- SendCMD(x_add);
- while(*word)
- {
- SendData(*(word++));
- }
- }
- /*************************************************************
- * 名称:initinal()
- * 功能:LCD12864字库初始化
- **************************************************************/
-
- void initlcm(void)
- {
- delay(200);
- SendCMD(0x30); //功能设置,一次送8位数据,基本指令集
- SendCMD(0x0C); //0000,1100 整体显示,游标off,游标位置off
- SendCMD(0x01); //0000,0001 清DDRAM
- SendCMD(0x02); //0000,0010 DDRAM地址归位
- SendCMD(0x80); //1000,0000 设定DDRAM 7位地址000,0000到地址计数器AC
- }

芯片解密