您的位置 首页 芯闻

STM8S103F2 NOKIA5110+AD收集

/************STM8S103F学习***********************//*芯片型号:STM8S103F3PB6*//*功能描述:NOKIA5110液晶显示AD采集*//*作者

/************ STM8S103F学习 ***********************/
/*芯片型号:STM8S103F3PB6 */
/*功用描绘:NOKIA5110液晶显示AD收集 */
/*作者: ClimberWin */
/*编写时刻:2012.4.9 */
/*内部晶振 */
/**************************************************/
//LCD NOKIA 5110 测验OK
#include
#include “english_6x8_pixel.h”
#include “picture84x48.h”
#include “Nokia_5110.h”

#define uint unsigned int
#define uchar unsigned char

void IO_config(void);
void Delay1ms(unsigned int count);
void nokia_5110_picture();//写一屏图
void ADC_change(void);
float ad_temp;
uint AD_result,AD_result1;
uchar AD_data[10]={0};
/***********端口装备******************/
void IO_config(void)
{

PC_DDR_DDR5=1;
PC_DDR_DDR6=1;
PC_DDR_DDR7=1;
PC_DDR_DDR4=1;
PC_DDR_DDR3=1;

PC_CR1_C15=1;
PC_CR1_C16=1;
PC_CR1_C17=1;

PC_CR1_C14=1;
PC_CR1_C13=1;

PC_CR2 = 0x00;

}
/***********************************/

/************毫秒延时程序********************/
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<120;j++);
}

/**********************************************/
void nokia_5110_picture()//写一屏图
{
uchar e;
uchar t;
uchar k;
uint d;
d=0;
for(t=0;t<6;t++)
{
for(k=0;k<84;k++)
{
e=dal[d];
write_byte(e,1);
d=d+1;
}
}
}
/**************************************/

void ADC_change(void)
{

ADC_CR1 |= 0x01; // 翻开AD模块电源
Delay1ms(50); // 延时至少100uS,用于等候采样坚持%&&&&&%充电至安稳

ADC_CR1 |= 0x01; // 发动AD转化

ADC_CSR &= 0x7F;
while(!(ADC_CSR & 0x80)); // 等候AD转化完结
AD_data[5]=ADC_DRH;
AD_data[6]=ADC_DRL;
AD_result1=(AD_data[5]*256)+AD_data[6];

ad_temp=(AD_result1*(float)3300)/(float)1024;
AD_result=(uint)ad_temp;

AD_data[0]=(uchar)(AD_result/1000);
AD_data[1]=(uchar)((AD_result%1000)/100);
AD_data[2]=(uchar)(((AD_result%1000)%100)/10);
AD_data[3]=(uchar)(((AD_result%1000)/100)%10);

ADC_CR1 &= 0xFE;

}

/*****************主程序********************/
void main(void)
{
IO_config();
LCD_Init(); //初始化液晶
LCD_Clear();

nokia_5110_picture();
Delay1ms(10000);
LCD_Clear();
LCD_write_english_string(0,0,”AD3= V”);
LCD_write_english_string(0,1,”AD4= V”);

ADC_CR1 = 0x62; // 设置AD转化时钟1/12,接连转化形式
ADC_CR2 = 0x08; // 设置数据为右对齐
ADC_CR3 = 0x00; // 不运用数据缓冲

while(1)
{
ADC_CSR = 0x03; // 挑选AD转化通道3
ADC_change();

LCD_set_XY(24,0);
LCD_write_char( AD_data[0]+0x30);
LCD_write_char( .);
LCD_write_char(AD_data[1]+0x30);
LCD_write_char(AD_data[2]+0x30);
LCD_write_char(AD_data[3]+0x30);
Delay1ms(50);
}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/267205.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部