DSP设计科学计算器实验报告


    基DSP科学型计算器设计
    题目求:
    基DSP F2812利实验箱软件编程设计款科学型计算器满足功:
    (1) 够实现键数值识数码显示
    (2) 够进行简单加减运算
    (3) 够进行数运算
    二思路设计
    1TMS320X2812实验箱资源功简介:
    ●采TMS320X2812片GPIOAGPIOB作IO口接受实验箱键值进行判断时设置两IO口进行循环01发送row1row2实现键盘扫描实现识k11~k23值
    ●箱k1~k8k11~k23作计算器键盘k1~k80~7k118k129k13清零键k21键k22+k23

    三综合设计程序分析
    LED显示程
    循环扫描进入模块
    键值输入



    ●程序框图
    #include DSP28_Deviceh
    引脚定义:
    #define Key1 GpioDataRegsGPADATbitGPIOA0 0
    #define Key2 GpioDataRegsGPADATbitGPIOA1 1
    #define Key3 GpioDataRegsGPADATbitGPIOA2 2
    #define Key4 GpioDataRegsGPADATbitGPIOA3 3
    #define Key5 GpioDataRegsGPADATbitGPIOA4 4
    #define Key6 GpioDataRegsGPADATbitGPIOA5 5
    #define Key7 GpioDataRegsGPADATbitGPIOA8 6
    #define Key8 GpioDataRegsGPADATbitGPIOA9 7*
    #define row1 GpioDataRegsGPBDATbitGPIOB0 PWM7
    #define col1 GpioDataRegsGPBDATbitGPIOB1 PWM8
    #define row2 GpioDataRegsGPBDATbitGPIOB2 PWM9
    #define col2 GpioDataRegsGPBDATbitGPIOB3 PWM10
    #define col3 GpioDataRegsGPBDATbitGPIOB4 PWM11
    *k1~k8k11~k23作计算器键盘k1~k80~7k118k129k13清零键k21键k22+k23
    #define Add 0x0A
    #define Sub 0x0B
    #define Clear 0x0C
    #define multi 0x04
    #define divi 0x08
    #define dot 0x0D
    unsigned char ScanKey(void)
    int num(void)
    unsigned int Enter(void)
    int ifdot(void)
    Relative to spi_receivenot use rightnow
    unsigned int Spi_VarRx[100]
    unsigned int ijkey
    extern unsigned int Int_Flag
    函数:
    void main(void)
    { unsigned int countnumshownum countnum1 countnum2count0costep1math0
    int noun1dot10
    countnum 0countnum1 0countnum2 0co0

    while(1)
    {
    nounnum()键值
    keyScanKey()
    dot1ifdot()
    if(key0)nounkey
    输入第数
    if(noun>0&&noun<9)
    { if(dot10)
    {if(step1)
    {
    if(count<4)
    {
    count++
    countnum1 noun+countnum1*10
    }
    else
    {
    count0countnum10
    }
    countnumcountnum1
    shownum BIN2BCD(countnum)
    ShowBCD(shownum)
    }
    else if(step2)
    {
    if(count<4)
    {
    count++
    countnum2 noun+countnum2*10
    }
    else
    {
    count0countnum20
    }
    shownum BIN2BCD(countnum2)
    ShowBCD(shownum)
    }
    }
    if(dot11)
    {
    if(step1)
    {
    if(count<4)
    {
    count++
    countnum1 noun+countnum1*10
    }
    else
    {
    count0countnum10
    }
    countnumcountnum1
    shownum BIN2BCD(countnum)
    ShowBCD1(shownum)
    }
    else if(step2)
    { if(count<4)
    {
    count++
    countnum2 noun+countnum2*10
    }
    else
    {
    count0countnum20
    }
    shownum BIN2BCD(countnum2)
    ShowBCD1(shownum)
    }
    }
    }
    if(nounAdd)
    { step2count0
    math1
    }
    else if(nounSub)
    {
    step2count0
    math2
    }
    else if(nounClear)
    {
    countnum0step1
    countnum10
    countnum20
    math0
    count0
    noun1
    shownum BIN2BCD(countnum)
    ShowBCD(shownum)
    }
    else if(Enter()1)
    {
    switch (math)
    {
    case 1countnumcountnum1+countnum2break
    case 2countnumcountnum1countnum2break
    defaultbreak
    }
    shownum BIN2BCD(countnum)
    ShowBCD(shownum)
    math0
    countnum10countnum20
    step1
    }
    }
    }
    K11K23键原理图(键盘扫描):

    等键分配函数:
    unsigned int Enter(void)
    {
    unsigned int k11k12k13k21k22k23
    unsigned int c10c20c30c21c11c31
    k110k120k130k210k220k230

    GpioDataRegsGPBDATbitGPIOB21row2
    GpioDataRegsGPBDATbitGPIOB00row1
    c10col1 c20col2c30col3
    GpioDataRegsGPBDATbitGPIOB20row2
    GpioDataRegsGPBDATbitGPIOB01row1
    c11col1 c21col2c31col3

    if(c110 & c101)k211
    if(k21)return 1
    else return 0
    }
    分配加减清零数点键 :
    unsigned char ScanKey(void)
    { unsigned int k11k12k13k21k22k23
    unsigned int c10c20c30c21c11c31
    k110k210k120k220k210k230k130
    GpioDataRegsGPBDATbitGPIOB21row2
    GpioDataRegsGPBDATbitGPIOB00row1
    c10col1 c20col2c30col3
    GpioDataRegsGPBDATbitGPIOB20row2
    GpioDataRegsGPBDATbitGPIOB01row1
    c11col1 c21col2c31col3
    if(c210 & c201)k22 1
    if(c211 & c200)k12 1
    if(c310 & c301)k23 1
    if(c311 & c300)k13 1
    if(k221)KeyDataAdd
    else if(k231)KeyDataSub
    else if(k131)KeyDataClear
    else if(k121)KeyDatadot
    else KeyData0
    return(KeyData)
    }
    分配0~7数字键:
    int num(void)
    { int x
    unsigned int c10c20c30k
    unsigned int c11c21c31
    unsigned int k11k12k13k21k22k23
    k110k120k130k210k220k230
    GpioDataRegsGPBDATbitGPIOB21row2
    GpioDataRegsGPBDATbitGPIOB00row1
    c10col1 c20col2c30col3
    GpioDataRegsGPBDATbitGPIOB20row2
    GpioDataRegsGPBDATbitGPIOB01row1
    c11col1 c21col2c31col3
    if(c111 & c100)k111
    if(Key10)x0
    else if(Key20)x1
    else if(Key30)x 2
    else if(Key40)x 3
    else if(Key50)x4
    else if(Key60)x5
    else if(Key70)x6
    else if(Key80)x7
    else if(k11)x8
    else x1
    return x }
    分配数点键:
    int ifdot(void)
    {
    int x
    unsigned int c10c20c30k
    unsigned int c11c21c31
    unsigned int k11k12k13k21k22k23
    k110k120k130k210k220k230
    for(k0k<2k++)
    {
    GpioDataRegsGPBDATbitGPIOB21row2
    GpioDataRegsGPBDATbitGPIOB00row1
    c10col1 c20col2c30col3
    GpioDataRegsGPBDATbitGPIOB20row2
    GpioDataRegsGPBDATbitGPIOB01row1
    c11col1 c21col2c31col3
    if(c211 & c200)k121
    }
    if(k12)x1数格式
    else x0
    return x
    }
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    南邮dsp上机实验报告

    南京邮电大学实 验 报 告实验名称:离散时间信号与系统的时、频域表示离散傅立叶变换和z变换 数字滤波器的频域分析和实现数字滤波器的设计课程名称 数字信号处理A(双语) ...

    1年前   
    326    0

    DSP主控板硬件设计

    DSP主控板硬件设计1 课题来源及研究的目的和意义产品研制、生产、使用过程中,先进的检测技术和检验设备是检测产品性能参数及缩短研制时间的有利保障。因此测试设备是整个产品生命周期内不可或缺的关键...

    12年前   
    388    0

    ARM课程设计报告简易计算器设计

    评阅教师评语:课程设计成绩考勤成绩实做成绩报告成绩总评成绩指导教师签名:《嵌入式系统》课 程 设 计 报 告论文题目: 简易计算器设计 学院(系): 电子信...

    1年前   
    388    0

    DSP原理及应用大作业

     DSP原理及应用大作业题 目: IIR算法的软件实验 学生姓名: 学 号: 院(系): 信息工程学院 专...

    3年前   
    870    0

    计算器设计报告程序设计与课题设计

    程序设计与课题设计计算器设计报告电信索引概要……………………………………………………………………………………3一.设计任务与目标…………………………………………………………………3 1.基本功...

    1年前   
    283    0

    初中科学实验报告

    初中科学实验报告  蜡烛吹不灭思考:   用力吹燃烧的蜡烛,却怎么也吹不灭。你知道怎样做到这一点吗?   材料:1根蜡烛、火柴、1个小漏斗、1个平盘   操作:1. 点燃蜡烛,并固定在平盘上。...

    12年前   
    661    0

    单摆的设计与研究(实验报告)

    肇 庆 学 院电子信息与机电工程 学院 普通物理实验 课 实验报告 级 班 组 实验合作者 实验日期 姓名: 学号 老师评定 ...

    1年前   
    755    0

    软件设计过程实验报告

     软件开发过程 实验一 软件需求分析 一、目的和意义 对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。为下面的实习奠定基础。 二、实习内容 1、确定软件题目(学生可...

    11年前   
    20024    0

    信号与系统设计性设计性实验报告

    《信号与系统实验》综合设计性实验报告册实验项目:选频网络的设计及应用研究 学院:物理与电子工程学院 年级专业班: 电子 姓名: 学号: 成绩: 实验地点:电子楼指导老师:...

    1年前   
    295    0

    例谈科学探究实验与实验报告

    例谈科学探究实验与实验报告  例谈科学探究实验与实验报告     山东菏泽曹县第二中学 陈焘     摘要:科学探究实验是新课程着重介绍的知识点,同时又是当前基础教育课程改革的热点、亮点和难点...

    9年前   
    468    0

    基于AT89C51单片机的简易计算器的设计

     毕 业 设 计 题目 简易计算器的制作 ...

    5年前   
    2326    0

    电气控制技术课程设计基于PLC电子计算器课程设计

     电气控制技术课程设计说明书 电子计算器 学生姓名: 专 业: 自动化 班 级...

    1年前   
    294    0

    ping程序课程设计实验报告

    Windows网络程序设计课程设计 课 程 名 称 ping程序设计 姓   名 ...

    2年前   
    457    0

    大学物理实验课程设计实验报告

    大学物理实验课程设计实验报告  北方民族大学    大学物理实验(设计性实验)    实验报告   指导老师:王建明    姓    名:张国生    学    号:XX0233    学  ...

    9年前   
    709    0

    《高级语言程序设计》实验报告

    1.掌握在Visual C++6.0环境下C程序的建立、编辑、编译和执行过程。2.掌握C程序的最基本框架结构,完成简单程序的编制与运行。3.了解基本输入输出函数scanf()、printf ()...

    2年前   
    416    0

    java课程设计实验报告样例

    分数_______嘉应学院计算机学院实验报告课程名称:面向对象程序设计课程设计(Java) 实验名称:”动物换位”程序设计 指导教师:肖振球 实验地点:_居家学习_实验时间:2020.03...

    4年前   
    852    0

    C语言程序设计实验报告

    C语言程序设计实验报告  实验名称 计算出1000以内10个最大素数之和   实验目的   1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语...

    10年前   
    922    0

    Visual FoxPro 课程设计实验报告

     中国最大的商务办公文档下载基地: http://www.word98.com/ ╔---------------------------------------------...

    10年前   
    11751    0

    实验报告-电力电子课程设计

    掌握晶闸管仿真模型模块各参数的含义。理解晶闸管的特性。

    4年前   
    1295    0

    远程在线考试系统设计实验报告

    系统设计实验报告 ——远程在线考试系统目 录软件需求说明书························1 ...

    11年前   
    667    0

    文档贡献者

    文***享

    贡献于2021-04-12

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档