技术热线: 4007-888-234
设计开发

专注差异化嵌入式产品解决方案 给智能产品定制注入灵魂给予生命

开发工具

提供开发工具、应用测试 完善的开发代码案例库分享

技术支持

从全面的产品导入到强大技术支援服务 全程贴心伴随服务,创造无限潜能!

新品推广

提供新的芯片及解决方案,提升客户产品竞争力

新闻中心

提供最新的单片机资讯,行业消息以及公司新闻动态

PIC16F877扩展6264的程序

更新时间: 2019-03-26
阅读量:2818

# include # define unch unsigned char # define unint unsigned int # define OE RE0 # define WR RE1 # define GS RE2 //373锁存器的片选端

//延时程序 void delay(void) { unint i; for(i = 0;i < 0xfff;i++) continue; } //RAM读程序 void read(unch *data,unint address,unch num) { unint addressl,addressh; unint i; for(i = 0;i < num;i++,data++) { addressh = address % 256; addressl = address / 256; TRISE = 0x00; //设置RE端为输出 TRISD = 0x00; TRISB = 0x00; GS = 1; //锁存器的使能端 PORTD = addressl; //D口设置为地址低8PORTB = addressh; //A口设置为地址高5asm("nop"); asm("nop"); GS = 0; WR = 1; OE = 0; TRISD = 0xFF; *data = PORTD; //读入数据 asm("nop"); asm("nop"); OE = 1; address = address + 1; } } //RAM写程序 void write(unch *data, unint address, unint num) { unint addressl,addressh; unint i; for(i = 0;i < num; i++,data++) { addressh = address % 256; addressl = address / 256; TRISE = 0x00; //设置RE口为输出 TRISD = 0x00; TRISB = 0x00; GS = 1; //锁存器的使能端 PORTD = addressl; //D口设置为地址低8PORTA = addressh; //A口设置为地址低5asm("nop"); asm("nop"); GS = 0; //锁存地址 WR = 0; PORTD = *data; asm("nop"); asm("nop"); WR = 1; address = address + 1; } }

main() { unch string[],str[5]={0x23,0x34,0x54,0x23,0x72}; write(str,0,5); TRISA = 0xFF; TRISB = 0xFF; TRISE = 0xFF; TRISD = 0xFF; read(string,0,5); while(1); }