DSP设计科学计算器实验报告Word文件下载.docx
- 文档编号:15403562
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:7
- 大小:31.46KB
DSP设计科学计算器实验报告Word文件下载.docx
《DSP设计科学计算器实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《DSP设计科学计算器实验报告Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
DSP28_Device.h"
引脚定义:
#defineKey1 GpioDataRegs.GPADAT.bit.GPIOA0//0
#defineKey2GpioDataRegs.GPADAT.bit.GPIOA1//1
#defineKey3GpioDataRegs.GPADAT.bit.GPIOA2//2
#defineKey4 GpioDataRegs.GPADAT.bit.GPIOA3//3
#defineKey5 GpioDataRegs.GPADAT.bit.GPIOA4//4
#defineKey6GpioDataRegs.GPADAT.bit.GPIOA5//5
#defineKey7GpioDataRegs.GPADAT.bit.GPIOA8//6
#defineKey8 GpioDataRegs.GPADAT.bit.GPIOA9//7*/
#definerow1 GpioDataRegs.GPBDAT.bit.GPIOB0//PWM7
#definecol1GpioDataRegs.GPBDAT.bit.GPIOB1//PWM8
#definerow2GpioDataRegs.GPBDAT.bit.GPIOB2//PWM9
#definecol2 GpioDataRegs.GPBDAT.bit.GPIOB3//PWM10
#definecol3GpioDataRegs.GPBDAT.bit.GPIOB4//PWM11
/*k1~k8,k11~k23作为计算器键盘。
k1~k8为0~7,k11为8,k12为9,k13为清零键,k21为“=”键,k22为+,k23为-
#defineAdd0x0A
#defineSub0x0B
#defineClear0x0C
#definemulti0x04
#definedivi0x08
#definedot0x0D
unsignedcharScanKey(void);
intnum(void);
unsignedintEnter(void);
intifdot(void);
//Relativetospi_receive,notuserightnow
unsignedintSpi_VarRx[100];
unsignedinti,j,key;
externunsignedintInt_Flag;
主函数如下:
voidmain(void)
{unsignedintcountnum,shownum,countnum1,countnum2,count=0,co,step=1,math=0;
intnoun=-1,dot1=0;
countnum=0;
countnum1=0;
countnum2=0;
co=0;
while
(1)
{
noun=num();
//键值
key=ScanKey();
dot1=ifdot();
if(key!
=0)noun=key;
//输入第一个数
if(noun>
=0&
&
noun<
=9)
{if(dot1==0)
{if(step==1)
{
if(count<
4)
{
count++;
countnum1=noun+countnum1*10;
}
else
{
count=0;
countnum1=0;
}
countnum=countnum1;
shownum=BIN2BCD(countnum);
ShowBCD(shownum);
}
elseif(step==2)
{
{
count++;
countnum2=noun+countnum2*10;
}
{
count=0;
countnum2=0;
}
shownum=BIN2BCD(countnum2);
}
if(dot1==1)
if(step==1)
ShowBCD1(shownum);
{ if(count<
}
if(noun==Add)
{ step=2;
count=0;
math=1;
}
elseif(noun==Sub)
{
step=2;
math=2;
elseif(noun==Clear)
countnum=0;
step=1;
countnum1=0;
countnum2=0;
math=0;
count=0;
noun=-1;
shownum=BIN2BCD(countnum);
ShowBCD(shownum);
elseif(Enter()==1)
switch(math)
{
case1:
countnum=countnum1+countnum2;
break;
case2:
countnum=countnum1-countnum2;
default:
}
shownum=BIN2BCD(countnum);
ShowBCD(shownum);
math=0;
countnum1=0;
step=1;
}
//K11至K23的按键原理图如下(键盘扫描):
"
等于"
按键分配函数如下:
unsignedintEnter(void)
{
unsignedintk11,k12,k13,k21,k22,k23;
unsignedintc10,c20,c30,c21,c11,c31;
k11=0;
k12=0;
k13=0;
k21=0;
k22=0;
k23=0;
GpioDataRegs.GPBDAT.bit.GPIOB2=1;
//row2
GpioDataRegs.GPBDAT.bit.GPIOB0=0;
//row1
c10=col1;
c20=col2;
c30=col3;
GpioDataRegs.GPBDAT.bit.GPIOB2=0;
GpioDataRegs.GPBDAT.bit.GPIOB0=1;
c11=col1;
c21=col2;
c31=col3;
if(c11==0&
c10==1)k21=1;
if(k21)return1;
elsereturn0;
}
分配加、减、清零及小数点的按键:
unsignedcharScanKey(void)
{unsignedintk11,k12,k13,k21,k22,k23;
unsignedintc10,c20,c30,c21,c11,c31;
GpioDataRegs.GPBDAT.bit.GPIOB2=1;
if(c21==0&
c20==1)k22=1;
if(c21==1&
c20==0)k12=1;
if(c31==0&
c30==1)k23=1;
if(c31==1&
c30==0)k13=1;
if(k22==1)KeyData=Add;
elseif(k
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 设计 科学 计算器 实验 报告