请教:STC32G12K128 操作 EMP240T100C5N 问题?
2023-4-7 14:08 来自 qlw_cq 发布 @ 综合讨论
STC32G12K128 操作 EMP240T100C5N 问题?
//==硬件定义==
sbit AD_BUSY =P3^3; //INT1中断输入 AD转换忙信号 0=转换结束 1=转换中
sbit E240_CS =P7^5; //CS片选
sbit E240_RS =P4^5; //RS数据/指令
sbit E240_RD =P4^4; //RD读
sbit E240_WR =P4^2; //WR写
//#define E240_BUS_H P2 //数据端口P0--0x80,P1=0x90,P2=0xA0,P3=0x0B0, P6= 0xE8
#define E240_BUS P0 //数据端口P0--0x80,P1=0x90,P2=0xA0,P3=0x0B0, P6= 0xE8 由于画板时疏忽,未能选STC推荐的P2、P6口
//--CS RS WR RD 定义CPLD操作地址 --------------------------
// 0 0 0 1 CPLD写命令: CS=0 RS=0 WR=0 RD=1
// 0 1 0 1 CPLD写数据: CS=0 RS=1 WR=0 RD=1
// 0 0 1 0 CPLD读状态: CS=0 RS=0 WR=1 RD=0
// 0 1 1 0 CPLD读数据: CS=0 RS=1 WR=1 RD=0
/*==============|===============|===============|===============
* 功 能:CPLD GPIO设置
//GPIO_PullUp PxM1 &= ~Px.n, PnM0 &= ~Px.n; //上拉准双向口
//GPIO_OUT_PP PxM1 &= ~Px.n, PnM0 |= Px.n; //推挽输出
//GPIO_HighZ PxM1 |= Px.n, PnM0 &= ~Px.n; //浮空输入
//GPIO_OUT_OD PxM1 |= Px.n, PnM0 |= Px.n; //开漏输出
================|===============|===============|=============*/
void Emp240Init(void) //初始化EPM240
{
// P0M1 &=~E240_BUS, P0M0 |= E240_BUS; //推挽输出
P0PU |= 0xff; //P0口开启内部上拉4.1K
// P0IE |= 0xff; //P0数字信号许可
// P0SR |= 0xff; //输出速度 1=慢
P3M1 |= AD_BUSY, P3M0 &=~AD_BUSY; //浮空输入 AD_BUSY
P3PU |= AD_BUSY; //P3^3(AD_BUSY) 开启内部上拉4.1K
// P4M1 &=~(E240_RS|E240_WR|E240_RD), P4M0 |=(E240_RS|E240_WR|E240_RD); //推挽输出
// P7M1 &=~E240_CS, P7M0 |= E240_CS; //推挽输出
P4PU |=(E240_RS|E240_WR|E240_RD); //P4口开启内部上拉4.1K
//==硬件定义==
sbit AD_BUSY =P3^3; //INT1中断输入 AD转换忙信号 0=转换结束 1=转换中
sbit E240_CS =P7^5; //CS片选
sbit E240_RS =P4^5; //RS数据/指令
sbit E240_RD =P4^4; //RD读
sbit E240_WR =P4^2; //WR写
//#define E240_BUS_H P2 //数据端口P0--0x80,P1=0x90,P2=0xA0,P3=0x0B0, P6= 0xE8
#define E240_BUS P0 //数据端口P0--0x80,P1=0x90,P2=0xA0,P3=0x0B0, P6= 0xE8 由于画板时疏忽,未能选STC推荐的P2、P6口
//--CS RS WR RD 定义CPLD操作地址 --------------------------
// 0 0 0 1 CPLD写命令: CS=0 RS=0 WR=0 RD=1
// 0 1 0 1 CPLD写数据: CS=0 RS=1 WR=0 RD=1
// 0 0 1 0 CPLD读状态: CS=0 RS=0 WR=1 RD=0
// 0 1 1 0 CPLD读数据: CS=0 RS=1 WR=1 RD=0
/*==============|===============|===============|===============
* 功 能:CPLD GPIO设置
//GPIO_PullUp PxM1 &= ~Px.n, PnM0 &= ~Px.n; //上拉准双向口
//GPIO_OUT_PP PxM1 &= ~Px.n, PnM0 |= Px.n; //推挽输出
//GPIO_HighZ PxM1 |= Px.n, PnM0 &= ~Px.n; //浮空输入
//GPIO_OUT_OD PxM1 |= Px.n, PnM0 |= Px.n; //开漏输出
================|===============|===============|=============*/
void Emp240Init(void) //初始化EPM240
{
// P0M1 &=~E240_BUS, P0M0 |= E240_BUS; //推挽输出
P0PU |= 0xff; //P0口开启内部上拉4.1K
// P0IE |= 0xff; //P0数字信号许可
// P0SR |= 0xff; //输出速度 1=慢
P3M1 |= AD_BUSY, P3M0 &=~AD_BUSY; //浮空输入 AD_BUSY
P3PU |= AD_BUSY; //P3^3(AD_BUSY) 开启内部上拉4.1K
// P4M1 &=~(E240_RS|E240_WR|E240_RD), P4M0 |=(E240_RS|E240_WR|E240_RD); //推挽输出
// P7M1 &=~E240_CS, P7M0 |= E240_CS; //推挽输出
P4PU |=(E240_RS|E240_WR|E240_RD); //P4口开启内部上拉4.1K
免责声明:
本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;
上一篇: 尝试做一块电路板,烧掉了。
下一篇: 浮点数如何取小数点后两位