照片、代码、视频 流水灯、测温、 cm33 MCU DIY进程帖
流水灯的程序
//流水灯控制 之 wlsd.c
//用 Keil C 来编译成可执行程序
#include <reg51.h>
#include <intrins.h>
#define uchr unsigned char
#define uint unsigned int
// -----------------------------------------------------------------------------------------
void main( void ); //主程序
void cshc( void ); //初始化处理
void yshm( uint m ); //延时
// -----------------------------------------------------------------------------------------
void cshc( void ) //初始化处理
{
SCON=0; //SCON串行口控制:方式0,不允许串行接收
}
void main( void ) //主程序
{
uchr i,k;
cshc(); //初始化处理
k=1;
while(1) //主循环
{
P1=~k;
for(i=0;i<10;i++) yshm(100);
k<<=1;
if(k==0) k=1;
}
}
//=============================================================
void yshm( uint m ) //延时
{
uint i,n;
n=m*70;
for(i=0;i<n;i++) { _nop_(); _nop_(); }
}
//=============================================================
18B20测温的程序部分
//ep1820.uv2 DS18B20之温度测试 w1820.c
//用 Keil C 来编译成可执行程序
#include <reg51.h>
#include <intrins.h> // _nop_()
#define uchr unsigned char
#define uint unsigned int
// -----------------------------------------------------------------------------------------
sbit KDQ = P1^3;
// -----------------------------------------------------------------------------------------
void main( void );
void cshc( void );
void yshm( uchr m );
void ysys( uchr s );
void ysus( void );
uchr wcsh( void );
uchr wdzj( void );
void wxzj( uchr x );
uchr wdwa( void );
uchr wdwb( void );
// -----------------------------------------------------------------------------------------
void cshc( void )
{
SCON=0;
wcsh()
}
void main( void )
{
uchr k;
cshc();
while(1)
{
wdwa();
for(i=0;i<10;i++) yshm(100);
wdwb();
xscl();
for(i=0;i<10;i++) yshm(200);
}
}
//=============================================================
void ysys( uchr s )
{
uchr i;
for(i=0;i<s;i++) rrr=i%256;
}
void ysus( void )
{
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
void yshm( uchr m )
{
uint i,n;
n=m*200;
for(i=0;i<n;i++) { _nop_(); _nop_(); }
}
void xscl( void )
{
......
}
uchr wcsh( void )
{
uchr x;
KDQ=1;
ysus();
KDQ=0;
ysys(40);
KDQ=1;
ysus(); ysus(); ysus(); ysus(); ysus(); ysus();
x=KDQ;
ysys(40);
return(x);
}
uchr wdzj( void )
{
uchr i,k;
k=0;
for(i=0;i<8;i++)
{
KDQ=0;
k>>=1;
ysus();
KDQ=1;
_nop_(); _nop_();
if(KDQ) k|=0x80;
ysys(6);
}
return(k);
}
void wxzj( uchr x )
{
uchr i,k;
k=x;
for(i=8;i>0;i--)
{
KDQ=0;
ysus();
KDQ=k&0x01;
ysys(5);
KDQ=1;
k>>=1;
ysys(6);
}
ysys(6);
}
uchr wdwa( void )
{
uchr a;
a=wcsh(); if(a!=0) { return(0); }
wxzj(0xCC);
wxzj(0x44);
return(1);
}
uchr wdwb( void )
{
uchr a,b; uint t=0; float tt;
a=wcsh(); if(a!=0) { return(0); }
wxzj(0xCC);
wxzj(0xBE);
a=wdzj();
b=wdzj();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t=tt*10+0.5;
return(t);
}
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |