CPLD与51单片机总线接口程序_第1页
CPLD与51单片机总线接口程序_第2页
CPLD与51单片机总线接口程序_第3页
CPLD与51单片机总线接口程序_第4页
CPLD与51单片机总线接口程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    CPLD与51单片机总线接口程序CPLD与51单片机总线接口程序'timescale1ns/1nsmoduleIO_KZ(Data,P27,WR,RD,ALE,CLR,OUTKEY,OUT30,CS,CS1,LEDCS,OC);inout7:0Data;inputWR;inputP27;inputRD;inputALE;inputCLR;inputOC;input4:0OUTKEY;output59:0OUT30;output1:0CS;outputCS1;output14:0LEDCS;reg14:0LEDCS;reg59:0OUT30

2、;reg1:0CS;wireCS1;/wire7:0Data;reg8:0IOADD;reg15:0DataBF;regwr_en;reg7:0OUTKEYBF;/wire7:0OUTKEYBF1;assignCCPLD与51单片机总线接口程序'timescale 1ns/1nsmodule IO_KZ(Data,P27,WR,RD,ALE,CLR,OUTKEY,OUT30,CS,CS1,LEDCS,OC);inout 7:0Data;input WR;input P27;input RD;input ALE;input CLR;input OC;input 4:0OUTKEY;out

3、put 59:0OUT30;output 1:0CS;output CS1;output 14:0LEDCS;reg   14:0LEDCS;reg   59:0OUT30;reg   1:0CS;wire   CS1;/wire 7:0Data;reg   8:0IOADD;reg   15:0DataBF;reg   wr_en;reg   7:0OUTKEYBF;/wire   7:0OUTKEYBF1;ass

4、ign CS1=(IOADD=338)&&(OC=0)?1'b0:1'b1;/8052assign Data=(IOADD=277)&&(OC=0)&&(RD=0)?OUTKEYBF:8'bzzzzzzz;/8015always (OUTKEY)           begin      if(OUTKEY0=0)    

5、60; OUTKEYBF&lt;=1;         else if(OUTKEY1=0)      OUTKEYBF<=2;      else if(OUTKEY2=0)      OUTKEYBF<=3;      else if(OUTKEY3=0)   &#

6、160;  OUTKEYBF<=4;      else if(OUTKEY4=0)      OUTKEYBF<=5;      else      OUTKEYBF<=0;      endalways (negedge ALE)      begin &#

7、160;    IOADD<=&#123;P27,Data&#125;/ALE下降延读地址      endalways (IOADD or WR) /WR下降延写数据      begin      if(IOADD>256)&&(IOADD<337)&&(IOADD!=277)wr_en<=WR;    

8、;  else      begin      wr_en<=1;      end      endalways (negedge wr_en or posedge OC or posedge WR) /WR下降延写数据    begin    if(OC)      b

9、egin                CS=2'b00;                               LEDCS=15

10、9;b00000_0000_0000_00;      end    else if(WR)                begin                CS=2'b00;  &#

11、160;                                  end       else         

12、;       begin                case(IOADD)                261: begin CS=2'b01; end/8005     &

13、#160;                         262: begin CS=2'b10;LEDCS=15'b00000_0000_0000_01;end/8006              &

14、#160; 263: begin CS=2'b10;LEDCS=15'b00000_0000_0000_10;end/8007            264: begin CS=2'b10;LEDCS=15'b00000_0000_0001_00;end/8008            265: begin CS=2'b10;LEDCS=

15、15'b00000_0000_0010_00;end/8009            266: begin CS=2'b10;LEDCS=15'b00000_0000_0100_00;end/800A            267: begin CS=2'b10;LEDCS=15'b00000_0000_1000_00;end/800B&

16、#160;           268: begin CS=2'b10;LEDCS=15'b00000_0001_0000_00;end/800C            269: begin CS=2'b10;LEDCS=15'b00000_0010_0000_00;end/800D      &

17、#160;     270: begin CS=2'b10;LEDCS=15'b00000_0100_0000_00;end/800E            271: begin CS=2'b10;LEDCS=15'b00000_1000_0000_00;end/800F            272: b

18、egin CS=2'b10;LEDCS=15'b00001_0000_0000_00;end/8010            273: begin CS=2'b10;LEDCS=15'b00010_0000_0000_00;end/8011            274: begin CS=2'b10;LEDCS=15'b0010

19、0_0000_0000_00;end/8012            275: begin CS=2'b10;LEDCS=15'b01000_0000_0000_00;end/8013                276: begin CS=2'b10;LEDCS=15'b10000_0000_0000_

20、00;end/8014                endcase              end      end   always (negedge wr_en or posedge CLR or posedge OC ) /WR下

21、降延写数据    begin        if(OC)      begin                               DataB

22、F=0;  OUT3059:0=60'hfffffffffffffff;      end        else if(CLR)             begin              

23、0; DataBF=0;  OUT3059:0=60'hfffffffffffffff;      end           else      begin                  

24、0;          if(Data0)    DataBF1:0=2'b10;  else    DataBF1:0=2'b01;                        &

25、#160;              if(Data1)                      DataBF3:2=2'b10;  else    DataBF3:2=2'b01; 

26、0;                       if(Data2)                      DataBF5:4=2'b10;  el

27、se    DataBF5:4=2'b01;                             if(Data3)             

28、60;        DataBF7:6=2'b10;  else    DataBF7:6=2'b01;        if(Data4)                      DataB

29、F9:8=2'b10;  else    DataBF9:8=2'b01;        if(Data5)                      DataBF11:10=2'b10;  else    Data

30、BF11:10=2'b01;        if(Data6)                      DataBF13:12=2'b10;  else    DataBF13:12=2'b01;     

31、;   if(Data7)                      DataBF15:14=2'b10;  else    DataBF15:14=2'b01;            

32、0;           case(IOADD)            257: begin OUT3015:0 =DataBF;end/8001                258: begin OUT3031:16=DataBF;en

33、d/8002                           259: begin OUT3047:32=DataBF;end/8003            260: begin OUT3059:48=DataBF;end/

34、8004                endcase                case(IOADD)                278:

35、begin OUT301:0=2'b10;end/8016                279: begin OUT301:0=2'b01;end/8017                280: begin OUT303:2=2'b10;end/8018 

36、60;              281: begin OUT303:2=2'b01;end/8019                282: begin OUT305:4=2'b10;end/801A        

37、60;       283: begin OUT305:4=2'b01;end/801B                284: begin OUT307:6=2'b10;end/801C                28

38、5: begin OUT307:6=2'b01;end/801D                286: begin OUT309:8=2'b10;end/801E                287: begin OUT309:8=2'b01;end/802F 

39、               endcase                case(IOADD)                288: begin OUT3

40、011:10=2'b10;end/8020                289: begin OUT3011:10=2'b01;end/8021                290: begin OUT3013:12=2'b10;end/8022  &

41、#160;             291: begin OUT3013:12=2'b01;end/8023                292: begin OUT3015:14=2'b10;end/8024        

42、60;       293: begin OUT3015:14=2'b01;end/8025                294: begin OUT3017:16=2'b10;end/8026               

43、; 295: begin OUT3017:16=2'b01;end/8027                296: begin OUT3019:18=2'b10;end/8028                297: begin OUT3019:18=2'b01;end/

44、8029                  endcase                  case(IOADD)            

45、    298: begin OUT3021:20=2'b10;end/802A                299: begin OUT3021:20=2'b01;end/802B                300: begin OUT3023:

46、22=2'b10;end/802C                301: begin OUT3023:22=2'b01;end/802D                302: begin OUT3025:24=2'b10;end/802E   

47、;             303: begin OUT3025:24=2'b01;end/802F                304: begin OUT3027:26=2'b10;end/8030         &

48、#160;      305: begin OUT3027:26=2'b01;end/8031                306: begin OUT3029:28=2'b10;end/8032                30

49、7: begin OUT3029:28=2'b01;end/8033                  endcase                  case(IOADD)      &#

50、160;         308: begin OUT3031:30=2'b10;end/8034                309: begin OUT3031:30=2'b01;end/8035            

51、0;   310: begin OUT3033:32=2'b10;end/8036                311: begin OUT3033:32=2'b01;end/8037                312: begin OUT3035:34=2

52、'b10;end/8038                313: begin OUT3035:34=2'b01;end/8039                314: begin OUT3037:36=2'b10;end/803A   

53、60;            315: begin OUT3037:36=2'b01;end/803B                316: begin OUT3039:38=2'b10;end/803C          

54、;      317: begin OUT3039:38=2'b01;end/803D                  endcase                  case(IOADD)

55、0;               318: begin OUT3041:40=2'b10;end/803E                319: begin OUT3041:40=2'b01;end/803F       

56、         320: begin OUT3043:42=2'b10;end/8040                321: begin OUT3043:42=2'b01;end/8041             &#

57、160;  322: begin OUT3045:44=2'b10;end/8042                323: begin OUT3045:44=2'b01;end/8043                324: begin OUT3047:46=2'b10;end/8044                325: begin OUT3047:46=2'b01;end/8045                326: begin OUT3049:48=2'b10;end/8046

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论