(永辉电子DSP 板子)

代码功能 :

1.外部中断 控制 流水灯的方向

2. key 1 开启 蜂鸣器

3.key 2 关闭 蜂鸣器

4.key 3 开启 LED灯  (可能按键不对  但是就是这几个)

5.key 4 关闭 LED 灯

6.TFTLCD 屏幕显示


代码:

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
#include <bsp_includes.h>#if  (TFTLCD_TEST == 1)
uchar class[]= {"班级 :"};
uchar Name[]= {"姓名: "};
uchar student_ID[]={"学号: "};
uchar Str1[] = {"题目: DSP综合设计 "};//方向的提示语句
uchar Str2[] = {"蜂鸣器模块: "};
uchar Str3[] = {"LED流水灯的方向: "};
uchar Str4[] = {"LED 小灯模块: "};
uchar Str5[] = {"正向"};
uchar Str6[] = {"反向"};
uchar Str7[] = {"开启"};
uchar Str8[] = {"关闭"};
#endifint kkk1=0;//控制 流水灯的方向  0 正向  1 反向
int kkk2=0;//控制 LED 灯的模块的亮灭  0 不亮  1 亮
int kkk3=0;//控制 蜂鸣器模块响  0 不响  1 响// 本例中用到的全局变量;
volatile Uint32 Xint1Count; //发生外部中断1的次数;
#define LED  *((Uint16 *)0x4600)//流水灯的映射
const Uint16 LedCode[9]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0XFF};//小灯亮的 编码
#define Key_Read *((Uint16 *)0x4700)//按键的映射
#define KeyValue ((Key_Read)&0x0f)
#define keyon1 GpioDataRegs.GPADAT.bit.GPIO29//外部中断
#define DELAY 35.700L
unsigned int decetion;//流水灯 闪烁的方向// 中断服务子程序在主程序下面时,需要在主程序之前要先申明才能使用.
interrupt void xint1_isr(void);
void delay_loop_2(void);//延时函数
void Gpio_select(void);//小灯  与蜂鸣器的初始化函数
void delay_loop_1(void);//超短时间的延时
void  kongzhi_1();//控制 流水灯 的TFT 显示状态
void kongzhi_2();//控制 LED 灯的亮灭的显示状态
void kongzhi_3();//控制  蜂鸣器 的 的状态//函数入口
void main(void)
{InitSysCtrl();DINT;InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();Gpio_select();//GPIO  led 端口初始化InitXintf();InitSpiaGpio();Gpio_select();EALLOW;  // 修改被保护的寄存器,修改前应添加EALLOW语句PieVectTable.XINT1 = &xint1_isr;GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 00;      // GPIO60为GPIO功能GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1;      // GPIO60为输出功能EDIS;   // EDIS的意思是不允许修改被保护的寄存器// 在外设中断扩展模块中断使能寄存器中允许XINT1和XINT2: (组1中断4 & 5)// 使能CPU中断1(INT1):PieCtrlRegs.PIECTRL.bit.ENPIE = 1;          // 使能外设中断扩展PIE模块PieCtrlRegs.PIEIER1.bit.INTx4 = 1;          // 使能PIE组1的INT4IER |= M_INT1;                              // 使能CPU中断1(INT1)EINT;                                       // 开全局中断// GPIO29配置为输入引脚通用I/O口,接按键TZ1,TZ2EALLOW;GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 0;         // 选择为通用I/O口GpioCtrlRegs.GPADIR.bit.GPIO29 = 0;          // 方向定义为输入GpioCtrlRegs.GPAPUD.bit.GPIO29=0;GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 0;        // 外部中断1(XINT1)与系统时钟SYSCLKOUT同步GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0x80;   // 每个采样窗口的周期EDIS;// 通过GPIO外部中断选择寄存器,选择GPIO12为外部中断1,选择GPIO13为外部中断2EALLOW;GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 0x1D;   // XINT1是GPIO29EDIS;// 配置外部中断1和2的中断控制寄存器XIntruptRegs.XINT1CR.bit.POLARITY = 0;      // 下降沿触发中断// 使能外部中断1和外部中断2XIntruptRegs.XINT1CR.bit.ENABLE = 1;        // 使能XINT1decetion=1;LED=0x00;//全亮delay_loop();int num=0;//这里不能是无符号的整形  因为 num 可能等于  -1//TFTLCD实验
#if (TFTLCD_TEST == 1)ILI9325_Init();         //TFT初始化//显示字符LCD_PutString(37, 20,Str1,  BLUE,WHITE);//题目LCD_PutString(37, 45,class, WHITE,RED);//班级LCD_PutString(37, 70,Name,  WHITE,RED);//姓名LCD_PutString(37, 95,student_ID, RED,WHITE);//学号LCD_PutString(37, 120,Str3, WHITE,RED);//流水灯LCD_PutString(37, 145,Str2, WHITE,RED);//蜂鸣器LCD_PutString(37, 170,Str4, WHITE,RED);//小灯#endifwhile(1){//按键中断if(decetion%2==0){LED=LedCode[num];delay_loop();num++;if(num>7){num=0;}kkk1=0;//正向}if(decetion%2==1){LED=LedCode[num];delay_loop();num--;if(num<0){num=7;}kkk1=1;//反向}//按键k1---k4//按键 谁为 0  谁就启动了!delay_loop_1();//这里加一个延时是为了保证 key   按键按下去的时候能够识别的到if(KeyValue==0x0e)//1110  e{GpioDataRegs.GPASET.bit.GPIO6=1;//设置GPIO6输出高电平  //关闭LED灯GpioDataRegs.GPASET.bit.GPIO7=1;//设置GPIO7输出高电平kkk2=0;//关闭}delay_loop_1();//这里加一个延时是为了保证 key   按键按下去的时候能够识别的到if(KeyValue==0x0d) //1101  13->d{GpioDataRegs.GPACLEAR.bit.GPIO6 = 1; //设置GPIO输出为低电平  //打开led 灯GpioDataRegs.GPACLEAR.bit.GPIO7 = 1; //设置GPIO输出为低电平kkk2=1;//打开}delay_loop_1();//这里加一个延时是为了保证 key   按键按下去的时候能够识别的到if(KeyValue==0x0b)//1011  11->b{GpioDataRegs.GPBSET.bit.GPIO60=1;//设置GPIO60输出高电平  高电平响kkk3=1;//响}delay_loop_1();//这里加一个延时是为了保证 key   按键按下去的时候能够识别的到if(KeyValue==0x07)//0111  7{GpioDataRegs.GPBCLEAR.bit.GPIO60 = 1; //设置GPIO60输出为低电平    蜂鸣器不响kkk3=0;//关闭}kongzhi_1();kongzhi_2();kongzhi_3();}
}void  kongzhi_1()//控制 流水灯 的TFT 显示状态
{if(kkk1==0) //正向{LCD_PutString(160, 120,Str5, WHITE,RED);//流水灯}else//方向{LCD_PutString(160, 120,Str6, WHITE,RED);//流水灯}
}
void kongzhi_2()//控制 LED 灯的亮灭的显示状态
{if(kkk2==0)//不亮{LCD_PutString(160, 170,Str8, WHITE,RED);//小灯 关闭}else//亮{LCD_PutString(160, 170,Str7, WHITE,RED);//小灯 开启}}
void kongzhi_3()//控制  蜂鸣器 的 的状态
{if(kkk3==0)//不响{LCD_PutString(160, 145,Str8, WHITE,RED);//蜂鸣器关闭}else//响{LCD_PutString(160, 145,Str7, WHITE,RED);//蜂鸣器开启}
}//步骤7.在这里插入中断服务子程序,如果需要使用中断服务子程序,必须在步骤5中重新定义中断
//向量表中对应地地址
interrupt void xint1_isr(void)
{Uint32 i;for(i=0;i<1000000;i++);    //键盘消抖动while(keyon1==0);decetion++;// 应答寄存器的位1清0,以响应同组内其他中断;PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}void delay_loop_2()
{Uint32      i;Uint32      j;for(i=0;i<40;i++){for (j = 0; j < 100000; j++);}}void Gpio_select(void)
{EALLOW;GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 00;      // GPIO6为GPIO功能GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;      // GPIO6为输出功能GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 00;      // GPIO7为GPIO功能GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;      // GPIO7为输出功能GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 00;      // GPIO60为GPIO功能   //BEEPGpioCtrlRegs.GPBDIR.bit.GPIO60 = 1;      // GPIO60为输出功能EDIS;}void delay_loop_1()//超短时间的延时
{Uint32      i;Uint32      j;for(i=0;i<20;i++){for (j = 0; j < 10000; j++);}
}

DSP CCS12.00 芯片:TMS320F28335 结课设计 综合设计 TFTLCD + 按键 + 蜂鸣器 + 流水灯相关推荐

  1. DSP CCS12.00 芯片:TMS320F28335 结课设计 数字电压表 TFTLCD 模块 + ADC 模块

    (永辉电子DSP 的板子  ) 扭动滑动变阻器 改变电压 代码: #include "DSP2833x_Device.h" // DSP2833x Headerfile Inclu ...

  2. DSP CCS12.00 芯片:TMS320F28335 结课设计 频率测量系统设计

    (这篇文章我不负责 !!! , 我没搞懂) 永辉电子 DSP 板子 1.功能: PWM3B   PWM3A 输出 : ECAP 模块测量  : 线的连接 第一种方法 ECAP 1A 模块  J7  4 ...

  3. DSP CCS12.00 芯片:TMS320F28335 结课设计 : 电机模块 + 按键模块 + EQEP 模块 设计 + TFTLCD 的设计 第一次尝试

    1.首先教你怎么做 首先查看 两个文件 DSP2833x_EQep.h  文件 DSP2833x_EQep.c 文件 2.代码:  (没有想到吧 !  没有注释 !! 因为我也不知道,咋做出来的!!, ...

  4. DSP CCS12.00 芯片:TMS320F28335 PWM 的设计

    先学习怎么 发出 PWM 的波形  (知识点看后面) 1.PWM输出配置步骤 EPWM相关文件 在DSP2833x_EPwm.c和DSP2833x_EPwm.h文件中. ​ EALLOW;SysCtr ...

  5. DSP CCS12.00 芯片:TMS320F28335 ADC 的运用

    1.AD 转换的四个步骤 实现ad转换需要经过取样.保持.量化.编码四个步骤. 2.AD 的含义 AD 转换 就是把模拟信号转换成数字信号.主要包括积分型.逐次逼近型.并行比较型/串并行型.Σ-Δ调制 ...

  6. DSP CCS12.00 芯片:TMS320F28335 TFTLCD显示屏幕的应用

    1.我用的那个DSP 工具箱 是 永辉电子公司, 2.知识点 (无) 别人写好的代码,直接用!!! 3.具体操作 1.首先建立工程: 2.这次代码主要,需要添加一个 cmd 文件 关于寄存器的cmd文 ...

  7. DSP CCS12.00 芯片:TMS320F28335 直流电机部分 + TFTLCD 显示部分 + 按键模块

    1. 首先我的 PWM 模块直接连接 了  直流电机  所以 我的 直流电机 利用 PWM  模块控制 . 直流电机  转速=(电枢端电压-两个电刷上的电压降-电枢绕组电阻上的压降)/(电机常数乘以电 ...

  8. 设计分享|单片机左右来回的流水灯

    目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 仿真图(protues8.7) 程序(Keil5) 具体实现功能 51单片机控制8路流水灯左右来回移动! 设计介绍 51单片机简介 5 ...

  9. DSP TMS320F28335按键实现流水灯样式

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

最新文章

  1. java多线程(三)
  2. [LeetCode]题解(python):150-Evaluate Reverse Polish Notation
  3. 这些算法在印度农村医疗中发挥极大作用,未来还将发挥哪些作用?
  4. 直系同源基因ks_哈佛医学院开发出新的Cas9变体,可以靶向基因组绝大部分序列...
  5. HttpClient+jsoup登录+解析 163邮箱
  6. 用神经网络分类3*3矩阵
  7. python grep 列表_关于python:跨多个文档的字符串搜索 – grep?
  8. php-fpm 找不到 php-cgi.sock 怎么办
  9. dataframe第二列 r语言_R语言-数据框
  10. python导入pandas具体步骤方法_python导入pandas具体步骤方法-
  11. 如何学习Linux / 新手入门
  12. php中自动转换、强制转换、其他数据类型和bool转换
  13. swagger: fetching resource list: http://localhost:8080/template/v2/api-docs?group=springboot-templat
  14. C++奥赛一本通递推题解
  15. 一张纸厚度是多少毫米_科学有意思 |一张纸对折,最多只能折9次?不信你试一试...
  16. 为什么300的并发能把支持最大连接数4000数据库压死
  17. html面中select下拉框回显,select下拉框数据回显
  18. 程序员的圣诞节是怎么样的?
  19. 无人驾驶实践进阶——定位
  20. 信贷决策问题 —— 基于国赛-19C的数据挖掘练习

热门文章

  1. 澳大利亚的父母喜欢女孩,如果生出来的第一个是女孩,就不再生了,如果是男孩就继续生,直到生到第一个女孩为止,问若干年后,男女的比例是多少?
  2. mysql5.7下载 阿里云_运维CentOS7下mysql 5.7 下载并安装
  3. 【jsp中c标签的使用以及获取数据】
  4. 能上网但找不到网络里的计算机,网络中找不到共享电脑怎么办解决方法
  5. 中兴高管调整:为什么是殷一民?
  6. 还有人在用集团电话交换机吗
  7. BI数据库管理RPD配置
  8. 美国医生教我的育儿经验~~(转帖)
  9. php中mktime函数,PHP函数mktime
  10. org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nes