资源简介
包含电路图DSN,整个工程的文件,利用原有的电路AD及LED数码管显示等例子,进行整合。实现由AD转换器采集温度(用可调电阻模拟),温度范围-30~+70℃
(1)温度在数码管上显示。
(2)当温度超出一定范围(大于50℃),用LED指示灯进行闪烁报警。
(3)用红黄绿灯表示不同温度段,-30-0℃,绿灯;0-40℃,黄
利用终端调节设备显示
代码片段和文件信息
#include “config.h“
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
for(i=0; i<5000; i++);
}
void UART0Init(uint32 bps)
{
uint16 Fdiv;
PINSEL0 = (PINSEL0 & (~0x0F)) | 0x05;
U0LCR = 0x83;
Fdiv = (Fpclk / 16) / bps;
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03;
}
display1(int x)
{
int imnpqtemp;
IO0SET=0Xff4f;
IO0CLR=0Xff4f;
p=abs(x)/10;
q=abs(x)-10*p;
n=(p<<12)+(q<<8);
IO0SET=n;
if(x<=0&&x>=-30)
{
IO0CLR=0X004f;
IO0SET=1<<6;
return 0;
}
else if(x>0&&x<40)
{
IO0CLR=0X004f;
IO0SET=1<<3;
return 0;
}
else if(x>=40&&x<=70)
{
IO0CLR=0X004f;
if(x<50)
{IO0SET=1<<2;
return 0;
}
else{
return 0;
}
}
}
display2(int x2)
{
int i2m2n2p2q2temp2;
IO0SET=0XD0ff0000;
IO0CLR=0XD0ff0000;
p2=abs(x2)/10;
q2=abs(x2)-10*p2;
n2=(p2<<20)+(q2<<16);
IO0SET=n2;
if(x2<=0&&x2>=-30)
{
IO1CLR=0xffffffff;
IO0CLR=0XD0000000;
IO1CLR=0xffffffff;
IO0SET=0X0080;
IO0CLR=0X0080;
IO1SET=1<<24;
return 0;
}
else if(x2>0&&x2<40)
{
IO1CLR=0xffffffff;
IO0CLR=0XD0000000;
IO0SET=0X0080;
IO0CLR=0X0080;
IO0SET=0<<30;
IO1SET=1<<25;
return 0;
}
else if(x2>=40&&x2<=70)
{
IO0CLR=0XD0000000;
if(x2<50)
{
IO0SET=0X0080;
IO1CLR=0xffffffff;
IO0CLR=0X0080;
IO1SET=1<<26;
return 0;
}
else{
return 0;
}
}
}
main()
{ int data1data2indata2please1=0;
char indata1;
uint32 ADC_Data;
UART0Init(9600);
AD0CR = (1 << 0) |
((Fpclk / 1000000 - 1) << 8) |
(0 << 16) |
(0 << 17) |
(1 << 21) |
(0 << 22) |
(1 << 24) |
(0 << 27);
DelayNS(10);
ADC_Data = AD0DR;
PINSEL0=0X00000005;
PINSEL1=0X01700000;
PINSEL2 =0X00000000;
IO0DIR=0Xffffffff;
PINSEL2 =0X00000000;
IO1DIR= 0xffffffff;
IO1CLR=0xffffffff;
printf(“Please choose mode 0/1/2 \r\n“ );
while((U0LSR&0x01)==0)
{
}
indata1=U0RBR;
indata2=indata1-‘0‘;
if(indata2==0||indata2==1||indata2==2)
{
printf(“mode%c \r\r\n“indata1 );
printf(“*************************************** \r\r\n“ );
}
else
{
printf(“Erroryou can only choose 0/1/2 \r\n“ );
}
while(1)
{
if(data1>=50&&data1<=70&&data2>=50&&data2<=70)
{
IO0SET=1<<2;
IO1SET=1<<26;
DelayNS(10);
IO0CLR=1<<2;
IO1CLR=1<<26;
DelayNS(10);
IO0SET=1<<2;
IO1SET=1<<26;
DelayNS(10);
IO0CLR=1<<2;
IO1CLR=1<<26;
DelayNS(10);
IO0SET=1<<2;
IO1SET=1<<26;
DelayNS(10);
IO0CLR=1<<2;
IO1CLR=1<<26;
DelayNS(10);
}
else if(data1>=50&&data1<=70)
{
IO0SET=1<<2;
DelayNS(10);
IO0CLR=1<<2
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 248182 2020-05-21 00:14 adc.DSN
文件 3419 2020-05-21 00:14 adc.PWI
文件 248182 2020-05-21 00:14 Last Loaded adc.DBK
目录 0 2020-05-21 00:13 out\
文件 25956 2020-05-21 00:13 out\AD.axf
文件 13752 2020-05-21 00:13 out\AD.hex
文件 27143 2020-05-21 00:13 out\AD.htm
文件 335 2020-05-21 00:13 out\AD.lnp
文件 95944 2020-05-21 00:13 out\AD.plg
文件 1102 2020-05-21 00:13 out\AD.tra
文件 13035 2020-05-21 00:13 out\lpcuart.crf
文件 219 2020-05-21 00:13 out\lpcuart.d
文件 26520 2020-05-21 00:13 out\lpcuart.o
文件 14220 2020-05-21 00:13 out\main.crf
文件 144 2020-05-21 00:13 out\main.d
文件 30320 2020-05-21 00:13 out\main.o
文件 29 2020-05-21 00:13 out\Startup.d
文件 3132 2020-05-21 00:13 out\Startup.o
文件 13583 2020-05-21 00:13 out\target.crf
文件 204 2020-05-21 00:13 out\target.d
文件 28320 2020-05-21 00:13 out\target.o
目录 0 2020-05-21 00:14 SRC\
文件 68490 2020-05-21 00:13 SRC\AD.map
文件 152 2013-04-28 11:37 SRC\AD.plg
文件 143497 2020-05-21 00:14 SRC\AD.uvopt
文件 14897 2013-04-28 11:37 SRC\AD.uvproj
文件 1313 2020-05-21 00:13 SRC\AD_Target 1.dep
文件 143172 2020-05-20 21:56 SRC\AD_uvopt.bak
文件 14892 2013-04-27 20:41 SRC\AD_uvproj.bak
文件 2092 2011-09-26 17:22 SRC\CONFIG.H
文件 1383 2011-09-06 00:17 SRC\I2CINT.H
............此处省略15个文件信息
- 上一篇:IEC101-103-104规约分析程序
- 下一篇:4000套安卓地址
评论
共有 条评论