STC12C5410AD学习板---AD按键测试程序

发布者:未来画家最新更新时间:2016-09-06 来源: eefocus关键字:STC12C5410AD  按键测试 手机看文章 扫描二维码
随时随地手机看文章
STC12C5410AD学习板---AD按键测试程序 - 小文 - 小文电子设计

/************ STC12C5410AD学习板 ******************/
/*功能描述:AD按键练习                            */
/*作者:郑 文   ClimberWin                        */
/*编写时间:2008.8.15                             */
/*功能:采集按键电压;分配键值,并把键值传给PC机   */
/*外部晶振22.1184 MHZ                             */
/*把波特率设置为51的12倍,现在波特率 115200       */
/*注意:需要测得实际电源电压作为参考电压          */
/*L7805稳压在4.88-4.98V之间,根据实际测量确定电压 */
/**************************************************/
/*修改时间:                                      */
/*修改内容:  还需要添加按键去抖                  */


#include          
#include
#include
#include
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

sbit PWM0 = P3^7; //pwm口定义green
sbit PWM1 = P3^5; //pwm口定义blue
sbit PWM2 = P2^0; //pwm口定义
sbit PWM3 = P2^4; //pwm口定义red

sbit AD0 = P1^0;   //电位器和外部电压输入共用同一AD口,用跳帽来选择。
sbit AD1 = P1^1;   //用做AD按键的输出口。
sbit AD2 = P1^2;   //温度测量,测量热敏电阻的参数。


void Delay1ms(unsigned int count);
void init_rs232(void);           //串口初始化
void STC12C5410AD_int(void);     //AD初始化


void Delay1ms(unsigned int count);
void init_rs232(void);           //串口初始化

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

/***************************1秒延时子程序end***************************/

/* 串口通信初始化设置 */
void init_rs232(void)
 {
 AUXR=74;       //设置波特率是普通51的12倍 ,允许AD中断
 SCON=0x50;
 PCON=0x00;
 TH1=0xFA;    //波特率 115200  22.1184MHZ 时候(F4 4800  FA 9600  FDH 9600)*12
 TL1=0XFA;
 TMOD=0X20;
 TR1=1;    
 }
 

/*STC12C5410AD的AD初始化程序*/
// ADC_CONTR=[ADC_POWER] [SPEED1] [SPEED0] [ADC_FLAG] [ADC_START] [CHS2] [CHS1] [CHS0]
// ADC_DATA 高8位  ADC_LOW2 //低2位
void STC12C5410AD_int(void)
{
ADC_CONTR=0x80 ;  //开转换电源 设置转换速度为1080个时钟周期转换一次,选择AD0通道
Delay1ms(20);     //稍做延时,大于1ms就可以

/*I/O口作为AD使用,设置漏极开路模式*/ 
P1M0=1;
P1M1=1;
}

/*******************************************/ 
 
/*****************主程序************************/
 main()
 {       //main start
 //uchar w;
 uint ad_temp; //AD数据保存的地址
 float f;   //存放AD采集过来的数据,格式00.000,总共5位

 Delay1ms(5000);

 init_rs232();  //串口初始化
 TI=1;

 printf("STC12C5410AD学习板 AD按键练习\n");
 printf("ClimberWin 2008.8.15\n\n");
 Delay1ms(5000);


 printf("串口初始化成功\n\n");
 Delay1ms(5000);

 

/*************************************************/
  
   STC12C5410AD_int();   //AD初始化
   printf("A/D初始化成功\n");
   ADC_CONTR|=0x01;            //选择AD1通道  ,AD按键
   printf("选择通道AD1\n\n");

   printf("按键测试开始:\n\n");


  while(1)
  {
 ADC_CONTR|=0x08;            //开始AD转换(ADC_START=1)

    while(!(ADC_CONTR & 0x10)); //判断AD是否转换结束

 ADC_CONTR&=0xef;//转换结束后标志位ADC_FLAG清零
  //AD采集进来的数据进行转化
    ad_temp=ADC_LOW2;
    ad_temp=ad_temp+  ((uint)ADC_DATA)<<2;
    f=(4.961*ad_temp)/1024;      //基准电压调整,用7805做稳压需要测得实际电源电压
 //通过串口打印AD采集进来的数据
  //  printf("%.3f   ",f);    //串口传输AD采集数据
    Delay1ms(1000);
/**************键值判断*******************************/
if (f>4.590&f<4.650)
  { printf("K1按下\n\n");}
else if (f>4.500&f<4.550)
  { printf("K2按下\n\n");}
else if (f>4.400&f<4.490)
  { printf("K3按下\n\n");}
else if (f>4.200&f<4.350)
  { printf("K4按下\n\n");}
else if (f>3.700&f<4.100)
  { printf("K5按下\n\n");}
else if (f>3.000&f<3.500)
  { printf("K6按下\n\n");}
else
{;}
   Delay1ms(1000);
/*******************************************************/
  }

}   //mian end

关键字:STC12C5410AD  按键测试 引用地址:STC12C5410AD学习板---AD按键测试程序

上一篇:如何摆脱单片机设计过程中的电磁干扰
下一篇:STC12C5410AD学习板---PWM练习

推荐阅读最新更新时间:2024-03-16 15:08

TMS320VC5402 DSP与串行AD73360 A/D转换器的接口设计
    随着对信号处理要求的不断提高以及DSP技术的不断发展,越来越多的工程技术人员开始采用DSP进行系统设计。美国TI公司的 TMS320VC5402 (以下简称VC5402)DSP具有运算速度快、功耗小和性价比高的特点,已在个人移动通信、信号与信息处理以及自动控制等领域得到了广泛的应用。该芯片提供了两个多通道缓冲串行接口(McBSP)与外部设备进行通信。它与串行A/D变换器构成的信号采集与处理系统具有硬件设计简单、可靠性好的特点。本文将详细阐述VC5402与 AD73360 的接口设计。 1 VC5402的McBSP VC5402的McBSP是一种同步串行接口,支持多种通信方式和SPI协议,该串口可以根
[嵌入式]
MSP430F4250 AD解读
1.关于MSP430F4250: 2.关于MSP430F4250 AD: 参考MSP430X4XXFamily User’s Guide: 关于16位AD采样有两种: 2.1 MSP430F4250选的是哪种? 其实并不是软件设置哪种,而是型号决定,由上述可知,MSP430F4250使用的是SD16_A 2.2 MSP430F4250 AD的输入电压范围是多少? 此时参考的手册需要更换为MSP430F42X0手册: 2.3 MSP430F4250 AD的转换结果在哪?数据格式是什么? 继续参考MSP430X4XX Family User’s Guide手册: AD的转换结果
[单片机]
MSP430F4250 <font color='red'>AD</font>解读
AD574A与MCS-51单片机接口
AD574A逻辑控制真值表
[单片机]
<font color='red'>AD</font>574A与MCS-51单片机接口
AD1672单片12位模数转换器的原理及其应用
一、 概述 AD1672是美国adi公司最近推向市场的一种新型单片式模数转换器(ADC)。片上含有4个高性能采样保持放大器(sha)和4个闪烁式adc及电压基准。它采用4级流水线结构,输出带有误差修正逻辑电路,并采用bicmos工艺,从而保证在3msps采样速度下12位精度,在整个工作温度范围内不失码。由于ad1672输入sha具有快速建立特性,所以它既适合从负满度到正满度电压逐次切换多通道系统,又适合输入频率高达奈奎斯特速率的单通道采样。 ad1672具有宽频带输入、单电源供电、低功耗和低价格等特点,非常适用于通信、图象处理和医疗设备新电路设计。 ad1672采用28脚plcc封装,工作温度范围为-40~+85°
[模拟电子]
PIC16位单片机CAN(6)外部AD
外部AD使用的是AD7170 具体的资料看datasheet。简单说一下这个AD的注意事项。 AD7170是一款低功耗ADC,片内集成精密12位 - 调制器和数字滤波器,用于测量宽动态范围、低频信号。该器件具有一个内部时钟和一路差分输入,输出数据速率为125 Hz,增益为1。双线式接口可简化从AD7170获取数据的过程。 简单一句话。一个时钟输入,一个串行转换输出。模拟输入为双极性输入。 时钟和串行数据输出就不多说了,看看时序就知道了。重点看一下什么叫做双极性输入。 AD7170支持双极性输入范围。双极性输入范围不代表器件可以耐受相对于系统GND的负电压。AIN(+)输入端的信号以AIN(?)输入端的电压为基准。例如,当使用2
[单片机]
用Proteus学习51单片机之AD转换
现实中的很多量,都是模拟量,如温度,压力等,单片机要去了解它们,首先就要把这些量进行数字化,AD转换即把模拟量转变为数字量。这次书上介绍的AD芯片为ADC0804,8位并行AD转换芯片。关于AD转换的详细原理,我就不抄了,网上有的是。 ADC0804的使用,比前面用过的锁存器74LS573难用得多,主要是读写数据都要根据时序图,进行电位的变化,而且芯片的接法也相对麻烦一点。下面记录一下引脚定义: VIN(+),VIN(-):待测量的模拟信号输入 DB0~DB7:测量结果输出 AGND:模拟信号地 DGND:数字信号地 CLK:时钟信号输入端 CLKR:内部时钟发生器的外接电阻端,与CLK端配合可由芯片自身产生时钟脉冲,其频率为1/
[单片机]
用Proteus学习51单片机之<font color='red'>AD</font>转换
ad9959应用控制电路
ad9959应用控制电路 AD9959可以实现最多16电平的频率、相位和幅度调制,还可以工作在线性调频、调相或调幅模式。AD9959的应用范围包括相控阵列雷达/卢纳系统、仪表、同步时钟和RF信号源。AD9959的内部结构如图1所示,主要特性如下: ◇有4路带10位DAC的DDS通道,最高取样频率为500 MSPS; ◇大于65 dB的通道隔离度; ◇32位频率分辨率; ◇14位相位失调分辨率; ◇10位输出幅度可缩放的分辨率; ◇具有增强数据吞吐量的串行I/O口(SPI); ◇可软件/硬件控制以降低功耗; ◇双电源(DDS核1.8 V,串行I/O3.3
[模拟电子]
<font color='red'>ad</font>9959应用控制电路
TMS320VC5402与TLC320AD50C的接口设计
  目前发展起来的高速数字信号处理器(DSP)在语音处理系统中得到了广泛应用。TMS320VC5402的TI公司生产的一种性能价格比较高的16位定点DSP。它的指令周期为10ns,具有运算速度快、通用性能、接口连接方便等特点,尤其适合在语音编码和通信中应用。   TLC320AD50C是TI公司生产的∑-Δ型A/D、D/A音频接口芯片,为V3.4调制解调器以及音频应用提供了通用的模拟接口,可以直接与TMS320VC5402相连。本文详细介绍TLC320AD50C与TMS320VC5402的硬件接口连接和软件设计。    1 TMS320VC5402的McBSP   TMS320VC5402有两个McBSP(多通道缓存串
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved