- 博客(1)
- 资源 (3)
- 收藏
- 关注
原创 STM8S REX_C900温控器硬件
开发环境:IAR for stm8 v6.5.3*硬件平台:STM8S005K6T6 REX-C900温控*功能说明:本例程,利用定时_TIM3中断定时。代码如下:#include<iostm8s005k6.h>#include<stdbool.h>unsigned char BCD_led[9]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,...
2018-02-24 15:13:40 1134
基于REX-C900温控器硬件
代码 ADC BEEP TIM2 TIM3 TIM4 EPPROM 直接寄存器操作
/****************************************************************************************
*开发环境:IAR for stm8 v6.5.3
*硬件平台:STM8S005K6T6 REX-C900温控
*功能说明:本例程,利用定时_TIM2中断定时。
*作 者:刘拥军
****************************************************************************************/
#include<iostm8s005k6.h>
#include<stdbool.h>
unsigned char BCD_led[9]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00}; //显示缓存区。8_数码段。+1_LED状态输出指示段。
unsigned char lab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90}; //0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
unsigned char *p=BCD_led,smm=0,s1=0;
bool lii=0;
void TIM3_Config(void)
{
CLK_PCKENR1 |= 0x40; //打开外设时钟源TIM2.
asm("rim");
while(!(CLK_PCKENR1 & 0x01)); //这些具体数据,一定要看数据手册!
TIM3_CR1 = 0x00;
TIM3_PSCR = 0x08; //16/2^4
TIM3_ARRH = 0x00;
TIM3_ARRL = 0x08; //重装值
TIM3_CNTRH = 0x00;
TIM3_CNTRL = 0x00; //计数器
TIM3_IER = 0x01; //开更新中断
TIM3_CR1 = 0x01; //定时器使能
}
void adc_int() //初始化A/D模块
{
ADC_CR2 = 0x00; // A/D结果数据左对齐
ADC_CR1 = 0x00; // ADC时钟=主时钟/2=1MHZ,ADC转换模式=单次,禁止ADC转换
ADC_CSR = 0x0c; // 选择通道12
ADC_TDRL = 0x20;
}
void adc_data()
{
unsigned int a;
ADC_CR1 = 0x01; // CR1寄存器的最低位置1,使能ADC转换
for(a=0;a<200;a++); // 延时一段时间,至少7uS,保证ADC模块的上电完成
ADC_CR1 = ADC_CR1 | 0x01; // 再次将CR1寄存器的最低位置1,使能ADC转换
while((ADC_CSR & 0x80) == 0); // 等待ADC结束
a= ADC_DRH*4; // 读出ADC结果的高8位
a = (a + (ADC_DRL&0x03;))*5;
...............................................................
................................................................
................................................................
2018-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人