while((AD0DR&0x80000000)==0); //等待转换结束
AD0CR=AD0CR|(1<<24); //再次转换
while((AD0DR&0x80000000)==0); //等待转换结束
ADC_Data=AD0DR; //读取ADC结果
ADC_Data=(ADC_Data>>6)&0x3FF;
ADC_Data=ADC_Data *3300/1024;
sprintf(str,"Vin0=%dmV\r",ADC_Data) ;
GUI_PutString(150,50,str);
OSTimeDlyHMSM(0,0,0,50); //任务切换,交出cpu使用权
}
(3)用LCD显示实现图形的显示
这一部分的原理比较简单,本人就不再画流程图了,在本人的仿真系统上有两种方式来观看信号的情况和了解数据,一个是LCD显示,还有SPI七段显示器 。就美观,样式,以及编程难度的各方面本人都进行了考虑。LCD显示器美观大方,而且屏幕大,看起来较为清晰,也符合本人的要求,而且因为是仿真系统。并不用考虑成本以及稳定性的问题,本人果断选择了LCD显示器。
下面是代码:
//TASK 任务0/***/
void Task0 (void *pdata)
{
uint8 i,x,y;
char str[40];
extern uint8 *title0[];//
extern uint8 *helpall[][4];
pdata=pdata;
TargetInit();
GUI_Initialize();
GUI_SetColor(1,0); // 设置前景色和背景色
GUI_PutString(0,10,"OSStatInit delay 1 second.Please wait...") ;
GUI_PutString(0,30,"Set Clock tick and interrupt vectors...") ;
GUI_PutString(0,50,"Initialize the TargetBoard...waiting!...") ;
OSTimeDlyHMSM(0,0,0,50); //任务切换,交出cpu使用权
GUI_FillSCR(0x00); //全屏填充,清屏
while (1)
{
x=70;
y=0;
for(i=0;i<5;i++)
{GUI_PutHZ(x+18*i,y,(uint8 *)title0[i],16,16);
}
GUI_Rectangle(0,17,239,127,1);
sprintf(str,"#Tasks:");
GUI_PutString(96,109,str);
sprintf(str,"%02d",OSTaskCtr);
GUI_PutString(137,109,str);
sprintf(str,"#CPU Usage:");
GUI_PutString(159,109,str);
sprintf(str,"%02d",OSCPUUsage);
GUI_PutString(223,109,str);
sprintf(str,"#Task switch/sec:");
GUI_PutString(96,119,str);
sprintf(str,"%04d",OSCtxSwCtr);
GUI_PutString(197,119,str);
- 上一篇:磁悬浮的PID控制系统设计+MATLAB仿真
- 下一篇:51单片机的智能空调温度控制系统的设计+仿真图+源码
-
-
-
-
-
-
-
十二层带中心支撑钢结构...
电站锅炉暖风器设计任务书
java+mysql车辆管理系统的设计+源代码
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
乳业同业并购式全产业链...
河岸冲刷和泥沙淤积的监测国内外研究现状
大众媒体对公共政策制定的影响
杂拟谷盗体内共生菌沃尔...
当代大学生慈善意识研究+文献综述