资源简介
51系列单片机stc12c5a602使用ad0809采集电压并将数据通过串口传输给pc
代码片段和文件信息
#include “reg52.h“
#include
#define uchar unsigned char
#define uint unsigned int
#define addata P1
sfr BRT = 0x9C; //独立波特率定时器
sfr AUXR = 0x8e; //Auxiliary register
sfr WAKE_CLKO = 0x8f; //wakeup and clock output control register
sbit CLK = P3^4; //timer0 clock output pin
sbit STR=P2^4; //单片机P1.0接模块STR引脚 启动转换信号
sbit EOC=P2^3; //单片机P1.1接模块EOC, 转换结束信号,高电平有效
sbit OE=P2^2; //单片机P1.2接模块OE输出允许信号,高电平有效
void delayms(uint xms)
{
uint i j;
for (i = xms; i > 0; i--)
for (j = 110; j > 0; j--)
;
}
void send_data(uchar x)
{
SBUF=x;
while(TI==0);
TI=0;
}
void main()
{
uchar uidata;
SCON=0x50; //串口工作在方式1
TMOD = 0x22; //T0工作在方式2,8位自动重装计数器
AUXR = AUXR | 0x80; //T0工作在1T模式
AUXR = AUXR | 0x04; //独立波特率发生器工作在1T模式
BRT = (256-12); //实测值约为500KHz
TH0 = (256-12);
TH1=0xfd; //波特率9600
TH1=0xfd; // 置初值
WAKE_CLKO=WAKE_CLKO|0x07; //允许T0T1独立波特率发生器输出时钟
EA=1; // 开总中断
ES=1; // 开串口中断
TR1=1;
TR0 = 1; //启动T0开始计数,对系统时钟进行分频输出
AUXR =AUXR|0x10; //启动BRT工作,对系统时钟进行分频输出
//至此时钟已经输出,用户可以通过示波器观看到输出的时钟频率
STR=0;
OE=0;
while(1)
{
STR=0;
_nop_();
STR=1;
_nop_(); //启动AD转换。
STR=0;
_nop_();
while(EOC==0);
OE=1;
addata=0xff;
OE=1;
uidata=addata;
OE=0;
send_data(uidata);
delayms(1000);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4039 2018-05-14 19:25 12\main
文件 1607 2018-05-14 19:25 12\main.c
文件 420 2018-05-14 19:25 12\main.hex
文件 40 2018-05-14 19:25 12\main.lnp
文件 3904 2018-05-14 19:25 12\main.LST
文件 5152 2018-05-14 19:25 12\main.M51
文件 4208 2018-05-14 19:25 12\main.OBJ
文件 177 2018-05-14 22:30 12\main.plg
....... 142992 2018-05-14 19:45 12\main.uvopt
....... 13225 2018-05-14 16:23 12\main.uvproj
....... 142998 2018-05-14 17:01 12\main_uvopt.bak
....... 13222 2018-05-13 22:05 12\main_uvproj.bak
目录 0 2018-05-14 19:45 12
----------- --------- ---------- ----- ----
331984 13
- 上一篇:西安电子科技大学出版社 信息系统分析与设计第二版答案
- 下一篇:FM发射模块
评论
共有 条评论