找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3976|回复: 0
打印 上一主题 下一主题
收起左侧

基于DSP的键盘接口设计报告 含仿真与源码

[复制链接]
跳转到指定楼层
楼主
ID:348166 发表于 2018-7-21 21:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电子与通信工程学院
专业课程设计报告
2017 ~ 2018 学年第2学期
基于DSP的键盘接口设计
专       业:    电子与通信工程         
班       级:      通信151

课程设计报告


【课题名称】基于DSP的键盘接口设计

【摘    要】随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。行列式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。行列式键盘乃是当今使用最为广泛的键盘模式之一,该系统以8个端口连接控制4*4个按键,即时在LCD数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是插上2407主控板的DSP实验箱和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用插上2407主控板的DSP实验箱为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转换成数字量,显示于LCD显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。


一、引言
便携式嵌入设备包括各种手持设备及各种信息家电,在这类产品中既要有实时的信号处 理能力,又需要有强大的操作控制功能,因此基于DSP芯片的设计方案成为这些产品的主流。 目前在便携音频处理中,TI公司的TMS320VC54x系列应用最为广泛[1],但是54x系列芯片属 于运算高密度型DSP器件,因此其外设控制能力不强,外部接口很少,给各种扩展带来不便, 本文介绍一种新的基于TMS320VC5416的键盘显示扩展设计方案,利用串行控制的 HD7279A键盘显示扩展芯片,仅占用DSP的2个IO口和1个中断,能实现64键键盘和64路LED 的控制。

二、总体方案设计
1、通过4 * 4的行列式键盘,TMS320F2407的8个I / O口与之相连,用扫描法来进行按键识别。使行线一直处于高电平,在某一时刻只让一条列线处于低电平,而其余列线处于高电平。那么按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。
2、要求正确掌握CCS2000的安装和调试方法,以及DSP实验箱下载调试的步骤; 2.要求正确掌握键盘信号的输入和DSP I/O的使用; 3.要求键盘信号之间的时序能正确识别和引入。
3、根据行列式键盘的特点,进行键盘控制系统的整体研究与设计;
4、熟练掌握CCS2000软件的使用,并能够按要求对设计的电路进行仿真,实现相应的功能;
5、.LCD液晶显示屏实时显示按键的信息;
6、采用软件编程的方法实现按键信息的提取和显示。

三、设计原理分析
1、设计原理
实验箱上提供一个4x4的行列式键盘。2407的8个I/O口与之相连,这里按键的识别方法是扫描法。键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线的电平在无按键按下时处于高电平状态。如果让所有的列线也处于高电平,那么键按下与否不会引起行线电平的状态变化,始终为高电平。所以,让所有的列线处于高电平是无法识别出按键的。现在反过来,让所有的列线处于低电平,很明显,按键所在的行电平将被拉成低电平。根据此行电平的变化,便能判断此行一定有按键被按下,但还不能确定是哪个键被按下。假如是5键按下,为了进一步判定是哪一列的键被按下,可在某一时刻只让一条列线处于低电平,而其余列线处于高电平。那么,按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。、
2、实现设备

2.1、一台装有CCS2000软件的计算机;

CCS2000具有以下特性:TI编译器的完全集成的环境:CCS2000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。对c和DSP汇编文件的目标管理:目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。高集成的编辑器调整C和DSP汇编代码:CCS2000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误,对编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS2000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。PDM允许将命令传播给所有的或选择的处理器。在任何算法点观察信号的图形窗口探针,图形显示窗口使用户能够观察时域或频域内的信号。

2.2、 插上2407主控板的DSP实验箱;(仿真器模块,显示控制模块,DSP评估板模块,行列式键盘模块)

ICETEK-LF2407-A板是一块很独立的目标板,它非常适合检验LF2407DSP的性能,此外,本目标板提供了LF240x系列芯片进行扩展和运行软件的标准平台。 ICETEK-LF2407-A板使用了TMS320LF2407DSP芯片,兼容所有LF2407的使用代码,它具有2.5K字节的片上数据存储器,128K板上存储器,片上UART,DAC7625模数转换器。此EVM板还提供了DSP的扩展引脚,方便了用户外搭所需电路。许多用户接口可利用简单的代码进行扩展,从而缩短了调试时间。 ICETEK-LF2407-A 板功能:它主要的接口包括目标存储器接口、模拟接口、CAN总线接口、并口、用户指示灯和开关、外部扩展接口。

LF2407提供了128K的静态存储器,外部I/O口支持相应的64k I/O端口,片上的CAN总线和RS232端口可用做扩展连接。


五、总结和体会

通过本次CCS2000环境下矩阵键盘扫描LCD显示的仿真实验,让我了解并熟悉了CCS2000软件的安装和调试方法,DSP实验箱下载调试的步骤以及CCS环境下的DSP的汇编语言程序编写方法,对于液晶显示模块控制程序的编写和矩阵键盘的信号识别原理也有了更深的认识,对今后DSP的进一步学习奠定了应用基础。运行程序后,在按下键盘上的按键时,会显示相对应的键号(键号为:0-9、A-D、#、* 共十六的键号),其显示是通过液晶显示器显示出来。了解了4*4矩阵键盘的设定及其IO口的配置方式,进一步掌握用汇编语言编写DSP程序的方法,及编译、除错能力。


程序:

  1. #include "tms320uc5402.h"
  2. ioport short port8002;       //写lcd指令地址
  3. ioport short port8003;       //写lcd数据地址
  4. unsigned int p;
  5. char send_buff=0x00;
  6. char rece_buff=0x00;
  7. unsigned int data_buff=0x0000;
  8. void sys_ini()                   //系统初始化子程序
  9. {
  10.     /*全局禁止所有可屏蔽中断*/
  11.      asm(" ssbx INTM");
  12.     /*(DRAM映射到程序空间和数据空间)向量表映射到0x0080空间*/         
  13.      PMST&=0x00FF;
  14.     /*io空间7个等待周期,程序与数据空间0个等待周期*/            
  15.      SWWSR=0x7000;
  16.     /*设置pll为div模式*/      
  17.     CLKMD=0x0000;              
  18.     /*等待设置完成*/
  19.      while(CLKMD==0x0001);      
  20.     {
  21.      }
  22.     /*CLKOUT=(3+1)*CLKIN=40M,自动延时最长时间*/
  23.      CLKMD=0x37FA;  
  24.     /*CLKOUT=(1+1)*CLKIN=20M,自动延时最长时间*/            
  25.      //CLKMD=0x17FA;                           
  26. }
  27. void delay_ms()            //延时40ms
  28. {
  29.   unsigned int k;
  30.   for(k=0;k<60000;k++);
  31. }

  32. void delay_us()           //延时100us
  33. {
  34.   unsigned int k;
  35.   for(k=0;k<200;k++);
  36. }
  37. void  delay(int number)
  38. {
  39. unsigned  int i,k;
  40. for(i=0;i<50;i++);
  41. for(k=0;k<number;k++);
  42. }
  43. void McBSP1_ini()               //初始化多通道缓存串口1为通用IO
  44. {
  45.     /*复位多通道串口0的接收*/
  46.      SPSA2=SPCR1;
  47.      SPSD2=0x0000;
  48.     /*复位多通道串口0的发送*/
  49.      SPSA2=SPCR2;
  50.      SPSD2=0x0000;
  51. /*定义CLKXM脚为io输出脚初始值0,BFSX脚为io输出脚初始值1,CLKRM脚为io输出脚初始值1*/
  52.      SPSA2=PCR;
  53.      SPSD2=0x3B09;
  54. }  
  55. void lcd_show(char a[])
  56. {
  57.   int x;
  58.   char * string=a;  for(x=0;x<strlen(a);x++)
  59.   {
  60.      port8003=* string;
  61.      string++;
  62.      delay_us();
  63.   }
  64. }
  65. void lcd_ini()
  66. {
  67.   delay_ms();                //延时40ms
  68.   port8002=0x0030;           //8位控制界面,基本指令集
  69.   delay_us();
  70.   port8002=0x0030;           //8位控制界面,基本指令集
  71.   delay_us();
  72.   port8002=0x000C;           //整体显示,显示游标 ,显示游标位置
  73.   delay_us();
  74.   port8002=0x0001;           //清除显示
  75.   delay_ms();
  76.   port8002=0x0006;           //光标右移
  77.   delay_us();
  78. }
  79. void int3_ini()                 //中断3初始化子程序
  80. {
  81.     /*使能外部中断3*/
  82.      IMR=0x0100;               
  83.     /*清除所有中断标志位*/
  84.      IFR=0xFFFF;     
  85.     /*全局使能可屏蔽中断*/
  86.      asm(" rsbx INTM");        
  87. }
  88. void delay_8us()                //延时8us子程序
  89. {
  90.      unsigned int i;
  91.      for(i=0;i<30;i++);
  92. }
  93. void delay_50us()               //延时50us子程序
  94. {
  95.      unsigned int j;
  96.      for(j=0;j<170;j++);
  97. }
  98. void delay_25ms()               //延时25ms子程序
  99. {
  100.      unsigned int k;
  101.      for(k=0;k<50000;k++);
  102.      for(k=0;k<45000;k++);
  103. }
  104. void delay_long()               //长延时子程序
  105. {
  106. unsigned int n,s;
  107. for(n=0;n<6000;n++)
  108.    for(s=0;s<600;s++);     
  109. }
  110. void cs_high()                   //7279cs置高子程序
  111. {
  112.      SPSA2=PCR;
  113.      SPSD2|=0x0001;
  114. }
  115. void cs_low()                    //7279cs置高子程序
  116. {
  117.      SPSA2=PCR;
  118.      SPSD2&=0xFFFE;
  119. }
  120. void send()
  121. {        
  122. unsigned int m;
  123.     cs_low();
  124.     delay_50us();              
  125.     for(m=0;m<8;m++)
  126.     {
  127.           SPSA2=PCR;
  128.           switch(send_buff&0x80)
  129.           {
  130.                 /*7279data置低*/
  131.                 case 0x00:SPSD2&=0xFFF7;break;
  132.                   /*7279data置高*/
  133.                   case 0x80:SPSD2|=0x0008;
  134.            }
  135.          /*7279clk置高*/
  136.          SPSA2=PCR;
  137.          SPSD2|=0x0002;
  138.          delay_8us();
  139.          /*7279clk置低*/
  140.          SPSA2=PCR;
  141.          SPSD2&=0xFFFD;
  142.          delay_8us();
  143.          send_buff<<=1;
  144.     }
  145. }
  146. void receive()
  147. {
  148.          unsigned int s;
  149.        /*将BFSX脚配置为io输入脚*/
  150.          SPSA2=PCR;
  151.          SPSD2&=0xF7FF;
  152.         /*7279发数据*/
  153.          asm(" rsbx xf");
  154.          delay_50us();
  155.          for(s=0;s<8;s++)
  156.          {
  157.            /*7279clk置高*/
  158.             SPSA2=PCR;
  159.             SPSD2|=0x0002;
  160.             delay_8us();
  161.             SPSA2=PCR;
  162.             data_buff=data_buff|((SPSD2&0x0008)<<(12-s));//读BFSX引脚数据;
  163.            /*7279clk置低*/
  164.             SPSA2=PCR;
  165.            SPSD2&=0xFFFD;
  166.             delay_8us();
  167.          }   
  168.          rece_buff=data_buff>>8;
  169.         /*清除data_buff*/
  170.          data_buff=0x0000;           
  171.         /*将BFSX脚配置为io输出脚*/
  172.          SPSA2=PCR;
  173.          SPSD2|=0x0800;
  174.         /*7279收数据*/
  175.          asm(" ssbx xf");
  176. }
  177. interrupt void int3()
  178. {   
  179. char b[]="a    ";
  180. /*读键值指令*/
  181.       send_buff=0x15;   
  182.       send();
  183.       receive();
  184.       /*数据左移指令*/
  185.       send_buff=0xA1;   
  186.       send();
  187.      send_buff=0xC8;
  188.      send();
  189.     /*将接收到的键值送显示*/
  190.      send_buff=rece_buff;
  191.     //send();
  192.       if (rece_buff>=10)
  193.    {
  194.        b[0]=rece_buff+30+30+30-42+7;}
  195.       // return;
  196.    else
  197.      b[0]=rece_buff+30+30+30-42;//-43-7;
  198.      //b[1]=' ';
  199.      lcd_show(b);
  200.      delay(10000);
  201.      delay(10000);
  202.     // delay(10000);
  203. //              delay(10000);
  204.     // delay(10000);
  205.     // delay(10000);
  206.     port8002=0x0001;           //清除显示   
  207.     delay(6000);
  208.     lcd_show(b);
  209.     return;
  210. void main(void)
  211. {
  212.       sys_ini();   
  213.       McBSP1_ini();
  214.       int3_ini();         
  215.       lcd_ini();        
  216.       delay_25ms();
  217.       /*测灯指令*/
  218.        // send_buff=0x00;   
  219.        //send();
  220.        //delay_long();
  221.        // delay_long();
  222.        /*清除指令*/
  223.        send_buff=0xA4;   
  224.        send();
  225.        /*送出数据0x00~0x0F*/
  226.        //for(p=0;p<3;p++)
  227.        //{
  228.            // send_buff=0xC8;   
  229.            // send();
  230.            // send_buff=p;
  231.             //send();
  232.             // delay_long();
  233.             /*数据左移指令*/
  234.             // send_buff=0xA1;
  235.              //send();   
  236.          // }
  237.         /*清除指令*/
  238.         send_buff=0xA4;   
  239.         send();
  240.         cs_high();
  241.         for(;;);
  242.      }
  243. }
复制代码



  1. /*  
  2. ;* 文件名称 : keyboard.c        
  3. ;* 适用平台 : EXPIII+实验系统
  4. ;* CPU类型  : DSP TMS320VC54X
  5. ;* 软件环境 : CCS3.1 (5000系列)
  6. ;* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接
  7. ;*              (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
  8. ;*               CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
  9. ;*            2、SW2的sw2=OFF,sw1=OFF;对应2X的pdpintb和5X的int3中断分配给键盘中断使用;
  10. ;*               语音小板的拨码开关全部置OFF;
  11. ;* 试验现象 : LED全部点亮后,LED13和LED14显示出0123456789等字符,并逐渐左移,直到"F"出现后,
  12. ;*            LED 全部变暗。此时按键,便可从LED13和LED14上显示出123456789等按键对应的键值,
  13. ;*            每个键对应一个数,当按下一键时LED就会显示出相对应的数,且向左移动一位。
  14. ;*************************************************************/
  15. /************************文件预处理***************************/
  16. #include "tms320uc5402.h"
  17. /*************************************************************/
  18. ioport short port8002;       //写lcd指令地址
  19. ioport short port8003;       //写lcd数据地址

  20. /********************全局变量定义与初始化*********************/
  21. unsigned int p;
  22. char send_buff=0x00;
  23. char rece_buff=0x00;
  24. unsigned int data_buff=0x0000;
  25. /*************************************************************/

  26. /*******************函数、子程序声明与定义********************/
  27. void sys_ini()                   //系统初始化子程序
  28. {
  29.     /*全局禁止所有可屏蔽中断*/
  30.      asm(" ssbx INTM");
  31.     /*(DRAM映射到程序空间和数据空间)向量表映射到0x0080空间*/           
  32.      PMST&=0x00FF;  
  33.     /*io空间7个等待周期,程序与数据空间0个等待周期*/            
  34.      SWWSR=0x7000;
  35.     /*设置pll为div模式*/        
  36.      CLKMD=0x0000;               
  37.     /*等待设置完成*/
  38.      while(CLKMD==0x0001);      
  39.      {
  40.      }
  41.     /*CLKOUT=(3+1)*CLKIN=40M,自动延时最长时间*/
  42.      CLKMD=0x37FA;   
  43.     /*CLKOUT=(1+1)*CLKIN=20M,自动延时最长时间*/            
  44.      //CLKMD=0x17FA;                           
  45. }
  46. void delay_ms()            //延时40ms
  47. {
  48.   unsigned int k;
  49.   for(k=0;k<60000;k++);
  50. }

  51. void delay_us()           //延时100us
  52. {
  53.   unsigned int k;
  54.   for(k=0;k<200;k++);
  55. }

  56. void  delay(int number)
  57. {

  58. unsigned  int i,k;
  59. for(i=0;i<50;i++);

  60.   for(k=0;k<number;k++);
  61.   }
  62. void McBSP1_ini()               //初始化多通道缓存串口1为通用IO
  63. {
  64.     /*复位多通道串口0的接收*/
  65.      SPSA2=SPCR1;
  66.      SPSD2=0x0000;
  67.     /*复位多通道串口0的发送*/
  68.      SPSA2=SPCR2;
  69.      SPSD2=0x0000;
  70.     /*定义CLKXM脚为io输出脚初始值0,BFSX脚为io输出脚
  71.       初始值1,CLKRM脚为io输出脚初始值1*/
  72.      SPSA2=PCR;
  73.      SPSD2=0x3B09;
  74. }  

  75. void lcd_show(char a[])
  76. {
  77.   int x;
  78.   char * string=a;
  79.   for(x=0;x<strlen(a);x++)
  80.   {
  81.     port8003=* string;
  82.     string++;
  83.     delay_us();
  84.   }
  85. }
  86.    

  87. void lcd_ini()
  88. {
  89.   delay_ms();                //延时40ms
  90.   port8002=0x0030;           //8位控制界面,基本指令集
  91.   delay_us();
  92.   port8002=0x0030;           //8位控制界面,基本指令集
  93.   delay_us();
  94.   port8002=0x000C;           //整体显示,显示游标 ,显示游标位置
  95.   delay_us();
  96.   port8002=0x0001;           //清除显示
  97.   delay_ms();
  98.   port8002=0x0006;           //光标右移
  99.   delay_us();
  100. }  
  101. void int3_ini()                 //中断3初始化子程序
  102. {
  103.     /*使能外部中断3*/
  104.      IMR=0x0100;               
  105.     /*清除所有中断标志位*/
  106.      IFR=0xFFFF;      
  107.     /*全局使能可屏蔽中断*/
  108.      asm(" rsbx INTM");         
  109. }

  110. void delay_8us()                //延时8us子程序
  111. {
  112.      unsigned int i;
  113.      for(i=0;i<30;i++);
  114. }

  115. void delay_50us()               //延时50us子程序
  116. {
  117.      unsigned int j;
  118.      for(j=0;j<170;j++);
  119. }

  120. void delay_25ms()               //延时25ms子程序
  121. {
  122.      unsigned int k;
  123.      for(k=0;k<50000;k++);
  124.      for(k=0;k<45000;k++);
  125. }

  126. void delay_long()               //长延时子程序
  127. {
  128.      unsigned int n,s;
  129.      for(n=0;n<6000;n++)
  130.      {
  131.        for(s=0;s<600;s++)
  132.        {
  133.        }
  134.      }     
  135. }

  136. void cs_high()                   //7279cs置高子程序
  137. {
  138.      SPSA2=PCR;  
  139.      SPSD2|=0x0001;  
  140. }

  141. void cs_low()                    //7279cs置高子程序
  142. {
  143.      SPSA2=PCR;  
  144.      SPSD2&=0xFFFE;
  145. }

  146. void send()
  147. {         
  148.           unsigned int m;
  149.           cs_low();
  150.           delay_50us();               
  151.           for(m=0;m<8;m++)
  152.           {
  153.                SPSA2=PCR;
  154.                switch(send_buff&0x80)
  155.                {
  156.                   /*7279data置低*/
  157.                    case 0x00:SPSD2&=0xFFF7;break;
  158.                   /*7279data置高*/
  159.                    case 0x80:SPSD2|=0x0008;
  160.                }
  161.               /*7279clk置高*/
  162.                SPSA2=PCR;
  163.                SPSD2|=0x0002;
  164.                delay_8us();
  165.               /*7279clk置低*/
  166.                SPSA2=PCR;
  167.                SPSD2&=0xFFFD;
  168.                delay_8us();
  169.                send_buff<<=1;
  170.            }

  171. }

  172. void receive()
  173. {
  174.          unsigned int s;
  175.         /*将BFSX脚配置为io输入脚*/
  176.          SPSA2=PCR;
  177.          SPSD2&=0xF7FF;
  178.         /*7279发数据*/
  179.          asm(" rsbx xf");
  180.          delay_50us();
  181.          for(s=0;s<8;s++)
  182.          {
  183.            /*7279clk置高*/
  184.             SPSA2=PCR;
  185.             SPSD2|=0x0002;
  186.             delay_8us();
  187.             SPSA2=PCR;
  188.             data_buff=data_buff|((SPSD2&0x0008)<<(12-s));//读BFSX引脚数据;  
  189.            /*7279clk置低*/
  190.             SPSA2=PCR;
  191.             SPSD2&=0xFFFD;
  192.             delay_8us();
  193.          }   
  194.          rece_buff=data_buff>>8;
  195.         /*清除data_buff*/
  196.          data_buff=0x0000;            
  197.         /*将BFSX脚配置为io输出脚*/
  198.          SPSA2=PCR;
  199.          SPSD2|=0x0800;  
  200.         /*7279收数据*/
  201.          asm(" ssbx xf");
  202. }   
  203. /*************************************************************/

  204. /*****************中断服务子程序声明与定义********************/
  205. interrupt void int3()
  206. {   char b[]="a    ";
  207. /*读键值指令*/
  208.      send_buff=0x15;     
  209.     send();
  210.      receive();
  211.     /*数据左移指令*/
  212.      send_buff=0xA1;     
  213.     send();
  214.      send_buff=0xC8;
  215.     send();
  216.     /*将接收到的键值送显示*/
  217.      send_buff=rece_buff;
  218.     //send();
  219.      
  220.     if (rece_buff>=10)
  221.    {
  222.        b[0]=rece_buff+30+30+30-42+7;}
  223.     // return;
  224.    else
  225.    b[0]=rece_buff+30+30+30-42;//-43-7;
  226.     //b[1]=' ';
  227.     lcd_show(b);
  228.     delay(10000);
  229.     delay(10000);
  230.    // delay(10000);
  231. //        delay(10000);
  232.    // delay(10000);
  233.   // delay(10000);
  234.   port8002=0x0001;           //清除显示   
  235.   delay(6000);
  236.   lcd_show(b);
  237.      return;
  238. }
  239. /*************************************************************/

  240. /**************************主程序*****************************/
  241. void main(void)
  242. {
  243.          sys_ini();   
  244.          McBSP1_ini();
  245.           int3_ini();         
  246.           lcd_ini();         
  247.           delay_25ms();
  248.          /*测灯指令*/
  249.         // send_buff=0x00;   
  250.          //send();
  251.           //delay_long();
  252.          // delay_long();
  253.          /*清除指令*/
  254.          send_buff=0xA4;   
  255.           send();  
  256.          /*送出数据0x00~0x0F*/
  257.           //for(p=0;p<3;p++)  
  258.           //{
  259.            // send_buff=0xC8;   
  260.            // send();
  261.            // send_buff=p;
  262.             //send();
  263.             // delay_long();
  264.             /*数据左移指令*/
  265.             // send_buff=0xA1;
  266.              //send();   
  267.          // }
  268.          /*清除指令*/
  269.          send_buff=0xA4;   
  270.          send();
  271.           cs_high();
  272.           for(;;);
  273.       /*    char b[]="玉林师范学院";
  274.   sys_ini();
  275. ……………………

  276. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码





全部资料51hei下载地址:
DSP课程设计201508402146.zip (125.09 KB, 下载次数: 35)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表