精华内容
下载资源
问答
  • #include <reg52.h> #include <intrins.h> #define uchar unsigned char ...#define uint unsigned int .../**tatle_du数组数据为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,H,L**/ uchar code tatle_du[]={0x...

    #include <reg52.h>
    #include <intrins.h> #define uchar unsigned char #define uint unsigned int /**tatle_du数组数据为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,H,L**/ uchar code tatle_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71, 0x76,0x79,0x38,0}; uchar code tatle_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; sbit dula=P2^6; sbit wela=P2^7; uchar tt,t0,numwe,numdu,temp,bai,shi,ge,flag,flag1; uint shu; void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge); void delay(uchar z); void inter_init(); void main() { inter_init(); while(1) { if(flag1 != 1) { display(7,6,5,bai,shi,ge); } else { display(16,17,18,18,0,19); } } } /*定时器0流水灯与闪烁*/ void inter0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; /*如果减数不到398,流水灯与减数同时运行,如果到了398开启闪烁*/ if(flag != 1) { /*流水灯*/ if(tt==10) { tt=0; delay(5); temp=_crol_(temp,1); P1=temp; } } else { /*使灯闪烁4秒*/ if(tt%4==0) { P1=~P1; } if(tt==80) { TR0=0; P1=0xff; flag1=1; } } } /*定时器1数码管显示*/ void inter1() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; t0++; if(t0==2) { t0=0; shu--; bai=shu/100; shi=shu%100/10; ge=shu%10; if(shu==398) { TR0=0; //关闭定时器0,关闭流水灯 P1=0xff; TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt=0; TR0=1; //开启定时器0,并填充数据。使灯闪烁 flag=1; TR1=0; //关闭定时器1保持数据显示 } } } void delay(uchar z) { uchar x,y; for(x=z;x>0;x--) { for(y=110;y>0;y--); } } void inter_init() { tt=0; t0=0; flag=0; flag1=0; shu=432; temp=0xfe; P1=temp; TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; } void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge) { dula=1; P0=tatle_du[aa]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=tatle_du[bb]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); dula=1; P0=tatle_du[cc]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(5); dula=1; P0=tatle_du[bai]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(5); dula=1; P0=tatle_du[shi]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(5); dula=1; P0=tatle_du[ge]; dula=0; P0=0xff; wela=1; P0=0xdf; wela=0; delay(5); }   

     

    转载于:https://www.cnblogs.com/eeexu123/p/6625477.html

    展开全文
  • 利用动态扫描和定时器1在数码管上显示出765432开始以1/10s的速度往下递减至765398 并保持显示此数,与此同时利用定时器0以500ms的速度进行流水灯从上往下移动, 当数码管显示到停止时,实验板上流水灯也停止然后全部...

    题目:

    利用动态扫描和定时器1在数码管上显示出765432开始以1/10s的速度往下递减至765398
    并保持显示此数,与此同时利用定时器0以500ms的速度进行流水灯从上往下移动,
    当数码管显示到停止时,实验板上流水灯也停止然后全部开始闪烁,3s后(T0)流水灯全部
    关闭,数码管上显示HELLO并保持

    代码

    /* 利用动态扫描和定时器1在数码管上显示出765432开始以1/10s的速度往下递减至765398
    并保持显示此数,与此同时利用定时器0以500ms的速度进行流水灯从上往下移动,
    当数码管显示到停止时,实验板上流水灯也停止然后全部开始闪烁,3s后(T0)流水灯全部
    关闭,数码管上显示HELLO并保持 */
    
    #include <reg52.h>
    #include <intrins.h>
    
    #define uint unsigned int
    #define uchar unsigned char
    #define ulint unsigned long int
    	
    sbit LE_L = P2^5;			//LED等的锁存器LE口
    sbit LE_D = P2^6;
    sbit LE_W = P2^7;
    
    uchar code table_D[] = {0xC0,0xF9,0xA4,0XB0,0x99,0x92,0x82,0xF8,0x80,0x98,	//[0-9]
    	0x89,0x86,0xC7,0xC0,0xFF};		//H E L O [ 10 11 12 13 不显示]
    uchar code table_W[] = {0x01,0x02,0x04,0x08,0x10,0x20};	//[12345]
    
    uint timeT0 = 0;			//T0口时间变量
    uint timeT1 = 0;			//T1口时间变量
    uint tempL = 0xFE;
    
    void init();//初始化函数
    void delay(uint timeY);	//延时函数
    void displayN(uchar numD,uchar numW);	//单个数码管显示数字函数
    void display(ulint num);	//数码管显示函数
    void ledL();	//	流水灯显示函数
    void ledS();	//	LED闪烁
    void displayH();//数码管显示HELLO
    
    void main(){
    	ulint i = 765432;
    
    	init();
    
    	while(1){								//T1为数字减少计时,T0为LED流水灯间隔时间计时
    		if(i != 765398){			//当数字没减到765398时进入,让数字减
    			display(i);					//显示数字
    			ledL();							//当数字在减少的时候LED灯流水
    			if(timeT1 >= 100){	//当时间为100ms后,i--
    				timeT1 = 0;				//清零T1时间变量
    				i--;
    				}									//T0为LED闪烁计时,T1为LED闪烁时间计时
    		} else if(timeT1 <= 3000){								//当数字减到765398时,数字不再减少,常亮
    				//3s内LED闪烁
    			display(i);
    			ledS();							//当数字减到765398时,LED灯闪烁	
    		} else{							//3s后显示HELLO
    					displayH();		
    		}	
    	}	
    }
    
    //定时器T0中断
    void exterT0() interrupt 1{
    	TH0 = 0xFC;		//1ms
    	TL0 = 0x17;
    	timeT0++;
    }
    //定时器T1中断
    void exterT1() interrupt 3{
    	TH1 = 0xFC;		//1ms
    	TL1 = 0x17;
    	timeT1++;
    }
    //数码管显示HELLO
    void displayH(){
    	displayN(10,0);	//H
    	displayN(11,1);	//E
    	displayN(12,2);	//L
    	displayN(12,3);	//L
    	displayN(13,4);	//O
    	displayN(14,5);
    }
    //LED灯闪烁
    void ledS(){
    	if(timeT0 >= 1000){		//1s后全灭
    		P1 = 0xFF;
    		timeT0 = 0;
    	}else if (timeT0 >= 500){	//没到1s,到0.5s时候全亮
    		P1 = 0x00;					
    	}
    }
    //LED灯流水
    void ledL(){
    	P1 = tempL;
    	if(timeT0 >= 500){
    		timeT0 = 0;
    		tempL = _crol_(tempL,1);
    	}
    	
    }
    //数码管显示数字
    void display(ulint num){
    	//num 765432
    	uchar num0 = (uchar)(num % 1000000 / 100000);
    	uchar num1 = (uchar)(num % 100000 / 10000);
    	uchar num2 = (uchar)(num % 10000 / 1000);
    	uchar num3 = (uchar)(num % 1000 / 100);
    	uchar num4 = (uchar)(num % 100 /10);
    	uchar num5 = (uchar)(num % 10);
    	
    	displayN(num0,0);
    	displayN(num1,1);
    	displayN(num2,2);
    	displayN(num3,3);
    	displayN(num4,4);
    	displayN(num5,5);
    
    }
    //数码管显示单个数字
    void displayN(uchar numD,uchar numW){
    	LE_D = 1;
    	P0 = table_D[numD];
    	LE_D = 0;
    	LE_W = 1;
    	P0 = table_W[numW];
    	LE_W = 0;
    	delay(5);
    	
    	//消隐
    	LE_W = 1;
    	P0 = 0;
    	LE_W = 0;
    }
    //延时
    void delay(uint timeY){			//每次延时1ms
    	uint y;
    	uint z;
    	for(z = timeY; z > 0; z--){
    			for(y = 115; y > 0; y--){}
    	}
    }
    //初始化
    void init(){
    	
    	LE_D = 1;
    	P0 = 0;
    	LE_D = 1;
    	LE_W = 1;
    	P0 = 0xFF;
    	LE_W = 0;
    	
    
    	
    	TMOD = 0x11;			//0001 0001
    	
    	TH0 = 0xFC;				//1ms
    	TL0 = 0x17;	
    	TH1 = 0xFC;				//1ms
    	TL1 = 0x17;
    	
    	EA = 1;						//开总中断
    	
    	ET0 = 1;					//开定时器T0
    	ET1 = 1;					//开定时器T1
    	
    	TR0 = 1;					//T0开始工作
    	TR1 = 1;					//T1开始工作
    }
    
    
    
    展开全文
  • 数码管显示分静态扫描和动态扫描动态扫描显示一般分两种方式 1、选用一个数码管位,写断码显示,延时一定的时间,关闭显示,选择下一位,依次类推,完成数码管的多位扫描显示,这种方式比较耗CPU资源。 2、...

    编写程序,令数码管的显示顺序为:0123,1230,2301,3012。

    数码管显示分静态扫描和动态扫描,动态扫描显示一般分两种方式

    1、选用一个数码管位,写断码显示,延时一定的时间,关闭显示,选择下一位,依次类推,完成数码管的多位扫描显示,这种方式比较耗CPU资源。

    2、利用定时器,每隔一个固定的时间去选通,写断码,这种方式可以降低CPU的占用时间,同时,每个数码管显示时间固定,不存在“抖”的现象。

    本程序中使用第二种方式,利用Timer2定时器的溢出中断实现动态扫描,Timer2包含一个周期控制寄存器,可以自动控制溢出周期。周期控制寄存器PR2的存在使得TIMER2的计数值有一个可以自由设定的上限。当TIMER2与PR2相等,就会清零。

    若使数码管的显示顺序为:0123,1230,2301,3012,可对四个数码管分别设置四个数组:

    • const uint16 display1[] = {0, 1, 2, 3}; //第一位数码管显示顺序
    • const uint16 display2[] = {1, 2, 3, 0}; //第二位数码管显示顺序
    • const uint16 display3[] = {2, 3, 0, 1}; //第三位数码管显示顺序
    • const uint16 display4[] = {3, 0, 1, 2}; //第四位数码管显示顺序

    使得各位分别循环显示相应数字。具体实现方法见源代码。

    #include <htc.h>
    
    #define uint8 unsigned char
    #define uint16 unsigned int
    
    __CONFIG(FOSC_HS &WDTE_OFF &BOREN_OFF &PWRTE_OFF &LVP_OFF); //设置配置位
    //WDTE_OFF:disable watchdog timer       看门狗禁止
    //LVP_OFF:low voltage programming disabled  低电压编程禁止
    //FOSC_HS:high speed crystal/resonator  4M以上晶振选择HS高速
    //PWRTDIS:disable power up timer
    //BOREN_OFF:disable brown out reset
    
    /*************************定义全局变量******************************************/
    
    uint16 count = 0;
    uint16 count2 = 0;
    uint8 chosebit = 0;
    const uint8 disp[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; //0~9共阳数码管段码表
    uint16 i = 0;
    const uint16 display1[] = {0, 1, 2, 3}; //第一位数码管显示顺序
    const uint16 display2[] = {1, 2, 3, 0}; //第二位数码管显示顺序
    const uint16 display3[] = {2, 3, 0, 1}; //第三位数码管显示顺序
    const uint16 display4[] = {3, 0, 1, 2}; //第四位数码管显示顺序
    
    /*******************************************************************************
    * 函 数 名: Time2_Init(void)
    * 函数功能: 定时器2初始化
    * 入口参数: 无
    * 返    回: 无
    *******************************************************************************/
    
    void Time2_Init(void)
    {
        T2CON = 0x01;   //postscale 1:1 prescale 1:4
        PR2 = 250;      //匹配寄存器   1*4*250*200ns = 200us
        TMR2 = 0x00;    //计数器清零
        TMR2IE = 1;
        TMR2IF = 0;
        PEIE = 1;           //开外设中断
        GIE = 1;            //开总中断
    }
    
    /*******************************************************************************
    * 函 数 名: LED_Display_Init(void)
    * 函数功能: 数码管显示初始化
    * 入口参数: 无
    * 返    回: 无
    *******************************************************************************/
    
    void LED_Display_Init(void)
    {
        ADCON1 = 0x86;  //10000110  PORTA口设置为数字IO口
        TRISA &= 0xE3;  //RA2、RA3、RA4设置成输出模式
        TRISE &= 0xEF;  //配置PORTD为普通IO口,对PORTD的操作务必加上这句
        TRISD = 0x00;   //数据线配置为输出
    }
    
    /******************************************************************************
    * 函 数 名: main(void)
    * 函数功能: 利用定时器2进行计时
    * 入口参数: 无
    * 返    回: 无
    *******************************************************************************/
    
    void main(void)
    {
        LED_Display_Init();
        Time2_Init();
        TMR2ON = 1;     //开始计数
        while(1)
        {
        }
    }
    
    /******************************************************************************
    * 函 数 名: interrupt Time2(void)
    * 函数功能: 中断处理程序
    * 入口参数: 无
    * 返    回: 无
    *******************************************************************************/
    
    void interrupt Time2(void)
    {
        if(TMR2IF)              //定时器2计数值与pr2匹配
        {
            TMR2IE = 0;
            TMR2ON = 0;         //停止计数
            TMR2IF = 0;
            count++;            //计数器加1
            count2++;
            if(count >= 25)     //200us*25=5ms(200HZ)
            {
                count = 0;
                PORTD = 0xFF;
                switch(chosebit)
                {
                case 0:
                    PORTA = (PORTA & 0xE3) | 0x0c;  //选通第一位数码
                    PORTD = disp[display1[i]];      //送字型
                    chosebit = 1;
                    break;
                case 1:
                    PORTA = (PORTA & 0xE3) | 0x10;  //选通第二位数码
                    PORTD = disp[display2[i]];      //送字型
                    chosebit = 2;
                    break;
                case 2:
                    PORTA = (PORTA & 0xE3) | 0x14;  //选通第三位数码
                    PORTD = disp[display3[i]];      //送字型
                    chosebit = 3;
                    break;
                case 3:
                    PORTA = (PORTA & 0xE3) | 0x18;  //选通第四位数码
                    PORTD = disp[display4[i]];      //送字型
                    chosebit = 0;
                    break;
                default:
                    break;
                }
            }
            if(count2 >= 5000) //当前显示数字驻留 5000/100*(4*5)mS=1S
            {
                i++;
                if(i == 4)
                {
                    i = 0;
                }
                count2 = 0;
            }
            TMR2 = 0x00;    //计数器清零
            TMR2ON = 1;
            TMR2IE = 1;
        }
    }
    展开全文
  • 利用动态扫描和定时器1在数码管上显示出从765432开始以 1/10秒的速度往下递减直至765398并保持显示此数,与此 同时利用定时器0以500MS速度进行流水灯从上至下移动,当 数码管上数减到停止时,实验板上流水灯也...
    利用动态扫描和定时器1在数码管上显示出从765432开始以
    1/10秒的速度往下递减直至765398并保持显示此数,与此
    同时利用定时器0以500MS速度进行流水灯从上至下移动,当
    数码管上数减到停止时,实验板上流水灯也停止然后全部开始
    闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出
    ‘HELLO’,到此保持住。
    
    #include<reg52.h>
    #include<intrins.h>
    #define uchar unsigned char
    #define uint unsigned int 
    uchar temp,t0,t1,flag,flag1;
    uint shu;
    uchar aa,bb,cc,bai,shi,ge;
    sbit wela=P2^0;
    sbit dula=P2^1;
    uchar code table[]={
    0x3f,0x06,0x5b,0x4f,
    0x66,0x6d,0x7d,0x07,
    0x7f,0x6f,0x77,0x7c,
    0x39,0x5e,0x7b,0x71,
    0x76,0x79,0x38,0x3f,0};
    void init();
    void Delay(uchar z);
    void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge);
    void main()
    {
    	init();
    	while(1)
    	{
    		if(flag1!=1)
    		{
    	    	display(7,6,5,bai,shi,ge);
    		}
    		else
    		{
    			display(16,17,18,18,19,20);
    		}
    	}
    }
    void init()
    {
    	flag=0;
    	shu=432;
    	temp=0xfe;
    	P1=temp;
    	TMOD=0x11;
    	TH0=(65536-50000)/256;
    	TL0=(65536-50000)%256;
    	TH1=(65536-50000)/256;
    	TL1=(65536-50000)%256;
    	EA=1;
    	ET0=1;
    	ET1=1;
    	TR0=1;
    	TR1=1;	
    }
    void timer0() interrupt 1
    {
    	TH0=(65536-50000)/256;
    	TL0=(65536-50000)%256;
    	t0++;
    	if(flag!=1)
    	{
    		if(t0==10)
    		{
    			t0=0;
    			temp=_crol_(temp,1);
    			P1=temp;
    		}
    	}
    	else
    	{
    		if(t0%4==0)
    		{
    			P1=~P1;
    			if(t0==60)
    			{
    				TR0=0;
    				P1=0xff;
    				flag1=1;
    			}
    		}
    	}	
    }
    void timer1() interrupt 3
    {
    	TH1=(65536-50000)/256;
    	TL1=(65536-50000)%256;
    	t1++;
       	if(t1==2)
    	{
    		t1=0;
    		shu--;
    		bai=shu/100;
    		shi=shu%100/10;
    		ge=shu%10;
    		if(shu==398)
    		{
    			TR0=0;
    			TH0=(65536-50000)/256;
    			TL0=(65536-50000)%256;
    			TR0=1;
    			flag=1;
    			t0=0;
    			P1=0xff;
    			TR1=0;
    		}	
    	}
    }				  
    void Delay(uchar z)
    {
    	uchar x,y;
    	for(x=z;x>0;x--)
    	{
    		for(y=110;y>0;y--);
    	}
    }
    void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge)
    {
    	dula=1;
    	P0=table[aa];
    	dula=0;
    	P0=0xff;
    	wela=1;
    	P0=0xfe;
    	wela=0;
    	Delay(1);
    	
    	dula=1;
    	P0=table[bb];
    	dula=0;
    	P0=0xff;
    	wela=1;		   
    	P0=0xfd;
    	wela=0;
    	Delay(1);
    	
    	dula=1;
    	P0=table[cc];
    	dula=0;
    	P0=0xff;
    	wela=1;
    	P0=0xfb;
    	wela=0;
    	Delay(1);
    
    	dula=1;
    	P0=table[bai];
    	dula=0;
    	P0=0xff;
    	wela=1;
    	P0=0xf7;
    	wela=0;
    	Delay(1);
    
    	dula=1;
    	P0=table[shi];
    	dula=0;
    	P0=0xff;
    	wela=1;
    	P0=0xef;
    	wela=0;
    	Delay(1);
    
    	dula=1;
    	P0=table[ge];
    	dula=0;
    	P0=0xff;
    	wela=1;
    	P0=0xdf;
    	wela=0;
    	Delay(1);
    }
    

      

    转载于:https://www.cnblogs.com/fengyepiaolei/archive/2011/11/18/2254560.html

    展开全文
  • 流水灯&数码管&定时器中断

    千次阅读 2016-04-16 09:10:35
    利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后...
  • 传统的Qt曲线绘制主要是利用QPainter、QPaintDevice、 QpainterEngine 类进行...最后使用定时器实现不断刷新屏幕,达到动态扫描效果.。 2.曲线绘制流程 步骤1:根据图形界面显示的需求,采用QRect类建立曲线绘制区域...
  • 中断+数码管动态显示+流水灯

    千次阅读 2017-05-21 13:12:34
    Question:利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯...
  • 3 利用动态扫描和定时器1在数码管上显示出从765432开始, 4 以1/10秒的速度往下递减直至765398并保持显示此数,, 5 与此同时利用定时器0以500MS速度进行流水灯从上至下移动, 6 当数码管上数减到停止时,实验...
  • 2011_11_7单片机(五)

    2011-11-07 20:47:13
    题目:利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也...
  • 6.1.5 动态添加、修改删除选项菜单 175 6.1.6 带复选框选项按钮的子菜单 176 6.1.7 上下文菜单 178 6.1.8 菜单事件 179 6.1.9 从菜单资源中装载菜单 180 6.2 菜单特效 181 6.2.1 自定义菜单 181 ...
  • 计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时1秒中的功能。然后,当计时每到1秒钟后,倒计时的计数器减1。当...
  • C51单片机实现 贪吃蛇

    2020-06-04 09:12:31
    一. 实验所需模块 4×4矩阵键盘,8×8点阵,定时器0 二. 模块简介 4×4矩阵键盘 矩阵键盘采用行扫描的方式进行判断那个按键被按下了 ...与动态数码类似,利用视觉残留效果,即可实现动态依次点亮的效果 定时器
  • 实现原理:利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。电路主要模块及...
  • 基于单片机的交通灯信号控制器设计

    万次阅读 多人点赞 2011-02-28 20:16:00
    二:任务分析与整体设计思路通过分析可知本次设计要求实现的功能主要包括计时功能、动态扫描以及状态的切换等几部分。计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断的时间...
  • 实例067——动态创建删除编辑控件 实例068——在视图中创建使用控件 第4章 实例069——使用列表控件添加选择数据项 实例070——动态设置列表控件的不同显示方式 实例071——实现列表控件的扩展风格...
  • VC++6.0示例程序光盘.part1

    热门讨论 2011-02-21 09:17:43
    实例067——动态创建删除编辑控件 实例068——在视图中创建使用控件 第4章 实例069——使用列表控件添加选择数据项 实例070——动态设置列表控件的不同显示方式 实例071——实现列表控件的扩展风格...
  • 实例067——动态创建删除编辑控件 实例068——在视图中创建使用控件 第4章 实例069——使用列表控件添加选择数据项 实例070——动态设置列表控件的不同显示方式 实例071——实现列表控件的扩展风格...
  • PDF格式扫描版,全书分为8章,共720页。1993年2月出版。 内容简介 《单片机应用技术选编》系列图书是汇集了多年间国内主要期刊杂志中有关单片机应用系统的通用技术、实用技术以及相关领域中的新器件、新技术等技术...
  • FTP的目标是:(1)提高文件的共享性(计算机程序/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠高效地传输,虽然用户可以在终端上...
  • FTP的目标是:(1)提高文件的共享性(计算机程序/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠高效地传输,虽然用户可以在终端上...
  • 动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60秒定时器 下载地址:http://pan.baidu.com/s/1gdvhc59 第五讲:独立键盘、矩阵键盘的检测原理及实现 键盘用来做什么、如何键盘检测、消抖、键盘...
  • 7.1.1.1 定时器/计数器0 和定时器/计数器1 7.1.1.2 定时器/计数器2~定时器/计数器4 7.1.1.3 C8051F320 单片机的定时器/计数器3 7.1.1.3 利用Configuration Wizard获得C8051F320 单片机相关程序代码 7.1.2 程序...
  • 显示器的驱动采用动态扫描电路形式,采用74LS244晶体管来增加电路驱动能力; 通过复位按键实现电路复位;利用按键K0来调整时间或者日期;通过按键K1实现数码显示管闪动位的转移,也就是分、秒、时或者年、月、日的...
  • 利用定时器0 来控制1S 的定时,同时定时/计数器T1 对外部的待 第2 页共27 页 测信号进行计数,定时结束时TR1 清0 ,停止计数;最后从计数寄存器读出测量数 据,在完成数据处理后,由显示电路显示测量结果。在使用定时...
  • 16.2.2 动态扫描显示法189 16.3 静态显示实验190 16.3.1 实现方法190 16.3.2 源程序文件190 16.3.3 程序分析解释191 16.4 慢速动态显示实验192 16.4.1 源程序文件192 16.4.2 程序分析解释193 16.5 快速动态显示实验...
  • JavaScript王者归来

    2013-01-10 11:30:48
    3.4.2 原始的调试方法--利用输出语句、“反射”机制调试对象来进行调试 3.4.3 适合JavaScript的调试工具 3.5 定位代码调用堆栈 3.5.1 Step by Step--单步断点 3.5.2 监视内存 3.5.3 追踪问题的源头--查看调用...
  • LED点阵矩阵时钟3216

    2011-04-04 08:03:56
    //*功能:通过动态扫描显示时钟,可显示时,分,秒,日期中的月和日 //*作者:HEY //*日期:2006-05-29 //*邮箱:billy3416@163.com //*备注:此是我刚接触单片机时的一个小制作 程序电路设计上难免有不足之处 请谅解 //===...
  • Proteus仿真—40个单片机初学程序.

    热门讨论 2009-04-13 13:00:56
    用P1.0输出1KHz500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2. 电路原理图 ...
  • VC++6.0示例程序光盘

    热门讨论 2012-03-18 13:40:03
    实例067——动态创建删除编辑控件 实例068——在视图中创建使用控件 第4章 实例069——使用列表控件添加选择数据项 实例070——动态设置列表控件的不同显示方式 实例071——实现列表控件的扩展风格...
  • C++范例大全(400)

    2013-06-29 21:23:07
    实例067——动态创建删除编辑控件 实例068——在视图中创建使用控件 第4章 实例069——使用列表控件添加选择数据项 实例070——动态设置列表控件的不同显示方式 实例071——实现列表控件的扩展风格(拖放...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

利用动态扫描和定时器1