没有合适的资源?快使用搜索试试~ 我知道了~
STC5A60S2编的AD转PWM的C程序
5星 · 超过95%的资源 需积分: 17 71 下载量 74 浏览量
2012-11-22
17:12:44
上传
评论 3
收藏 5KB TXT 举报
温馨提示
试读
7页
本资源为基于stc5a60s2的单片机c代码,其中的输入为p1.1模拟量输入,直接输出与输入电压相对应的pwm信号,从而达到由模拟量控制电机等需要pwm信号控制的器件。
资源推荐
资源详情
资源评论
/*------------------------------------------------------------------------------------*/
/* --- STC MCU Limited ---------------- ---------------------------------------*/
/* --- 演示STC 1T 系列单片机 A/D转换功能------------------------------*/
/* --- Mobile: (86)13922809991 -----------------------------------------------*/
/* --- Fax: 86-755-82905966 ---------------------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------------*/
/* 如果要在程序中使用或在文章中引用该程序, -----------------------*/
/* 请在程序中或文章中注明使用了STC的资料及程序 -----------*/
/*-------------------------------------------------------------------------------------*/
#include "reg51.h"
#include "intrins.h"
//#define FOSC 11059200L
//#define BAUD 9600
typedef unsigned char BYTE;
typedef unsigned int WORD;
/*Declare SFR associated with the ADC */
sfr ADC_CONTR = 0xBC; //ADC control register
sfr ADC_RES = 0xBD; //ADC high 8-bit result register
//sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register
sfr P1ASF = 0x9D; //P1 secondary function control register
/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER 0x80 //ADC power control bit
#define ADC_FLAG 0x10 //ADC complete flag
#define ADC_START 0x08 //ADC start control bit
#define ADC_SPEEDLL 0x00 //540 clocks
//#define ADC_SPEEDL 0x20 //360 clocks
//#define ADC_SPEEDH 0x40 //180 clocks
//#define ADC_SPEEDHH 0x60 //90 clocks
/****************************yixia******************************/
/* --- STC MCU Limited ---------------- ---------------------------------------*/
/* --- 演示STC 1T 系列单片机 A/D转换功能------------------------------*/
/* --- Mobile: (86)13922809991 -----------------------------------------------*/
/* --- Fax: 86-755-82905966 ---------------------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------------*/
/* 如果要在程序中使用或在文章中引用该程序, -----------------------*/
/* 请在程序中或文章中注明使用了STC的资料及程序 -----------*/
/*-------------------------------------------------------------------------------------*/
#include "reg51.h"
#include "intrins.h"
//#define FOSC 11059200L
//#define BAUD 9600
typedef unsigned char BYTE;
typedef unsigned int WORD;
/*Declare SFR associated with the ADC */
sfr ADC_CONTR = 0xBC; //ADC control register
sfr ADC_RES = 0xBD; //ADC high 8-bit result register
//sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register
sfr P1ASF = 0x9D; //P1 secondary function control register
/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER 0x80 //ADC power control bit
#define ADC_FLAG 0x10 //ADC complete flag
#define ADC_START 0x08 //ADC start control bit
#define ADC_SPEEDLL 0x00 //540 clocks
//#define ADC_SPEEDL 0x20 //360 clocks
//#define ADC_SPEEDH 0x40 //180 clocks
//#define ADC_SPEEDHH 0x60 //90 clocks
/****************************yixia******************************/
sfr CCON = 0xD8; //PCA control register
sbit CCF0 = CCON^0; //PCA module-0 interrupt flag
sbit CCF1 = CCON^1; //PCA module-1 interrupt flag
sbit CR = CCON^6; //PCA timer run control bit
sbit CF = CCON^7; //PCA timer overflow flag
sfr CMOD = 0xD9; //PCA mode register
sfr CL = 0xE9; //PCA base timer LOW
sfr CH = 0xF9; //PCA base timer HIGH
sfr CCAPM0 = 0xDA; //PCA module-0 mode register
sfr CCAP0L = 0xEA; //PCA module-0 capture register LOW
sfr CCAP0H = 0xFA; //PCA module-0 capture register HIGH
sfr CCAPM1 = 0xDB; //PCA module-1 mode register
sfr CCAP1L = 0xEB; //PCA module-1 capture register LOW
sfr CCAP1H = 0xFB; //PCA module-1 capture register HIGH
sfr PCAPWM0 = 0xf2;
sfr PCAPWM1 = 0xf3;
/****************************yishang******************************/
//void InitUart();
void InitADC();
//void SendData(BYTE dat);
BYTE GetADCResult(BYTE ch);
void Initpwm(BYTE b);
//void Setpwm(BYTE a);//shezhi zhankongbi
void Delay(WORD n);
//void ShowResult(BYTE ch);
void main()
{
//InitUart(); //Init UART, use to show ADC result
InitADC(); //Init ADC sfr
sbit CCF0 = CCON^0; //PCA module-0 interrupt flag
sbit CCF1 = CCON^1; //PCA module-1 interrupt flag
sbit CR = CCON^6; //PCA timer run control bit
sbit CF = CCON^7; //PCA timer overflow flag
sfr CMOD = 0xD9; //PCA mode register
sfr CL = 0xE9; //PCA base timer LOW
sfr CH = 0xF9; //PCA base timer HIGH
sfr CCAPM0 = 0xDA; //PCA module-0 mode register
sfr CCAP0L = 0xEA; //PCA module-0 capture register LOW
sfr CCAP0H = 0xFA; //PCA module-0 capture register HIGH
sfr CCAPM1 = 0xDB; //PCA module-1 mode register
sfr CCAP1L = 0xEB; //PCA module-1 capture register LOW
sfr CCAP1H = 0xFB; //PCA module-1 capture register HIGH
sfr PCAPWM0 = 0xf2;
sfr PCAPWM1 = 0xf3;
/****************************yishang******************************/
//void InitUart();
void InitADC();
//void SendData(BYTE dat);
BYTE GetADCResult(BYTE ch);
void Initpwm(BYTE b);
//void Setpwm(BYTE a);//shezhi zhankongbi
void Delay(WORD n);
//void ShowResult(BYTE ch);
void main()
{
//InitUart(); //Init UART, use to show ADC result
InitADC(); //Init ADC sfr
剩余6页未读,继续阅读
资源评论
- _路太弯_2013-07-05可以的,资料对我有帮助 谢谢
- tanpb2014-05-25很实用,很好,就是解释都是英文的,如果能有个中文版的最好啦!
- rdfgood2013-07-16非常感谢,很实用!!1
- qq_302139572015-08-05非常有用,感谢楼主
- hunlu1232014-07-11能用,非常好!!
ksdehao123
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功