燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx

上传人:b****5 文档编号:16430100 上传时间:2022-11-23 格式:DOCX 页数:13 大小:66.03KB
下载 相关 举报
燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx_第1页
第1页 / 共13页
燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx_第2页
第2页 / 共13页
燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx_第3页
第3页 / 共13页
燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx_第4页
第4页 / 共13页
燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx

《燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx》由会员分享,可在线阅读,更多相关《燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

燕山大学里仁学院仪表专业STM8S105S4校内实习程序文档格式.docx

voiddelay(u8i)//延时

{

while(i--);

}

voidmain(void)

u8*p1="

Hello,world.YSU"

;

u8*p2="

Name"

u8*p3="

Date"

u8*p4="

Temp"

u8*p5="

Humi"

u8*p6="

Name:

"

u8*p7="

SuSheng"

u8*p8="

Humidity:

u8*p9="

Temperature:

u8a=1;

u8b=1;

u16r;

u8time;

u8temp;

u8i,add;

u16t1,t2,f;

u16t=0;

u8bai,shi,ge;

u8wan1,qian1,bai1,shi1,ge1;

u16Conversion_Value1=0;

u16Conversion_Value=0;

//依次为年:

月,日,星期几,小时,分

Set1302(11,2,28,1,23,59);

TIM2_ICInit(TIM2_CHANNEL_1,TIM2_ICPOLARITY_RISING,TIM2_ICSELECTION_DIRECTTI,TIM2_ICPSC_DIV1,0);

TIM2_Cmd(ENABLE);

//使能TIM2计数

TIM2_ClearFlag(TIM2_FLAG_CC1);

GPIO_Init(GPIOC,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST);

GPIO_Init(GPIOB,(GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_0),GPIO_MODE_OUT_PP_LOW_FAST);

GPIO_Init(GPIOA,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST);

ADC1_DeInit();

ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,ADC1_CHANNEL_9,ADC1_PRESSEL_FCPU_D18,ADC1_EXTTRIG_TIM,DISABLE,ADC1_ALIGN_RIGHT,ADC1_SCHMITTTRIG_CHANNEL9,DISABLE);

ADC1_StartConversion();

lcd162a_Reset();

lcd162a_cls();

lcd162a_ePutstr(1,1,p1);

delay_ms(240);

while

(1)

{

if((GPIO_ReadInputData(GPIOA)&

GPIO_PIN_1)==0)//左移

while((GPIO_ReadInputData(GPIOA)&

GPIO_PIN_1)==0);

if((a==1)&

(b==1))b=2;

elseif((a==1)&

(b==2))b=1;

if(a==1)a=8;

elseif(a==8)a=1;

lcd162a_Reset();

delay_ms

(1);

}

if((GPIO_ReadInputData(GPIOA)&

GPIO_PIN_2)==0)//右移

GPIO_PIN_2)==0);

if((a==8)&

elseif((a==8)&

}

lcd162a_DispOneChar(b,a,239);

//显示

lcd162a_ePutstr(1,3,p2);

lcd162a_ePutstr(1,10,p3);

lcd162a_ePutstr(2,3,p4);

lcd162a_ePutstr(2,10,p5);

if((GPIO_ReadInputData(GPIOA)&

GPIO_PIN_4)==0)//姓名

GPIO_PIN_4)==0);

(b==1))

{

if((a==1)&

{lcd162a_ePutstr(1,1,p6);

lcd162a_ePutstr(2,5,p7);

{

GPIO_PIN_5)==0)//姓名返回

GPIO_PIN_5)==0);

break;

if((a==8)&

(b==1))//万年历

lcd162a_cls();

lcd162a_DispOneChar(1,4,'

2'

);

lcd162a_DispOneChar(1,5,'

0'

//年

time=Read1302(YEAR);

lcd162a_DispOneChar(1,6,48+(u8)(time/10));

lcd162a_DispOneChar(1,7,48+(u8)(time%10));

lcd162a_DispOneChar(1,8,45);

//"

-"

//月

time=Read1302(MONTH);

lcd162a_DispOneChar(1,9,48+(u8)(time/10));

lcd162a_DispOneChar(1,10,48+(u8)(time%10));

lcd162a_DispOneChar(1,11,45);

//天

time=Read1302(DATE);

lcd162a_DispOneChar(1,12,48+(u8)(time/10));

lcd162a_DispOneChar(1,13,48+(u8)(time%10));

//小时

time=Read1302(HOUR);

lcd162a_DispOneChar(2,4,48+(u8)(time/10));

lcd162a_DispOneChar(2,5,48+(u8)(time%10));

lcd162a_DispOneChar(2,6,58);

:

//分

time=Read1302(MINUTE);

lcd162a_DispOneChar(2,7,48+(u8)(time/10));

lcd162a_DispOneChar(2,8,48+(u8)(time%10));

lcd162a_DispOneChar(2,9,58);

//秒

time=Read1302(SECOND);

lcd162a_DispOneChar(2,10,48+(u8)(time/10));

lcd162a_DispOneChar(2,11,48+(u8)(time%10));

GPIO_PIN_5)==0)//万年历返回

}

if((a==8)&

(b==2))

while((TIM2->

SR1&

TIM2_FLAG_CC1)!

=TIM2_FLAG_CC1);

t1=TIM2_GetCapture1();

while((TIM2->

t2=TIM2_GetCapture1();

t=t2-t1;

Conversion_Value1=2000000/t;

Conversion_Value1=(100-(Conversion_Value1-(u32)6033)/(u16)13);

bai=(Conversion_Value1%1000)/100;

shi=(Conversion_Value1%100)/10;

ge=(Conversion_Value1%10);

lcd162a_DispOneChar(2,7,bai+48);

lcd162a_DispOneChar(2,8,shi+48);

lcd162a_DispOneChar(2,9,ge+48);

lcd162a_DispOneChar(2,10,37);

{

TIM2_ClearFlag(TIM2_FLAG_CC1);

while((TIM2->

//GetCCR1value

//GetCCR1value

t2=TIM2_GetCapture1();

t=t2-t1;

Conversion_Value1=2000000/t;

lcd162a_ePutstr(1,1,p8);

delay_ms(200);

//lcd162c中有定义

if((GPIO_ReadInputData(GPIOA)&

}

if((a==1)&

(b==2))

u8i=10;

unsignedlongt;

lcd162a_cls();

Conversion_Value=ADC1_GetConversionValue();

Conversion_Value=(((u32)1024*(u32)10000)/Conversion_Value-10000);

if((Conversion_Value>

=(u32)4160)&

(Conversion_Value<

(u32)4912))

Conversion_Value=((u32)77538-((u32)6645*Conversion_Value)/1000);

if((Conversion_Value>

=(u32)4912)&

(u32)6912))

Conversion_Value=((u32)68637-((u32)4915*Conversion_Value)/1000);

=(u32)6912)&

(u32)8944))

Conversion_Value=((u32)58497-((u32)3429*Conversion_Value)/1000);

=(u32)8944)&

(u32)11637))

Conversion_Value=((u32)50463-((u32)2546*Conversion_Value)/1000);

=(u32)11637)&

(u32)12094))

Conversion_Value=((u32)40599-((u32)1740*Conversion_Value)/1000);

=(u32)12094)&

(u32)27372))

Conversion_Value=((u32)25770-((u32)939*Conversion_Value)/1000);

wan1=(Conversion_Value/10000);

qian1=(Conversion_Value%10000)/1000;

bai1=(Conversion_Value%1000)/100;

shi1=(Conversion_Value%100)/10;

ge1=(Conversion_Value%10);

//r=(100*(1024-t)/t)*100;

lcd162a_ePutstr(1,1,p9);

lcd162a_DispOneChar(2,4,wan1+48);

lcd162a_DispOneChar(2,5,qian1+48);

lcd162a_DispOneChar(2,6,46);

lcd162a_DispOneChar(2,7,bai1+48);

lcd162a_DispOneChar(2,8,shi1+48);

lcd162a_DispOneChar(2,9,ge1+48);

lcd162a_DispOneChar(2,10,67);

GPIO_PIN_5)==0)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1