完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
unsigned char SPI_SPIF=0;//传输标志位 short int hc;//缓存 /*************************************************/ ***it E=P0^2; ***it RS=P0^0; ***it RW=P0^1; ***it RST=P1^3; unsigned char xssj[3]; void ys(unsigned int yssj); void mjc()//忙不忙啊大哥 这个是属于读数据使用需要看时图 { char jc; P2=0xff; E=0;//使能 RS=0;//高电平是对数据进行操作,低电平时为命令操作 RW=1;//读写控制 E=1; jc=P2^7; while(jc==0) jc=P2^7; //P2^7为0时 跳出 } void xsj(unsigned char sj)//写数据 { mjc(); E=0; RS=1; RW=0; E=1; P2=sj; ys(500); E=0; } void xzr(unsigned char zr)//写指令 { mjc(); E=0; RS=0; RW=0; E=1; P2=zr; ys(500); E=0; } void csh128()//初始化128 { ys(1000); xzr(0x30);//初始一使用什么指令,是什么8io口还是4io口; ys(500); xzr(0x0c);//初始二怎么显示(开启显示,光标什么样子) ys(100); xzr(0x01);//初始三清屏,因为上次显示数据是存储在液晶里面的 ys(1000); xzr(0x06);//初始四显示方向,从什么方向开始显示,******总结就是1用什么指令 2开启屏幕 3清屏 4这次怎么显示 ys(500); } /*************************************************/ void cshdk()//初始化io { P0M1 = 0; P0M0 = 0; P1M1 = 0; P1M0 =0; P2M1 = 0; P2M0 =0; } void cshSPI()//初始化SPI { SPDAT=0;//消除数据寄存器的数据 SPSTAT=0xc0;//清除状态 SPCTL=0Xd7;//设置主机和从机模式 设置时钟 } void ys(unsigned int yssj) { int cfbl; for(;yssj>0;yssj--) for(cfbl=0;cfbl<115;cfbl++); } /*void kqzd()//开启SPI中断 { EA=1; ESPI=1; //while(!(SPSTAT & 0x80)); //hc=SPDAT; } void SPIzd(void) interrupt 9//SPI中断,传输完成后取数据 { ys(10); SPSTAT |= 0xC0;// hc=SPDAT;//获取数据 ys(100); SPDAT=0x0000; }*/ void xrsj(signed int sj)//交换数据 { P12=0; SPDAT=sj; while(!(SPSTAT & 0x80)); SPSTAT |= 0xC0; P12=1; ys(100); hc=SPDAT; } void main() { //kqzd(); /***************************************/ cshdk(); csh128(); ys(500); xzr(0x80); /***************************************/ cshdk(); cshSPI(); xrsj(0xd5e3); while(1) { ys(1000); xrsj(0x0000); /**********************************/ //hc=0x0002;//显示测试没问题 xssj[0]=(hc&0x00ff)+'0'; xssj[1]=(hc>>8)+'0'; xsj(xssj[0]); ys(500); xsj(xssj[1]); while(1) ; /**********************************/ } } |
|
相关推荐
3个回答
|
|
|
|
|
|
好洋气哟
|
|
|
|
本帖最后由 初学小弟 于 2016-4-12 12:23 编辑
#include unsigned char SPI_SPIF=0;//传输标志位 short int hc;//缓存 /*************************************************/ ***it E=P0^2; ***it RS=P0^0; ***it RW=P0^1; ***it RST=P1^3; unsigned char xssj[3]; void ys(unsigned int yssj); void mjc()//忙不忙啊大哥 这个是属于读数据使用需要看时图 { char jc; P2=0xff; E=0;//使能 RS=0;//高电平是对数据进行操作,低电平时为命令操作 RW=1;//读写控制 E=1; jc=P2^7; while(jc==0) jc=P2^7; //P2^7为0时 跳出 } void xsj(unsigned char sj)//写数据 { mjc(); E=0; RS=1; RW=0; E=1; P2=sj; ys(500); E=0; } void xzr(unsigned char zr)//写指令 { mjc(); E=0; RS=0; RW=0; E=1; P2=zr; ys(500); E=0; } void csh128()//初始化128 { ys(1000); xzr(0x30);//初始一使用什么指令,是什么8io口还是4io口; ys(500); xzr(0x0c);//初始二怎么显示(开启显示,光标什么样子) ys(100); xzr(0x01);//初始三清屏,因为上次显示数据是存储在液晶里面的 ys(1000); xzr(0x06);//初始四显示方向,从什么方向开始显示,******总结就是1用什么指令 2开启屏幕 3清屏 4这次怎么显示 ys(500); } /*************************************************/ void cshdk()//初始化io { P0M1 = 0; P0M0 = 0; P1M1 = 0; P1M0 =0; P2M1 = 0; P2M0 =0; } void cshSPI()//初始化SPI { SPDAT=0;//消除数据寄存器的数据 SPSTAT=0xc0;//清除状态 SPCTL=0Xd7;//设置主机和从机模式 设置时钟 } void ys(unsigned int yssj) { int cfbl; for(;yssj>0;yssj--) for(cfbl=0;cfbl<115;cfbl++); } /*void kqzd()//开启SPI中断 { EA=1; ESPI=1; //while(!(SPSTAT & 0x80)); //hc=SPDAT; } void SPIzd(void) interrupt 9//SPI中断,传输完成后取数据 { ys(10); SPSTAT |= 0xC0;// hc=SPDAT;//获取数据 ys(100); SPDAT=0x0000; }*/ void xrsj(signed int sj)//交换数据 { P12=0; ys(500); SPDAT=(sj>>8); while(!(SPSTAT & 0x80)); SPSTAT |= 0xC0; ys(500); hc=SPDAT; ys(500); SPDAT=(sj&0xff); while(!(SPSTAT & 0x80)); SPSTAT |= 0xC0; ys(500); hc=(SPDAT<<8)|SPDAT; P12=1; } void main() { //kqzd(); /***************************************/ cshdk(); csh128(); ys(500); xzr(0x80); /***************************************/ P12=1; cshSPI(); xrsj(0xd5e3); P12=1; while(1) { hc=0x8000; ys(1000); xrsj(0x0000); //hc=0x0002; /**********************************/ ys(1000); xssj[0]=(hc&0x00ff)+'0'; xssj[1]=(hc>>8)+'0'; xsj(xssj[0]); ys(500); xsj(xssj[1]); //while(1) ; /**********************************/ } }修改了下单片机的8位缓存 补充内容 (2016-4-12 20:35): 显示数据 // |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》 第十六章 WATCH_DOG实验
460 浏览 0 评论
【敏矽微ME32G070开发板免费体验】+ADC测试与LED点亮
418 浏览 0 评论
飞凌嵌入式-ELFBOARD ELF 2的硬件知识分享--核心板
352 浏览 0 评论
【敏矽微ME32G070开发板免费体验】\\+Lora通信终端产品开发项目
514 浏览 0 评论
1576 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11971 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 00:52 , Processed in 0.776560 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号