求单片机C语言编程p10,p11分别控制led1,led2 p32控制按键开关,求详细C程序

求单片机C语言编程p10,p11分别控制led1,led2 p32控制按键开关,求详细C程序,第1张

汇编不会啊。

/

程序名称:hc595c

程序功能:595的应用文件,595控制数码管

程序作者:吴鉴鹰

创建时间:2013-12-7

修改时间:2013-12-9

程序版本:V02

/

/

包含头文件

/

#include "inc/hc595h"

#include "reg51h"

/

定义引脚

/

/ 595控制数码管时钟信号线引脚定义 /

sbit HC595CLK = P1^1;

/ 595控制数码管片选信号线引脚定义 /

sbit HC595RCK = P1^0;

/ 595控制数码管数据输入引脚定义 /

sbit HC595DATA = P1^4;

/

函数名称:SendData

函数功能:74HC595数据的发送

入口参数:unsigned int uiDataOne, unsigned int uiDataTwo

出口参数:void

/

void SendData(unsigned int uiDataOne, unsigned int uiDataTwo)

{

unsigned int i = 0;

/ 将片选信号置为低电平 /

HC595RCK = 0;

/ 输入第一个数据:uiDataOne /

for (i = 0; i < 8; i++)

{

/ 给出脉冲信号,首先将CLK置为0 /

HC595CLK = 0;

if (0 != (uiDataOne & 0x80))

{

HC595DATA = 1;

}

else

{

HC595DATA = 0;

}

/ 给出脉冲信号,首先将CLK置为1 /

HC595CLK = 1;

/ 准备第二个数据 /

uiDataOne = uiDataOne << 1;

}

/ 输入第二个数据:uiDataTwo /

for (i = 0; i < 8; i++)

{

/ 给出脉冲信号,首先将CLK置为0 /

HC595CLK = 0;

if (0 != (uiDataTwo & 0x80))

{

HC595DATA = 1;

}

else

{

HC595DATA = 0;

}

/ 给出脉冲信号,首先将CLK置为1 /

HC595CLK = 1;

/ 准备第二个数据 /

uiDataTwo = uiDataTwo << 1;

}

/ 将片选信号置为高电平 /

HC595RCK = 1;

}

计算机开机原理开机原理:插上ATX电源后,有一个静态5V电压送到南桥,为南桥里面的ATX开机电路提供工作条件(ATX电源的开机电路是集成南桥里面的),南桥里面的ATX开机电路将开始工作,会送一个电压给晶体,晶体起振工作,产生振荡,发出波形。同时ATX开机电路会送出一个开机电压到主板的开机针帽的一个脚,针帽的另一个脚接地。当打开开机开关时,开机针帽的两个脚接通,而使南桥送出开机电压对地短路,拉低南桥送出的开机电压,而使南桥里的开机电路导通,拉低静态5V电压,使其变为0电位。使电源开始工作,从而达到开机目的。(ATX电源里还有一个稳压部分,它需要静态5V变为0电位才能工作)

#include<reg51h>

#define uchar unsigned char

uchar sec,min,num;

sbit led1=P1^0;

sbit led2=P1^1;

sbit key=P3^2;

bit flag;

void delay(uchar x)

{

uchar i,j;

for(i=0;i<x;i++)

for(j=0;j<120;j++);

}

void t0isr() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

num++;

if(num>=20)

{

num=0;

sec++;

if(sec>59)

{

sec=0;

min++;

switch(min)

{

case 0:led1=0;break;

case 1:if(flag){led1=0;min=0;flag=0;}

break;

case 4:led1=1;led2=0;break;

case 8:led2=1;break;

default:break;

}

if(min>=20)min=0;

}

}

}

void ext0() interrupt 0

{

delay(30);

if(key==0)

{

while(!key);

flag=1;

sec=0;

min=0;

num=0;

led1=1;

led2=1;

}

}

main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;

EA=1;

EX0=1;

IT0=1;

TR0=1;

led1=0;

led2=1;

flag=0;

while(1);

}

以上就是关于51单片机汇编:p1.0控制一个LED,每5s状态反转一次,用定时器中断全部的内容,包括:51单片机汇编:p1.0控制一个LED,每5s状态反转一次,用定时器中断、it8772e开机原理、求单片机C语言编程p1.0,p1.1分别控制led1,led2. p3.2控制按键开关,求详细C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/8817478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存