为您找到"
单片机AT89C51的P2口接8个LED,让这8个LED显示闪烁功能即8个LED1s熄 ...
"相关结果约100,000,000个
include "STC89C51.H"include <intrins.h> void Dely1m(void){ unsigned char i;WDT_CONTR = 0x35;for(i=0;i<100;i++) // 1ms { _nop_();} } //--- void delays(unsigned int i)//1s { unsigned int j;for(j=0;j
include<reg51.h> define Frequency 12 //晶振几M的就改成几 define Time 5000*(Frequency/12)unsigned char counter=0;void initT0(){ TMOD=0x01;TH0=-Time/256;TL0=-Time%256;ET0=1;EA=1;TR0=1;}void intT0(void)interrupt 1 { counter++;TH0=-Time/256;TL0=-Time%256;...
LED负极接单片机IO口,本程序接P1,低电平点亮 include <reg52.h> //52系列单片机头文件 include <intrins.h> define uint unsigned int //宏定义 define uchar unsigned char void delayms(uint); //声明子函数 uchar aa;void main() //主函数 { aa=0xfe; //赋初值11111110 ...
我给你做个例子吧,把接LED灯的io口赋值0,灯亮;把接LED灯的io口赋值1,灯灭 因为一般接io口的LED灯有个上拉高电平,io这端给他个低电平(0),造成电压差,就有电流通过,灯就亮了;反之,io给高电平(1),没有压差,无电流,灯灭。下面的你自己应该可以写了,锻炼下手。void delay(void...
void main(){ unsigned int a;unsigned char b=0xfe;for(a=0;a<8;a++){ P1=b;//P1口接8个LED灯 delay(200);b=_crol_ (b,1);} } void delay(unsigned int z){ unsigned int i;for(;z>0;z--) //延迟时间自己算吧 for(i=110;i>0;i--);} 用汇编写这个容易点 main...
define LED P1 sbit k1=P3^0;sbit k2=P3^1;sbit k3=P3^2;void delay(unsigned int t)//12M晶振延迟约1ms { unsigned int i,j;for(i=0;i<t;i++)for(j=0;j<125;j++);} void LED1(void)//轮流亮 { unsigned char i,dat=0x01;for(i=0;i<8;i++){ LED=dat;dat<<=1;d...
{ t2=0;sec2++;} if(sec1<3)P1=P1|0x0f;else P1=P1&0xf0;sec2%=8;} main(){ TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TR0=1;ET0=1;TR1=1;ET1=1;EA=1;t1=0;t2=0;sec1=0;sec2=0;while(1);} ...
根据你的要求写了一个,记得选择满意答案哦 ;FOSC = 12MHz ;sysclk = 1us flag bit 00h cnt equ 25000 ;计时器初始值,频率 = 20,周期 = 50ms,一半为25ms org 00h jmp main org 0003h jmp int0_isr org 000bh t0_isr:mov tl0,#(65536 - cnt) mod 256 mov th0,#(65536 - ...
灯光起来其实是看你对单片机引脚的输出,用二进制表示 你可以打开电脑的计算器,从查看那里选择 程序员 类型的计算器,使用二进制 1000 0000表示左边第一个灯,1100 0000表示左边两个灯 然后转回十进制或十六进制赋值给引脚p0,假设流水灯使用p0口 while(1){ int n = 128;//1000 000 p0=n;...
用定时器,每隔0.5秒中断一次,在中断服务程序中用P1和0xff异或再赋值给P1,可实现两组交替亮灭