arm嵌入式系统计算器设计.docx
- 文档编号:985267
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:21
- 大小:33.47KB
arm嵌入式系统计算器设计.docx
《arm嵌入式系统计算器设计.docx》由会员分享,可在线阅读,更多相关《arm嵌入式系统计算器设计.docx(21页珍藏版)》请在冰点文库上搜索。
arm嵌入式系统计算器设计
嵌入式系统设计报告
题目:
触摸式计算器设计
姓名:
姜涛
学号:
x05610117
班级:
05电子(11)班
指导老师:
沈军民
一、课程任务
本电子系统的功能是借助ARM7教学实验箱,使用S3C44B0三星处理器能及触摸屏及LCD显示屏等硬件编写程序来实现计算器的设计。
实验要求:
1、要用触摸屏来实现
2、能够具有触摸按键选择功能,并且具有显示数字功能
3、可以实现四则运算功能
二、软件实现流程图
三、主程序:
#include"44b.h"
#include"uhal.h"
#include"option.h"
#include"def.h"
#include"tchScr.h"
#include"myuart.h"
#include"tchScr.h"
#include"maro.h"
#pragmaimport(__use_no_semihosting_swi)//ensurenofunctionsthatusesemihosting
externU32LCDBuffer[240][320];
U32jcolor;
intnumber=0;//记录数字
intnumber1=0;
charsignal;
intmain(void)
{
inti,j,k;
intm,n;
ARMTargetInit();//开发版初始化
LCD_Init();//LCD初始化
/*for(i=0;i<9;i++)
{switch(i)
{case0:
jcolor=0x00000000;//RGB均为0黑色
break;
case1:
jcolor=0x000000e0;//R红色
break;
case2:
jcolor=0x0000d0e0;//RandG橙色
break;
case3:
jcolor=0x0000e0e0;//RandG黄
break;
case4:
jcolor=0x0000e000;//G绿色
break;
case5:
jcolor=0x00e0e000;//GB青色
break;
case6:
jcolor=0x00e00000;//B蓝色
break;
case7:
jcolor=0x00e000e0;//RandB紫色
break;
case8:
jcolor=0x00e0e0e0;//RGB白色
break;
}
*/
jsqInit();
getNum(235,7,0);
LCD_Refresh();
while
(1){
TchScr_Test();
Delay(1000);
}
return0;
}
getNum(intx,inty,intnum){
inti,j;
for(i=x;i<=x+8;i++)
for(j=y;j<=y+14;j++)
{
LCDBuffer[j][i]=0x00000000;
switch(num){
case0:
if(i==x||i==x+8)LCDBuffer[j][i]=0x0000e000;
if(j==y||j==y+14)LCDBuffer[j][i]=0x0000e000;
break;
case1:
if(i==x+8)LCDBuffer[j][i]=0x0000e000;
break;
case2:
if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;
if((i==x&&j>=y+7)||(i==x+8&&j<=y+7))LCDBuffer[j][i]=0x0000e000;
break;
case3:
if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;
if(i==x+8)LCDBuffer[j][i]=0x0000e000;
break;
case4:
if(j==y+7)LCDBuffer[j][i]=0x0000e000;
if(i==x&&j<=y+7)LCDBuffer[j][i]=0x0000e000;
if(i==x+8)LCDBuffer[j][i]=0x0000e000;
break;
case5:
if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;
if((i==x&&j<=y+7)||(i==x+8&&j>=y+7))LCDBuffer[j][i]=0x0000e000;
break;
case6:
if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;
if(i==x||(i==x+8&&j>=y+7))LCDBuffer[j][i]=0x0000e000;
break;
case7:
if(i==x+8)LCDBuffer[j][i]=0x0000e000;
if(j==y)LCDBuffer[j][i]=0x0000e000;
break;
case8:
if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;
if(i==x||i==x+8)LCDBuffer[j][i]=0x0000e000;
break;
case9:
if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;
if((i==x&&j<=y+7)||i==x+8)LCDBuffer[j][i]=0x0000e000;
break;
}
}
}
getOp(){
inti,j;
for(i=235;i<=243;i++)
for(j=7;j<21;j++)
{
switch(signal){
case'+':
if(j==14||i==239)LCDBuffer[j][i]=0x00e00000;break;
case'-':
if(j==14)LCDBuffer[j][i]=0x00e00000;break;
case'*':
if(j+i==245||j-i==221)LCDBuffer[j][i]=0x00e00000;break;
case'/':
if(j-i==221)LCDBuffer[j][i]=0x00e00000;break;
}
}
}
jsqInit(){
intk,i,j;
for(k=0;k<260;k++)
for(j=i*32;j
{
LCDBuffer[2][k+10]=0x00e00000;
LCDBuffer[42][k+10]=0x00e00000;
LCDBuffer[215][105]=0x00e00000;//'.'
LCDBuffer[107][235]=0x00e00000;//'/'
LCDBuffer[117][235]=0x00e00000;//'/'
}
for(k=0;k<10;k++)
for(j=i*32;j
{
LCDBuffer[57][k+100]=0x00e00000;//‘2’的位置
LCDBuffer[67][k+100]=0x00e00000;
LCDBuffer[77][k+100]=0x00e00000;
LCDBuffer[57][k+165]=0x00e00000;//‘3’的位置
LCDBuffer[67][k+165]=0x00e00000;
LCDBuffer[77][k+165]=0x00e00000;
LCDBuffer[112][k+35]=0x00e00000;//‘4’的位置
LCDBuffer[102][k+100]=0x00e00000;//‘5’的位置
LCDBuffer[112][k+100]=0x00e00000;
LCDBuffer[122][k+100]=0x00e00000;
LCDBuffer[102][k+165]=0x00e00000;//‘6’的位置
LCDBuffer[112][k+165]=0x00e00000;
LCDBuffer[122][k+165]=0x00e00000;
LCDBuffer[147][k+35]=0x00e00000;//‘7’的位置
LCDBuffer[147][k+100]=0x00e00000;//‘8’的位置
LCDBuffer[157][k+100]=0x00e00000;
LCDBuffer[167][k+100]=0x00e00000;
LCDBuffer[147][k+165]=0x00e00000;//‘9’的位置
LCDBuffer[157][k+165]=0x00e00000;
LCDBuffer[167][k+165]=0x00e00000;
LCDBuffer[192][k+35]=0x00e00000;//‘0’的位置
LCDBuffer[212][k+35]=0x00e00000;
LCDBuffer[157][k+230]=0x00e00000;//‘-’的位置
LCDBuffer[202][k+165]=0x00e00000;//‘+’的位置
LCDBuffer[200][k+230]=0x00e00000;//‘=’的位置
LCDBuffer[204][k+230]=0x00e00000;
LCDBuffer[112][k+230]=0x00e00000;//'/'
}
for(k=0;k<60;k++)
for(j=i*32;j
{
LCDBuffer[47][k+10]=0x00e00000;
LCDBuffer[87][k+10]=0x00e00000;
LCDBuffer[47][k+75]=0x00e00000;
LCDBuffer[87][k+75]=0x00e00000;
LCDBuffer[47][k+140]=0x00e00000;
LCDBuffer[87][k+140]=0x00e00000;
LCDBuffer[47][k+205]=0x00e00000;
LCDBuffer[87][k+205]=0x00e00000;
LCDBuffer[92][k+10]=0x00e00000;
LCDBuffer[132][k+10]=0x00e00000;
LCDBuffer[92][k+75]=0x00e00000;
LCDBuffer[132][k+75]=0x00e00000;
LCDBuffer[92][k+140]=0x00e00000;
LCDBuffer[132][k+140]=0x00e00000;
LCDBuffer[92][k+205]=0x00e00000;
LCDBuffer[132][k+205]=0x00e00000;
LCDBuffer[137][k+10]=0x00e00000;
LCDBuffer[177][k+10]=0x00e00000;
LCDBuffer[137][k+75]=0x00e00000;
LCDBuffer[177][k+75]=0x00e00000;
LCDBuffer[137][k+140]=0x00e00000;
LCDBuffer[177][k+140]=0x00e00000;
LCDBuffer[137][k+205]=0x00e00000;
LCDBuffer[177][k+205]=0x00e00000;
LCDBuffer[182][k+10]=0x00e00000;
LCDBuffer[222][k+10]=0x00e00000;
LCDBuffer[182][k+75]=0x00e00000;
LCDBuffer[222][k+75]=0x00e00000;
LCDBuffer[182][k+140]=0x00e00000;
LCDBuffer[222][k+140]=0x00e00000;
LCDBuffer[182][k+205]=0x00e00000;
LCDBuffer[222][k+205]=0x00e00000;
}
jcolor=0x00e00000;
for(i=0;i<40;i++)
{
if(i==80||i==160)
jcolor<<=8;
for(j=288;j<320;j++)
{
LCDBuffer[i+2][10]=0x00e00000;
LCDBuffer[i+2][270]=0x00e00000;
LCDBuffer[i+47][10]=0x00e00000;
LCDBuffer[i+47][70]=0x00e00000;
LCDBuffer[i+47][75]=0x00e00000;
LCDBuffer[i+47][135]=0x00e00000;
LCDBuffer[i+47][140]=0x00e00000;
LCDBuffer[i+47][200]=0x00e00000;
LCDBuffer[i+47][205]=0x00e00000;
LCDBuffer[i+47][265]=0x00e00000;
LCDBuffer[i+92][10]=0x00e00000;
LCDBuffer[i+92][70]=0x00e00000;
LCDBuffer[i+92][75]=0x00e00000;
LCDBuffer[i+92][135]=0x00e00000;
LCDBuffer[i+92][140]=0x00e00000;
LCDBuffer[i+92][200]=0x00e00000;
LCDBuffer[i+92][205]=0x00e00000;
LCDBuffer[i+92][265]=0x00e00000;
LCDBuffer[i+137][10]=0x00e00000;
LCDBuffer[i+137][70]=0x00e00000;
LCDBuffer[i+137][75]=0x00e00000;
LCDBuffer[i+137][135]=0x00e00000;
LCDBuffer[i+137][140]=0x00e00000;
LCDBuffer[i+137][200]=0x00e00000;
LCDBuffer[i+137][205]=0x00e00000;
LCDBuffer[i+137][265]=0x00e00000;
LCDBuffer[i+182][10]=0x00e00000;
LCDBuffer[i+182][70]=0x00e00000;
LCDBuffer[i+182][75]=0x00e00000;
LCDBuffer[i+182][135]=0x00e00000;
LCDBuffer[i+182][140]=0x00e00000;
LCDBuffer[i+182][200]=0x00e00000;
LCDBuffer[i+182][205]=0x00e00000;
LCDBuffer[i+182][265]=0x00e00000;
}
}
jcolor=0x00e00000;
for(i=0;i<10;i++)
{
if(i==80||i==160)
jcolor<<=8;
for(j=288;j<320;j++)
{
LCDBuffer[i+67][100]=0x00e00000;//‘2’
LCDBuffer[i+57][110]=0x00e00000;
LCDBuffer[i+102][35]=0x00e00000;//‘4’
LCDBuffer[i+102][100]=0x00e00000;//‘5’
LCDBuffer[i+112][110]=0x00e00000;
LCDBuffer[i+112][175]=0x00e00000;//‘6’
LCDBuffer[i+147][165]=0x00e00000;//‘9’
LCDBuffer[i+197][170]=0x00e00000;//‘+’
}
}
jcolor=0x00e00000;
for(i=0;i<20;i++)
{
if(i==80||i==160)
jcolor<<=8;
for(j=288;j<320;j++)
{
LCDBuffer[i+62][40]=0x00e00000;//‘1’
LCDBuffer[i+57][175]=0x00e00000;//‘3’
LCDBuffer[i+102][40]=0x00e00000;//‘4’
LCDBuffer[i+102][165]=0x00e00000;//‘6’
LCDBuffer[i+147][45]=0x00e00000;//‘7’
LCDBuffer[i+147][100]=0x00e00000;//‘8’
LCDBuffer[i+147][110]=0x00e00000;
LCDBuffer[i+147][175]=0x00e00000;//‘9’
LCDBuffer[i+192][35]=0x00e00000;//‘0’
LCDBuffer[i+192][45]=0x00e00000;
}
}
//return;
//}
}
tchNum(intx,inty){
inti;
intx1,y1;
x1=(x-5)/65;
y1=(y-42)/45;
if(number<99999999||(x1==1&&y1==3)||(x1==2&&y1==3)||x1==3){
switch(x1){
case0:
switch(y1){
case0:
number=number*10+1;return;
case1:
number=number*10+4;return;
case2:
number=number*10+7;return;
case3:
number=number*10;return;
}
case1:
switch(y1){
case0:
number=number*10+2;return;
case1:
number=number*10+5;return;
case2:
number=number*10+8;return;
case3:
signal='*';clear();getOp();number1=number;number=0;return;
}
case2:
switch(y1){
case0:
number=number*10+3;return;
case1:
number=number*10+6;return;
case2:
number=number*10+9;return;
case3:
signal='+';
clear();
getOp();
number1=number;
number=0;
return;
}
case3:
switch(y1){
case0:
number=0;
number1=0;
clear();
getNum(235,7,0);
return;
case1:
signal='/';clear();getOp();number1=number;number=0;return;
case2:
signal='-';clear();getOp();number1=number;number=0;return;
case3:
operation();return;
}
}
}
}
showNum()
{
//tchNum();
intws=1;
intn;
n=number;
Uart_Printf("$$$$$$$$number=%d",n);
Uart_Printf("$$$$$$$$number=%d",number);
if(number<0){isFu();n=-n;}
while(n!
=0||n/10!
=0){
switch(ws){
case1:
getNum(235,7,n%10);break;
case2:
getNum(220,7,n%10);break;
case3:
getNum(205,7,n%10);break;
case4:
getNum(190,7,n%10);break;
case5:
getNum(175,7,n%10);break;
case6:
getNum(160,7,n%10);break;
case7:
getNum(145,7,n%10);b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 嵌入式 系统 计算器 设计