STC12系列单片机的定时器有两种计数速率:一种是12T模式,每12个时钟加1,与传统8051单片机相同;另一种是1T模式,每个时钟加1,速度是传统8051单片机的12
2021-11-25 06:13
时钟宏定义#define MAIN_Fosc 11059200L//宏定义主时钟HZ//#define MAIN_Fosc 12000000Ldelay.c//基于STC12单片机1ms延时函数
2021-12-02 07:18
51系列的STC12STC15 IO模式同样的P1 ~P3 IO设置寄存器为P1M1 P1M0 ~ P3M1 P3M0C语言移位操作完成IO设置P3M1 &= ~(1
2021-12-01 08:32
I
2022-02-08 07:51
求stc12c5202ad系列的库函数和案例,用MDK编程的,跑马灯的案例就可以。想学习下,官网没有看到,官网只有15犀利的,stc12系列和15系列的库函数是可以通用的么?谢谢大家!
2017-02-09 10:01
内容转自他人,至于原创者是谁,我也没找到。应本人觉得内容很好,对本人很有用,所以转载。源代码文件下载地址在下面功能:STC12C2052ADAD转换C程序+PWM输出功能成功使用。应用:AD检测电压
2021-11-26 08:24
STC12C5A60S2串口通信(使用独立波特率发生器)STC12C5A60S2独立PWMSTC12C5A60S2在LCD1602基本显示程序STC12C5A60S2A
2022-02-18 07:25
STC32-开源示波器PCB外观
2022-10-26 07:47
STC32-开源示波器原理图
2022-10-26 06:26
#include#include"intrins.h" #include #define uchar unsigned char #define uint unsigned int void DigDisplay(void); #define GPIO_DIG P0//***it LSA=P2^2;//***it LSB=P2^3;//***it LSC=P2^4;//--定义全局变量--//unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsigned char DisplayData[8];//用来存放要显示的8位数的值void StartUART( void ) { AUXR &= 0xF7;//波特率不倍速S2CON = 0x50;//8位数据,可变波特率AUXR |= 0x04;//独立波特率发生器时钟为Fosc,即1TBRT = 0xD9;//设定独立波特率发生器重装值AUXR |= 0x10;// //波特率9600 // SCON = 0x50; // TMOD = 0x20; // TH1 = 0xFD; // TL1 = 0xFD; // PCON = 0x00; // TR1 = 1; } //************************************通过串口将接收到数据发送给PC端************************************** void R_S_Byte(uchar R_Byte) { SBUF = R_Byte; while( TI == 0 ); //查询法 TI = 0; } void delayms(uint x){uint i,j;for(i=x;i>0;i--) for(j=110;j>0;j--);}void ADinit(){ P1M1=0X0F; P1M0=0X0F; P1ASF=0x0F;//P1.0,P1.1,P1.2,P1.3口作为模拟功能AD使用。 ADC_CONTR=0X80;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD转换控制位初始化为0,选择P1.0作为AD输入来用。 _nop_(); _nop_(); _nop_(); _nop_(); AUXR1=0X00; }int GetAD(uchar y){ uchar adf ;int result;ADC_CONTR|=y;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD开始转换,选择P1.0作为AD输入来用。_nop_(); _nop_(); _nop_(); _nop_();ADC_CONTR|=0x08; _nop_(); _nop_(); _nop_(); _nop_();/*以上是四个时钟延时*/while( adf ==0){adf =(ADC_CONTR&0x10);}result=ADC_RES*4+ADC_RESL; //ADC_CONTR&=0xf7; _nop_(); _nop_(); _nop_(); _nop_();R_S_Byte(result);return (result);}float Adav(uchar y){float valav=0;uchar num;for(num=100;num>0;num--){valav+=GetAD( y);}valav/=100; valav= valav*5.0/1024;return( valav);}void main(){float ad1,ad2,ad3,ad4;ADinit();StartUART();while(1){ ADinit();ad1=Adav(0); ad2=Adav(1);ad3=Adav(2);ad4=Adav(3);//// DisplayData[0]=DIG_CODE[0];//DisplayData[1]=DIG_CODE[0]; //DisplayData[2]=DIG_CODE[0];//DisplayData[3]=DIG_CODE[0];//DisplayData[4]=DIG_CODE[ GetAD(1)%10000/1000];//DisplayData[5]=DIG_CODE[ GetAD(1)%1000/100];//DisplayData[6]=DIG_CODE[GetAD(1)%100/10];//DisplayData[7]=DIG_CODE[GetAD(1)%10/1];//DigDisplay();//}}void DigDisplay(void){unsigned char i;unsigned int j;for(i=0;i
2016-10-24 16:46