西安欧亚学院本科毕业论文(设计)
ldr sp,=SFE(FIQ_STACK) ;
bic r0,r0,#MODE_MSK ; //清除模式位 orr r0,r0,#IRQ_MODE ; //设置中断请求位 msr cpsr_c,r0 ; //改变模式位 ldr sp,=SFE(IRQ_STACK) ; //结束中断请求堆栈 bic r0,r0,#MODE_MSK ; //清除模式位 orr r0,r0,#SYS_MODE ; //设置系统模式位 msr cpsr_c,r0 ; //改变模式位 ldr sp,=SFE(CSTACK) ; //结束堆栈类
5.2 主程序
图5-1
主环路程序代码: #include \#include \#include \#include \#include \#include \#include \
21
西安欧亚学院本科毕业论文(设计)
int main (void) { uint8
lines[]={0xfd,0x23,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x90,0xdd,0xcc,0xbb,0xaa}; //画线数组
uint8
addrxy1[]={0xfd,0x23,0x00,0x08,0,160,0,45,0,160,0,20,0xdd,0xcc,0xbb,0xaa};
//uint8 addrxy1[]=
uint8 state=0; // 界面状态变量定义、赋值
uint16 touch_x=0x0; // 触摸点X坐标变量定义/赋(任意)初值 uint16 touch_y=0x0; // 触摸点Y坐标变量定义/赋(任意)初值 uint8 pic_id=0x1f; // 图片编号变量定义、赋值 uint8 option3=0x3; //二级目录启动停止判断
TargetResetInit(); // 目标板初始化 UART1_Init(); // UART1初始化
DelayMS(100); // 用于做其他处理或延时,使得彩屏终端上电完 SetColor(0x6781F,0x06ff); // 白底蓝 WaitNoBusy(); // LCM 空闲判跳 DisPicture(2); //显示第1幅图片 SetColor(0x9152,0x6eff);
ClearScreen(); // 清屏(调色板设置后必须清屏) DelayMS(10);
PutString(10,10,0x12,\二零一二界毕业设计\ DelayMS(100);
PutString(65,60,0x13,\基于物联网的\ DelayMS(100);
PutString(100,100,0x13,\安保系统\ DelayMS(100);
PutString(170,190,0x12,\西安欧亚学院\ DelayMS(100);
PutString(150,210,0x12,\通信工程 四人小组\
DelayMS(3000);
PageMenu(); // 菜单函数
22
西安欧亚学院本科毕业论文(设计)
for(;;) // 循环体 {
WaitNoBusy(); // 无触摸判跳 switch(state) // 散转(条件跳转) {
//主菜单界面 case 0:
if(GetTouchValue(&touch_x,&touch_y)) // 触摸判断,返回触摸值 {
pic_id=GetTouchID(touch_x,touch_y); // 获得图片ID,同时改变颜色
if(pic_id<12) // ID 边界判跳 {
Page2(); panbie(pic_id);
state=1; // 跳转界面状态 } else break; } break;
case 1:
if(GetTouchValue(&touch_x,&touch_y)) {
option3=TouchValid(touch_x,touch_y); {
if(option3==0) { Page2();
state=panbie_bt(pic_id); }
else if(option3==1) { Page2(); panbie(pic_id);
23
西安欧亚学院本科毕业论文(设计)
state=1; }
else if(option3==2) {
WaitNoTouch();
DelayMS(15); // 延时 state=2; }
else if(option3==3) {
WaitNoTouch();
DelayMS(15); state=2; } else {
WaitNoTouch(); state=1; } break; } } break;
//在下级界面中被按了返回键 case 2: PageMenu(); state=0; break; default:break; } } }
24
// 延时