stc12le5204ad 为8位AD
//烧写程序时,一定要选用外部晶振(烧写软件默认为内部晶振(5M~6M)),不然还会影响ADC
//烧写时,有时候写不进去,尝试断开地线,然后接上上电
#include<reg51.h>
#include<intrins.h>
sfr P1M1 =0x91;
sfr P1M0 =0x92;
sfr ADC_CONTR = 0xBC;
sfr ADC_RES =0xBD;
sfr P1ASF =0x9D;
sfr AUXR=0x8e;
#define ADC_POWER 0x80
#define ADC_FLAG 0x10
#define ADC_START 0x08
#define ADC_SPEEDLL 0x00
#define ADC_SPEEDL 0x20
#define ADC_SPEEDH 0x40 //这个速度,读出的数据噪声很大
#define ADC_SPEEDHH 0x60
unsigned char ch,loop_n;
unsigned int adc_value;
void serial_initial(void);
void send_UART(unsigned char i);
void UART_Interrupt_Receive(void);
void delay(unsigned char n);
void initADC(void);
void print_uint(unsigned int num);
void Long_delay(unsigned char s);
void main()
{
Long_delay(5);//防止pc运行串口驱动时,与本程序自行向pc发送数据产生冲突,从而产生的混乱
loop_n=0;
adc_value=0;
serial_initial();
initADC();
IE|=0xA0;//开启AD中断与总中断
ADC_CONTR =0x88;
ch=0;
while(1)
{
/* if((ADC_CONTR&0xef)!=0) //使用查询方式测AD值
{
adc_value=ADC_RES;
print_uint(adc_value);
ch++;
if(ch>1)
ch=0;
ADC_CONTR =0x88|ch;
ADC_RES=0;
} */
Long_delay(5);
}
}
void serial_initial(void) // 使用独立波特率发生器作为波特率发生器
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void send_UART(unsigned char i)
{
ES=0; // 关串口中断
TI=0; // 清零串口发送完成中断请求标志
SBUF=i;
while(TI==0); // 等待发送完成
TI=0; // 清零串口发送完成中断请求标志
//ES=1; // 允许串口中断
}
void print_uint(unsigned int num)
{
unsigned char w5,w4,w3,w2,w1;
w5=num/10000;
w4=num%10000/1000;
w3=num%1000/100;
w2=num%100/10;
w1=num%10;
send_UART('0'+w5);
send_UART('0'+w4);
send_UART('0'+w3);
send_UART('0'+w2);
send_UART('0'+w1);
send_UART(' ');
}
void delay(unsigned char n)
{
unsigned char x;
while(n--)
{
x=100;
while(x--);
}
}
void initADC()
{
ch=0;
P1M1=0x03; //P10、P11作AD输入
P1M0=0x00;
P1ASF=0x03;
ADC_RES=0;
ADC_CONTR=0x88;//0x88,P10; 0x89,P11
delay(2);
}
void adc_isr() interrupt 5
{
adc_value+=ADC_RES;
loop_n++;
if(loop_n>4) //5次取平均数
{
adc_value=adc_value/5;
print_uint(adc_value);
Long_delay(5);
ch++;
if(ch>1)
{
ch=0;
send_UART('*');
}
loop_n=0;
adc_value=0;
}
ADC_CONTR =0x88|ch;
ADC_RES=0;
}
void Long_delay(unsigned char s)
{
unsigned char i,j,k;
for(k=0;k<s;k++)
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
完整资料打包:
当天如果未签到,则在签到的按钮右上角显示一个小红点,点击后红点消失。在主页的fragment创建时判断今天有没有签到,没有签到则显示小红点: private void initData() { if (!SignUtil.isSignedToday()) { // 今日没有签名则显示小圆点 mTitleBarView.s_前端点击一下小红点消失
在移动端上使用很方便,比snapdragon profiler要好点,和Nsight调试桌面版差不多了。记录下自己使用的过程用上述相关工具主要用来分析竞品等,profile一下内容RenderDoc安装使用首先安装,设置下对应安卓sdk,java sdk,在tools-setting-android中然后开启手机的允许USB调试的开关,不同手机可能会有些不太一样,我用的一加..._renderdoc error launching com....for capture
最近给游戏本装双系统(对没错,我就是用游戏本搞开发的那个人),由于是N卡+Intel核显的电脑(并且是1920*1080及以上的高分屏),装Ubuntu前后遇到各种坑。 下面我们慢慢道来如何爬出这些坑。我遇到的这些坑目前如下,大家可以对号入座: (1)用U盘安装Ubuntu系统,卡死在logo界面(下面那一排进度点根本不动),死活进不去; (2)好不容易把(1)解决了,发现分辨率降低成了800
IDEA上操作Gitlab上面的项目安楠大叔 1.我们打开IDEA 2.输入git地址 并导入项目 3.项目导入 4.切换项目分支 5.分支命名 6. 项目分支切换成功 7.项目拉取差异 8.项目提交 9.提交文件选择 10.点击提交 11.同意提交 12.进入推送 13.选择提交的代码并推送 14.项目提交到git上面 安楠大..._idea gitlab 登录
Docker Compose 概念Docker Compose 是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用。 一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过sevices来定义,然后使用docker-_dockercompose教程
import numpy as np from scipy import linalgdef getMatrix(epsion): A=np.array([[epsion,1],[1,0]],dtype=np.float64) return A def getRHS(): b=np.array([[1],[3.0]],dtype=np.float64) return bdef LUsolution(A,b,epsion): L=np.array([[1,0]._python矩阵lu分解
Android程序的签名和Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android Market上时大家都已经发现这个问题了。Android signed制作方法 首先在Android开发时没有安装JDK的网友在Sun官方网站下载JDKhttp://www.java.net/download/jdk6/6u10/promoted/b32/b
第二篇中,学习了IPython shell和Jupyter notebook的基础。本篇中,继续探索IPython更深层次的功能,可以从控制台或在jupyter使⽤。一、使⽤命令历史Ipython维护了⼀个位于磁盘的⼩型数据库,⽤于保存执⾏的每条指令。它的⽤途有: 只⽤最少的输⼊,就能搜索、补全和执⾏先前运⾏过的指令; 在不同s..._ipdb > c
原文出处:http://blog.csdn.net/vispin/article/details/42453857在Eclipse中经常使用sysout 在按一下Alt+/ 就可以自动打出 System.out.println(""); 了,自动使用AndroidStudio后这样功能怎么用一起找不到.每个高度重复的代码都要再打一遍很让人懊恼.今天分享出来让有这样懊恼的朋友也解决一
1.Axure 8 Mac版下载及安装链接: https://pan.baidu.com/s/1AiHWZ-A787ZNCLzCufftHg 密码: 2qw2打开应用程序中的“axure rp 8”软件,点击“enter license”如图,会弹出注册框然后我们打开软件包中的“serial”文本,将信息填入相应框中,点击“submit”;Name: TEAM BEAN 2015..._axure mac 汉化
设计模式学习笔记-Adapter模式Adapter模式,就是适配器模式,使两个原本没有关联的类结合一起使用. 平时我们会经常碰到这样的情况,有了两个现成的类,它们之间没有什么联系,但是我们现在既想用其中一个类的方法,同时也想用另外一个类 ...android常用的弹出提示框我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单..._sas两个时间相减csdn
ElasticSearch是一款开源的高扩展的分布式全文检索引擎,可以近实时地查询分析数据。实现基于Lucene,封装了许多Lucene底层的功能,提供了简单易用的RestFul API接口和很多语言的客户端,如Java的高级客户端(Java High Level REST Client)和底层客户端(Java Low Level REST Client)