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