⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8255.c~

📁 使用OKI公司8255A控制62256RAM程序,并使用8803液晶显示
💻 C~
字号:
#include <mega16.h>
#include <delay.h>

#define WR      PORTA.0
#define WR_en   DDRA.0
#define RD      PORTA.1
#define RD_en   DDRA.1
#define CS      PORTB.3
#define CS_en   DDRB.3
#define A0      PORTA.2
#define A0_en   DDRA.2 
#define A1      PORTA.3
#define A1_en   DDRA.3
#define BUS_out PORTC
#define BUS_in  PINC
#define BUS_en  DDRC

void reset8255(unsigned char state)
{
 BUS_en=0xff;A1_en=1;A0_en=1;CS_en=1;RD_en=1;WR_en=1;
 
 CS=0;          //片选上
 A1=1;          A0=1;//写入寄存器
 WR=0;
 RD=1;
 BUS_out=state;
 WR=1;
 CS=1;
 BUS_en=0x00;
 } 
 
void send8255(unsigned char data,unsigned char direct) 
{
 BUS_en=0xff;
 CS=0;
 switch(direct)
 {
  case 0: A1=0;A0=0;break;
  case 1: A1=0;A0=1;break;
  case 2: A1=1;A0=0;break;
  case 3: A1=1;A0=1;break;
  } 
 WR=0;
 RD=1;
 BUS_out=data;
 WR=1;
 CS=1;  
 }
 
void send_a(unsigned char data)
{
 BUS_en=0xff; 
 CS=0;
 A1=0;A0=0; 
 WR=0;
 RD=1;
 BUS_out=data;
 
 WR=1;
 CS=1;
 BUS_en=0x00;
 }
 
void send_b(unsigned char data)
{
 BUS_en=0xff;
 CS=0;
 A1=0;A0=1;
 WR=0;
 RD=1;
 BUS_out=data;
 WR=1;
 CS=1;
 BUS_en=0x00;
 }
  
void send_c(unsigned char data)
{
 BUS_en=0xff;
 CS=0;
 A1=1;A0=0; 
 WR=0;
 RD=1;
 BUS_out=data;
 WR=1;
 CS=1;
 BUS_en=0x00;
 } 
  
void send_r(unsigned char data)
{
 BUS_en=0xff;
 CS=0;
 A1=1;A0=1;
 WR=0;
 RD=1;
 BUS_out=data;
 WR=1;
 CS=1;
 BUS_en=0x00;
 }    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -