❶ 用單片機控制6個共陽數碼管秒錶計時器分秒毫秒c代碼怎麼寫
顯示部分自己寫呀,與硬體關系很大
51單片機程序如下:
uint a=0;
uchar sec=0,min=0;
void main(void)
{ TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TR0=1;
ET0=1; EA=1;
while(1){display();}
}
中斷程序:void timer0(void) interrupt 1
{
TH0=…… TL0=……
a++;
if(a==1000){sec++;}
if(sec==60){min++;}
}
個位 十位子百位分離方法:
=a/100%10;
shi=a/10%10;
ge=a%10;
❷ 單片機控制數字電位器的c語言程序
數字電位器用的是X9C103
#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//設定四個按鍵
sbit X9C102=P2^0;
sbit X9C202=P2^1;
sbit X9C302=P2^2;
sbit X9C402=P2^3;
sbit X9C103_CS=P1^0;
sbit X9C103_INC=P1^1;
sbit X9C103_UD=P1^2;
void delay_nus(uint i)
{
while(i--);
}
void delay_nms(uchar i)
{
for(i;i>0;i++)
{
delay_nus(1000);
}
}
void set_x9c103(uchar num,uchar ud,uchar save)
{
X9C103_CS=0;
delay_nus(1);
if(ud==1)
{
X9C103_UD=1;
}
else
{
X9C103_UD=0;
}
delay_nus(4);
for(num;num>0;num--)
{
X9C103_INC=1;
delay_nus(2);
X9C103_INC=0;
delay_nus(2);
}
delay_nus(2);
if(save==1)
{
X9C103_INC=1;
delay_nus(2);
X9C103_CS=1;
delay_nms(22);
}
X9C103_CS=1;
delay_nus(10);
}
void clear_down()
{
set_x9c103(100,0,1);
}
void main_init()
{
X9C103_CS=0;
clear_down();
}
void main()
{
main_init();
set_x9c103(70,1,1);
while(1)//掃描按鍵,對應不同倍數的輸出
{
if (X9C102==0){
clear_down();
set_x9c103(10,1,1);}
if (X9C202==0){
clear_down();
set_x9c103(30,1,1);}
if (X9C302==0){
clear_down();
set_x9c103(60,1,1);}
if (X9C402==0){
clear_down();
set_x9c103(90,1,1);}
}
}
❸ 51單片機 通過串口發送控制LED燈 閃爍頻率 c代碼 跪求!!
下面的程序我已經調試過了,你可以直接使用,但是一秒閃爍次數t的最大為2000,如果要大於這個數,你必須改小dalay1ms ()內的j值,就可以改大t
#include <reg52.h>
sbit LED0=P1^0;
unsigned int t=0,k;
void dalay1ms (unsigned int i) //晶振選用11.0592
{
unsigned int j;
for(i;i>0;i--)
for(j=922;j>0;j--);
}
void main ()
{
EA=1;
ES=1;
TMOD=0x20; //定時器T1方式為2
TH1=0xfa; //波特率設定為9600
TL1=0xfa;
while(1)
{
if(t!=0)
{
k=2000/t;
dalay1ms (k) ;
LED0=!LED0;
}
if(t==0)
LED0=0;
}
}
void counter4(void) interrupt 4
{
while(RI==0);
RI = 0;
t= SBUF;
}
❹ 單片機C語言 控制多個電機啟動代碼
這要看是什麼電機,發送6400個脈沖具體走多少,要看看電機具體的控制模式。