性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

高山云教你之一----自學(xué)單片機(jī)--所有(C,匯編)程序更新OK,請下載

看帖請一定跟帖,你的跟帖就是我更新的動力!?。。。?! 

 



高山云系列教程之三:高山云教你----單片機(jī)玩轉(zhuǎn)太陽能逆變系統(tǒng)

http://www.e-ticket.cn/bbs/1488289.html   

高山云系列教程之二:高山云教你----單片機(jī)控制全彩LED入門到精通

http://www.e-ticket.cn/bbs/1485719.html





 部分電友反應(yīng)帖子太長,由于受網(wǎng)絡(luò)影響,很多程序看的時候不方便,以下是所有的程序,分卷壓縮后上傳在此次,歡迎下載!

高山云教你學(xué)單片機(jī)全部程序包.part01.rar

高山云教你學(xué)單片機(jī)全部程序包.part02.rar

高山云教你學(xué)單片機(jī)全部程序包.part03.rar

高山云教你學(xué)單片機(jī)全部程序包.part04.rar

高山云教你學(xué)單片機(jī)全部程序包.part05.rar  






 

        程序中有什么疑惑的請一定留言,本人將一一解答,本人能力有限不足之處請留言批評!


 高山云先生來自某知名高校,憑著對電子技術(shù)的愛好和自己的不懈努力,在微控制器領(lǐng)域擁有良好的口碑,在近10年的時間里先后服務(wù)于國內(nèi)多家知名大型企業(yè)和教育機(jī)構(gòu)。在此期間高山云先生當(dāng)過老師、做過設(shè)計(jì)、帶過團(tuán)隊(duì)等也幫助了不少的有志青年。精通數(shù)款主流微控制器,在工業(yè)控制、電源管理、新型節(jié)能產(chǎn)品中有自己的獨(dú)到見解和獨(dú)特設(shè)計(jì)思路。

 

根據(jù)你個人的實(shí)際情況選擇一種你認(rèn)為能學(xué)會的語言學(xué)習(xí),有什么問題或是好的建議請跟帖留言,我會慢慢更新后面的程序和實(shí)例程序,后面教程目錄還沒有更新完整,有什么好的項(xiàng)目適合新人學(xué)習(xí)的也可以提出,我在后面加上相應(yīng)的目錄。(個人建議如果你是半路出家并且學(xué)歷較低但又想學(xué)單片機(jī)的最好先學(xué)學(xué)匯編語言,匯編語言是一門讓你能很清楚了解單片機(jī)的運(yùn)行順序的語言,很直觀但是很啰嗦,累贅!入門容易點(diǎn),記住111條指令就OK,C語言太靈活了,100個人可以有100種不同的風(fēng)格和寫法,對半路出家的人來說還是有難度)

 

    以下為本人授課的目錄:   應(yīng)網(wǎng)友要求一下課程將做適當(dāng)調(diào)整

【項(xiàng)目一】多效果速度可變LED項(xiàng)目:   

1.點(diǎn)亮一個LED       (點(diǎn)亮一個LED、LED按一定延時閃爍)  

2.LED跑馬燈         (直接賦值、左右移循環(huán)、查表法)  

3.按鍵控制LED      (按鍵實(shí)現(xiàn)LED左移)  

4.單個數(shù)碼管的使用  (單個數(shù)碼管顯示0-9)  

5.數(shù)碼管動態(tài)掃描     (8個數(shù)碼管分別顯示0-9)

6.按鍵控制數(shù)碼管    (籃球計(jì)分器的實(shí)現(xiàn)) 

7.簡易電梯顯示程序?qū)崿F(xiàn) 

8【終極項(xiàng)目】多效果速度可變LED控制系統(tǒng)(用數(shù)碼管顯示LED循環(huán)模式,顯示LED變化速度,按鍵可以修改速度和模式)

 

【項(xiàng)目二】點(diǎn)陣顯示屏

9.8X8點(diǎn)陣點(diǎn)亮一個點(diǎn)

10.8X8點(diǎn)陣點(diǎn)亮全屏點(diǎn)亮

11.8x8點(diǎn)亮一條斜線

12.8X8點(diǎn)陣靜態(tài)顯示一個簡易漢字或圖形

13.8x8點(diǎn)陣動態(tài)顯示一個簡易漢字或圖形

14.16X16靜態(tài)顯示一個漢字

15.【終極項(xiàng)目】16X16動態(tài)顯示多個漢字

 

【項(xiàng)目三】帶鬧鐘電子鐘

16.定時器的使用              (讓單個LED每秒鐘閃爍一次) 

17.倒計(jì)時顯示器              (59秒倒計(jì)時) 

18.電子鐘設(shè)計(jì)                 (簡易電子鐘) 

19.可調(diào)時間電子鐘設(shè)計(jì)    (一般電子鐘) 

10.帶鬧鐘電子鐘設(shè)計(jì)      (中級電子鐘) 

 

我的授課主要以項(xiàng)目方式進(jìn)行描述也是按本人在工作中的一貫設(shè)計(jì)風(fēng)格進(jìn)行,授課目錄先暫定這么多,后續(xù)的再更新!

 

發(fā)點(diǎn)福利:

先上一個個人的工程項(xiàng)目,程序?yàn)镈EMO版,有小BUG,初學(xué)完全夠了!這個項(xiàng)目以前發(fā)在LED照明版塊了沒有人理!這次轉(zhuǎn)移過來希望有識貨的來批評指正!  其實(shí)可以用一個8腳的小芯片,我手頭沒有,就用了這個QFP44的大單片機(jī)!如果有興趣的可以去改改!

  壓縮文件目錄:

                        1->hongwai.hex                           

                         2->Sheet1.Sch                           

                        3->yaok_led(eerom+wdt).c                           

                        4->soft_Lamp_controller(VER1).pcb                           

                        5->遙控器.bmp 

C程序里有一個頭文件,自己去STC單片機(jī)官方網(wǎng)上下載,把名字重命名為:STC90.h要不然編譯的時候會報錯!

 

1386999560-57770-600[1]

1386999827-59413-600

程序地址:1388104588-37493.rar

 

 

 

12864液晶屏顯示動畫:

 


8887

 

 

 

88887

 

 

程序地址:12864液晶屏顯示動畫.rar

    

全部回復(fù)(406)
正序查看
倒序查看
2014-04-08 09:59
先描述一下我在編程中使用到的軟件:Keil Uvision 4 (匯編\C均用次軟件),仿真 Proteus 7.8 破解版  SP2
0
回復(fù)
2014-04-08 10:45
@yueyunno1
先描述一下我在編程中使用到的軟件:KeilUvision4 (匯編\C均用次軟件),仿真Proteus7.8 破解版 SP2

【第一個程序---點(diǎn)亮一個LED燈】

      仿真圖

以上是C語言

以上是匯編語言

以上是仿真

 

下載鏈接:點(diǎn)亮一個LED燈.rar

 

0
回復(fù)
2014-04-08 10:47
@yueyunno1
【第一個程序---點(diǎn)亮一個LED燈】      仿真圖[圖片]以上是C語言[圖片]以上是匯編語言[圖片]以上是仿真 下載鏈接:點(diǎn)亮一個LED燈.rar 
以上是第一個程序和以后的程序風(fēng)格,如果有什么異議可以提出,我也做適當(dāng)修改
0
回復(fù)
2014-04-08 11:03
@yueyunno1
先描述一下我在編程中使用到的軟件:KeilUvision4 (匯編\C均用次軟件),仿真Proteus7.8 破解版 SP2

Keil_uvision_4 基本使用教程.pdf

            

0
回復(fù)
2014-04-08 11:05
@yueyunno1
Keil_uvision_4基本使用教程.pdf            
0
回復(fù)
2014-04-08 12:49
@yueyunno1
以上是第一個程序和以后的程序風(fēng)格,如果有什么異議可以提出,我也做適當(dāng)修改
不錯
0
回復(fù)
2014-04-08 13:07
@SKY丶輝煌
不錯
0
回復(fù)
2014-04-08 13:45

【第二個程序---一個LED每秒閃爍一次】

 

/////////////////////////////////////////////////////////////////////////

匯編版

/////////////////////////////////////////////////////////////////////////

/***********************************************************************/
/***名稱:LED燈每秒閃爍1次     ********************************************/
/***功能:LED燈每秒閃爍1次**********************************************/
/*********************************************************************
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_GREEN	EQU P2.0
PORT_2	EQU P2
DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
LOOP:	SETB LED_GREEN	 //開燈
	CALL DELAY_1S	 //延時1S
	CLR  LED_GREEN	 //關(guān)燈
	CALL DELAY_1S	 //延時1S
	SJMP LOOP
/*---------------------------------------------------------------------*/
/*--   延時程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:	MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

	

 

 

 

/////////////////////////////////////////////////////////////////////////

C語言版

/////////////////////////////////////////////////////////////////////////

/***********************************************************************/
/***名稱:LED燈每秒閃爍一次    ********************************************/
/***功能:LED燈每秒閃爍一次    ********************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define HIGH 1
#define LOW	 0
sbit LED_GREEN = P2^0;

/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	PORT_2=0X00;
	while(1)
	{
		LED_GREEN=HIGH;
		DELAY_1MS(1000);
		LED_GREEN=LOW;
		DELAY_1MS(1000);
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
程序包下載地址:一個LED燈閃爍.rar  (包含匯編語言,C語言)

 

0
回復(fù)
2014-04-08 14:03

【第三個程序 LED跑馬燈】

 

貼一個自己用EXCEL2003編寫的LED流水燈效果自動生成代碼的軟件   下載地址:LED流水燈效果自動計(jì)算表格.xls

如果不能正常顯示請按以下操作即可:點(diǎn)擊菜單欄:工具----->加載宏----->勾選上分析工具庫   點(diǎn)確定即可正常顯示

 

 

直接賦值版匯編程序

/***********************************************************************/
/***名稱:LED跑馬燈         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
LOOP:	MOV PORT_2,#01H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#02H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#04H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#08H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#10H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#20H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#40H
	CALL DELAY_1S	 //延時1S
	MOV PORT_2,#80H
	CALL DELAY_1S	 //延時1S
	SJMP LOOP
/*---------------------------------------------------------------------*/
/*--   延時程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:	MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END
直接賦值版--C程序
/***********************************************************************/
/***名稱:LED跑馬燈         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	PORT_2=0X00;
	while(1)
	{
		PORT_2=0x01;
		DELAY_1MS(1000);
		PORT_2=0x02;
		DELAY_1MS(1000);
		PORT_2=0x04;
		DELAY_1MS(1000);
		PORT_2=0x08;
		DELAY_1MS(1000);
		PORT_2=0x10;
		DELAY_1MS(1000);
		PORT_2=0x20;
		DELAY_1MS(1000);
		PORT_2=0x40;
		DELAY_1MS(1000);
		PORT_2=0x80;
		DELAY_1MS(1000);
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
 
0
回復(fù)
2014-04-08 14:22

【第四個程序 LED跑馬燈-循環(huán)移位版】

//////////////////////////////////////////////////

匯編程序

//////////////////////////////////////////////////

/***********************************************************************/
/***名稱:LED跑馬燈         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5
		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV A,#01H
LOOP:	MOV PORT_2,A
	CALL DELAY_1S	 //延時1S
	RL A
	SJMP LOOP 
/*---------------------------------------------------------------------*/
/*--   延時程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

/*//////////////////////////////////////////////////

c程序

//////////////////////////////////////////////////

/***********************************************************************/
/***名稱:LED跑馬燈         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	U8 i,j;
	PORT_2=0X00;
	while(1)
	{
		i=0x01;
		for(j=0;j<8;j++)
		{
			PORT_2=i;
			DELAY_1MS(1000);
			i=i<<1;
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

 

0
回復(fù)
2014-04-08 14:39

【第五個程序 LED跑馬燈-查表法】

/////////////////////////////////////////////

匯編程序

/////////////////////////////////////////////

/***********************************************************************/
/***名稱:LED跑馬燈         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

LOOP_TEMP	EQU R4
LOOP_TEMP1       EQU R3		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV LOOP_TEMP,#8
	MOV LOOP_TEMP1,#0
LOOP:	MOV A,LOOP_TEMP1
	MOV DPTR,#LED_TAB
	MOVC A,@A+DPTR
	MOV PORT_2,A
	CALL DELAY_1S	 //延時1S
	INC LOOP_TEMP1
	DJNZ LOOP_TEMP,LOOP
	SJMP MAIN 
/*---------------------------------------------------------------------*/
/*--   延時程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   LED顯示數(shù)組              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 01H,02H,04H,08H,10H,20H,40H,80H

/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

/////////////////////////////////////////////

C語言程序

/////////////////////////////////////////////

/***********************************************************************/
/***名稱:LED跑馬燈         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2

/*---------------------------------------------------------------------*/
/*--   其他定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code LED_TEB[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};	 //LED數(shù)組

/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	U8 j;
	PORT_2=0X00;
	while(1)
	{
		for(j=0;j<8;j++)
		{
			PORT_2=LED_TEB[j];
			DELAY_1MS(1000);
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

0
回復(fù)
2014-04-08 15:17
@yueyunno1
【第五個程序LED跑馬燈-查表法】/////////////////////////////////////////////匯編程序//////////////////////////////////////////////***********************************************************************//***名稱:LED跑馬燈********************************************//***功能:流水效果********************************************//***********************************************************************//*---------------------------------------------------------------------*//*--端口定義---------------------------------------*//*---------------------------------------------------------------------*/PORT_2EQUP2DEL_TEMP1EQUR7DEL_TEMP2EQUR6DEL_TEMP3EQUR5LOOP_TEMPEQUR4LOOP_TEMP1EQUR3/*---------------------------------------------------------------------*//*--程序開始---------------------------------------*//*---------------------------------------------------------------------*/ORG0000HSJMPMAINORG0030H/*---------------------------------------------------------------------*//*--主程序---------------------------------------*//*---------------------------------------------------------------------*/MAIN:MOVPORT_2,#00H//端口初始化MOVLOOP_TEMP,#8MOVLOOP_TEMP1,#0LOOP:MOVA,LOOP_TEMP1MOVDPTR,#LED_TABMOVCA,@A+DPTRMOVPORT_2,ACALLDELAY_1S//延時1SINCLOOP_TEMP1DJNZLOOP_TEMP,LOOPSJMPMAIN/*---------------------------------------------------------------------*//*--延時程序---------------------------------------*//*---------------------------------------------------------------------*/DELAY_1S:MOVDEL_TEMP1,#8DEL1:MOVDEL_TEMP2,#250DEL2:MOVDEL_TEMP3,#248DEL3:DJNZDEL_TEMP3,DEL3DJNZDEL_TEMP2,DEL2DJNZDEL_TEMP1,DEL1RET/*---------------------------------------------------------------------*//*--LED顯示數(shù)組---------------------------------------*//*---------------------------------------------------------------------*/LED_TAB:DB01H,02H,04H,08H,10H,20H,40H,80H/*---------------------------------------------------------------------*//*--程序結(jié)束---------------------------------------*//*---------------------------------------------------------------------*/END/////////////////////////////////////////////C語言程序//////////////////////////////////////////////***********************************************************************//***名稱:LED跑馬燈********************************************//***功能:流水效果********************************************//***********************************************************************/#includetypedefunsignedcharU8;typedefunsignedintU16;/*---------------------------------------------------------------------*//*--端口定義---------------------------------------*//*---------------------------------------------------------------------*/#definePORT_2P2/*---------------------------------------------------------------------*//*--其他定義---------------------------------------*//*---------------------------------------------------------------------*/U8codeLED_TEB[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//LED數(shù)組/*---------------------------------------------------------------------*//*--延時子程序---------------------------------------*//*---------------------------------------------------------------------*/voidDELAY_1MS(U16z){U16x,y;for(x=z;x>0;x--)for(y=123;y>0;y--);}/*---------------------------------------------------------------------*//*--主程序---------------------------------------*//*---------------------------------------------------------------------*/voidmain(){U8j;PORT_2=0X00;while(1){for(j=0;j

最近在學(xué)這個51的,可以跟樓主一起學(xué)習(xí)下

好貼一定要頂

0
回復(fù)
2014-04-08 16:17

【第六個程序-單個按鍵控制LED移位】

 

////////////////////////////////////

匯編程序

////////////////////////////////////

/***********************************************************************/
/***名稱:按鍵控制LED       ********************************************/
/***功能:按一下按鍵LED移動一位*****************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_1	EQU P1
PORT_3	EQU P3

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

LOOP_TEMP	EQU R4
LOOP_TEMP1       EQU R3

IN_KEY	EQU P3.0		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_1,#00H	 //端口初始化
	MOV PORT_3,#0FFH
	MOV LOOP_TEMP,#0
LOOP:	CALL DISPLAY
	CALL KEY
	SJMP LOOP

/*---------------------------------------------------------------------*/
/*--   顯示只程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
DISPLAY:	MOV DPTR,#LED_TAB
	MOV A,LOOP_TEMP
	MOVC A,@A+DPTR
	MOV PORT_1,A 
	RET
/*---------------------------------------------------------------------*/
/*--   按鍵子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/	
KEY:	JNB IN_KEY,KEY1
	SJMP EXIT

KEY1:	CALL DELAY_MS
	JNB IN_KEY,KEY2
	SJMP EXIT

KEY2:	JNB IN_KEY,KEY2
	CJNE LOOP_TEMP,#7,CALC
         MOV LOOP_TEMP,#0
	SJMP EXIT

CALC:	INC LOOP_TEMP

EXIT:	RET
/*---------------------------------------------------------------------*/
/*--   延時程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET

DELAY_MS:MOV DEL_TEMP1,#25
DEL22:	MOV DEL_TEMP3,#25
DEL23:	DJNZ DEL_TEMP3,DEL23
	DJNZ DEL_TEMP2,DEL22
	RET
/*---------------------------------------------------------------------*/
/*--   LED顯示數(shù)組              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 01H,02H,04H,08H,10H,20H,40H,80H

/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

////////////////////////////////////

C語言

////////////////////////////////////

/***********************************************************************/
/***名稱:按鍵控制LED       ********************************************/
/***功能:按一下按鍵LED移動一位*****************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_1 P1
sbit IN_KEY =P3^0;
/*---------------------------------------------------------------------*/			   `
/*--   其他定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code LED_TEB[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};	 //LED數(shù)組
U8 LOOP_TEMP=0;
/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   顯示子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void Dislay()
{
	PORT_1=LED_TEB[LOOP_TEMP];
}
/*---------------------------------------------------------------------*/
/*--   按鍵子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void Key()
{
	if(IN_KEY==0)
	{
		DELAY_1MS(20);
		if(IN_KEY==0)
		{
			while(!IN_KEY);
			if(LOOP_TEMP<7)
				LOOP_TEMP++;
			else
				LOOP_TEMP=0;
		}	
	
	}

}
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	PORT_1=0X00;
	while(1)
	{
		Dislay();
		Key();
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

程序和仿真下載地址:按鍵控制LED.rar

 

0
回復(fù)
2014-04-08 16:25
@yueyunno1
【第三個程序LED跑馬燈】[圖片] 貼一個自己用EXCEL2003編寫的LED流水燈效果自動生成代碼的軟件  下載地址:LED流水燈效果自動計(jì)算表格.xls如果不能正常顯示請按以下操作即可:點(diǎn)擊菜單欄:工具----->加載宏----->勾選上分析工具庫  點(diǎn)確定即可正常顯示 [圖片] 直接賦值版匯編程序/***********************************************************************//***名稱:LED跑馬燈********************************************//***功能:流水效果********************************************//***********************************************************************//*---------------------------------------------------------------------*//*--端口定義---------------------------------------*//*---------------------------------------------------------------------*/PORT_2EQUP2DEL_TEMP1EQUR7DEL_TEMP2EQUR6DEL_TEMP3EQUR5/*---------------------------------------------------------------------*//*--程序開始---------------------------------------*//*---------------------------------------------------------------------*/ORG0000HSJMPMAINORG0030H/*---------------------------------------------------------------------*//*--主程序---------------------------------------*//*---------------------------------------------------------------------*/MAIN:MOVPORT_2,#00H//端口初始化LOOP:MOVPORT_2,#01HCALLDELAY_1S//延時1SMOVPORT_2,#02HCALLDELAY_1S//延時1SMOVPORT_2,#04HCALLDELAY_1S//延時1SMOVPORT_2,#08HCALLDELAY_1S//延時1SMOVPORT_2,#10HCALLDELAY_1S//延時1SMOVPORT_2,#20HCALLDELAY_1S//延時1SMOVPORT_2,#40HCALLDELAY_1S//延時1SMOVPORT_2,#80HCALLDELAY_1S//延時1SSJMPLOOP/*---------------------------------------------------------------------*//*--延時程序---------------------------------------*//*---------------------------------------------------------------------*/DELAY_1S:MOVDEL_TEMP1,#8DEL1:MOVDEL_TEMP2,#250DEL2:MOVDEL_TEMP3,#248DEL3:DJNZDEL_TEMP3,DEL3DJNZDEL_TEMP2,DEL2DJNZDEL_TEMP1,DEL1RET/*---------------------------------------------------------------------*//*--程序結(jié)束---------------------------------------*//*---------------------------------------------------------------------*/END直接賦值版--C程序/***********************************************************************//***名稱:LED跑馬燈********************************************//***功能:流水效果********************************************//***********************************************************************/#includetypedefunsignedcharU8;typedefunsignedintU16;/*---------------------------------------------------------------------*//*--端口定義---------------------------------------*//*---------------------------------------------------------------------*/#definePORT_2P2/*---------------------------------------------------------------------*//*--延時子程序---------------------------------------*//*---------------------------------------------------------------------*/voidDELAY_1MS(U16z){U16x,y;for(x=z;x>0;x--)for(y=123;y>0;y--);}/*---------------------------------------------------------------------*//*--主程序---------------------------------------*//*---------------------------------------------------------------------*/voidmain(){PORT_2=0X00;while(1){PORT_2=0x01;DELAY_1MS(1000);PORT_2=0x02;DELAY_1MS(1000);PORT_2=0x04;DELAY_1MS(1000);PORT_2=0x08;DELAY_1MS(1000);PORT_2=0x10;DELAY_1MS(1000);PORT_2=0x20;DELAY_1MS(1000);PORT_2=0x40;DELAY_1MS(1000);PORT_2=0x80;DELAY_1MS(1000);}}/*---------------------------------------------------------------------*//*--程序結(jié)束---------------------------------------*//*---------------------------------------------------------------------*/ 

都是從最基礎(chǔ)開始,正和我們初學(xué)者 

0
回復(fù)
2014-04-08 16:44

【第七個程序-1位數(shù)碼管循環(huán)顯示0-9】

 

貼一個自己用EXCEL2003編寫的數(shù)碼管段碼生成軟件    下載地址:數(shù)碼管段碼自動計(jì)算表格.xls

 

如果不能正常顯示請按以下操作即可:點(diǎn)擊菜單欄:工具----->加載宏----->勾選上分析工具庫   點(diǎn)確定即可正常顯示

 

仿真圖片:

//////////////////////////////////////////

匯編程序

//////////////////////////////////////////

/***********************************************************************/
/***名稱:1位數(shù)碼管         ********************************************/
/***功能:循環(huán)顯示0-9       ********************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

LOOP_TEMP	EQU R4
LOOP_TEMP1       EQU R3		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_1,#00H
	MOV LOOP_TEMP,#10
	MOV LOOP_TEMP1,#0
LOOP:	MOV A,LOOP_TEMP1
	MOV DPTR,#LED_TAB
	MOVC A,@A+DPTR
	MOV PORT_2,A
	CALL DELAY_1S	 //延時1S
	INC LOOP_TEMP1
	DJNZ LOOP_TEMP,LOOP
	SJMP MAIN 
/*---------------------------------------------------------------------*/
/*--   延時程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   LED顯示數(shù)組              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

//////////////////////////////////////////

C語言程序

//////////////////////////////////////////

/***********************************************************************/
/***名稱:1位數(shù)碼管         ********************************************/
/***功能:循環(huán)顯示0-9       ********************************************/
/***********************************************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1

/*---------------------------------------------------------------------*/
/*--   其他定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code LED_TEB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};	//LED數(shù)組

/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	U8 j;
	PORT_2=0X00;
	PORT_1=0X00;
	while(1)
	{
		for(j=0;j<10;j++)
		{
			PORT_2=LED_TEB[j];
			DELAY_1MS(1000);
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

程序及仿真下載地址:1個數(shù)碼管顯示0-9.rar

 

0
回復(fù)
2014-04-08 16:47
@liguohong327
都是從最基礎(chǔ)開始,正和我們初學(xué)者 

我會陸續(xù)更新!?。。?

0
回復(fù)
2014-04-09 09:18

【第八個程序-8位數(shù)碼管動態(tài)顯示0-7】

 

////////////////////////////////////

匯編程序

////////////////////////////////////

/***********************************************************************/
/***名稱:8位數(shù)碼管         ********************************************/
/***功能:依次顯示0-7       ********************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0
DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5
LOOP_TEMP	EQU R4
LOOP_TEMP1        EQU R3
MOVE_NUM	         EQU R2		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#0FFH	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#00H
	MOV LOOP_TEMP,#8
	MOV LOOP_TEMP1,#0
	MOV MOVE_NUM,#0FEH
	MOV DPTR,#LED_TAB
LOOP:	MOV A,LOOP_TEMP1
	MOVC A,@A+DPTR
	MOV PORT_0,A
	MOV PORT_2,MOVE_NUM
	CALL DELAY_MS	 //延時1S
	MOV PORT_0,#00H	 //消鬼影
	MOV PORT_2,#0FFH	 //消鬼影
	MOV A,MOVE_NUM
	RL A
	MOV MOVE_NUM,A
	INC LOOP_TEMP1
	DJNZ LOOP_TEMP,LOOP
	SJMP MAIN 
/*---------------------------------------------------------------------*/
/*--   1s延時程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   MS延時程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_MS:MOV DEL_TEMP1,#10
DEL22:	MOV DEL_TEMP3,#10
	DJNZ DEL_TEMP3,$
	DJNZ DEL_TEMP2,DEL22
	RET
/*---------------------------------------------------------------------*/
/*--   LED顯示數(shù)組              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

////////////////////////////////////

C程序

////////////////////////////////////

/***********************************************************************/
/***名稱:8位數(shù)碼管         ********************************************/
/***功能:依次顯示0-7       ********************************************/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0
/*---------------------------------------------------------------------*/
/*--   其他定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code LED_TEB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};	//LED數(shù)組

/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	U8 i,j;
	PORT_2=0XFF;
	PORT_1=0X00;
	PORT_0=0X00;
	while(1)
	{
		i=0x01;
		for(j=0;j<8;j++)
		{
			PORT_0=LED_TEB[j];
			PORT_2=~i;
			DELAY_1MS(5);
			PORT_0=0X00;
			PORT_2=0XFF;
			i=i<<1;
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

0
回復(fù)
amwcel
LV.4
19
2014-04-09 10:26
@yueyunno1
【第八個程序-8位數(shù)碼管動態(tài)顯示0-7】[圖片] ////////////////////////////////////匯編程序/////////////////////////////////////***********************************************************************//***名稱:8位數(shù)碼管********************************************//***功能:依次顯示0-7********************************************//***********************************************************************//*---------------------------------------------------------------------*//*--端口定義---------------------------------------*//*---------------------------------------------------------------------*/PORT_2EQUP2PORT_1EQUP1PORT_0EQUP0DEL_TEMP1EQUR7DEL_TEMP2EQUR6DEL_TEMP3EQUR5LOOP_TEMPEQUR4LOOP_TEMP1EQUR3MOVE_NUMEQUR2/*---------------------------------------------------------------------*//*--程序開始---------------------------------------*//*---------------------------------------------------------------------*/ORG0000HSJMPMAINORG0030H/*---------------------------------------------------------------------*//*--主程序---------------------------------------*//*---------------------------------------------------------------------*/MAIN:MOVPORT_2,#0FFH//端口初始化MOVPORT_1,#00HMOVPORT_0,#00HMOVLOOP_TEMP,#8MOVLOOP_TEMP1,#0MOVMOVE_NUM,#0FEHMOVDPTR,#LED_TABLOOP:MOVA,LOOP_TEMP1MOVCA,@A+DPTRMOVPORT_0,AMOVPORT_2,MOVE_NUMCALLDELAY_MS//延時1SMOVPORT_0,#00H//消鬼影MOVPORT_2,#0FFH//消鬼影MOVA,MOVE_NUMRLAMOVMOVE_NUM,AINCLOOP_TEMP1DJNZLOOP_TEMP,LOOPSJMPMAIN/*---------------------------------------------------------------------*//*--1s延時程序---------------------------------------*//*---------------------------------------------------------------------*/DELAY_1S:MOVDEL_TEMP1,#8DEL1:MOVDEL_TEMP2,#250DEL2:MOVDEL_TEMP3,#248DEL3:DJNZDEL_TEMP3,DEL3DJNZDEL_TEMP2,DEL2DJNZDEL_TEMP1,DEL1RET/*---------------------------------------------------------------------*//*--MS延時程序---------------------------------------*//*---------------------------------------------------------------------*/DELAY_MS:MOVDEL_TEMP1,#10DEL22:MOVDEL_TEMP3,#10DJNZDEL_TEMP3,$DJNZDEL_TEMP2,DEL22RET/*---------------------------------------------------------------------*//*--LED顯示數(shù)組---------------------------------------*//*---------------------------------------------------------------------*/LED_TAB:DB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h/*---------------------------------------------------------------------*//*--程序結(jié)束---------------------------------------*//*---------------------------------------------------------------------*/END////////////////////////////////////C程序/////////////////////////////////////***********************************************************************//***名稱:8位數(shù)碼管********************************************//***功能:依次顯示0-7********************************************//***********************************************************************/#includetypedefunsignedcharU8;typedefunsignedintU16;/*---------------------------------------------------------------------*//*--端口定義---------------------------------------*//*---------------------------------------------------------------------*/#definePORT_2P2#definePORT_1P1#definePORT_0P0/*---------------------------------------------------------------------*//*--其他定義---------------------------------------*//*---------------------------------------------------------------------*/U8codeLED_TEB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//LED數(shù)組/*---------------------------------------------------------------------*//*--延時子程序---------------------------------------*//*---------------------------------------------------------------------*/voidDELAY_1MS(U16z){U16x,y;for(x=z;x>0;x--)for(y=123;y>0;y--);}/*---------------------------------------------------------------------*//*--主程序---------------------------------------*//*---------------------------------------------------------------------*/voidmain(){U8i,j;PORT_2=0XFF;PORT_1=0X00;PORT_0=0X00;while(1){i=0x01;for(j=0;j
我是半路出家..天天在看您的貼,希望您不要斷了更新....謝謝?。。?!
0
回復(fù)
2014-04-09 10:45
@amwcel
我是半路出家..天天在看您的貼,希望您不要斷了更新....謝謝!?。?!

哈哈!謝謝支持,我一定繼續(xù)努力!絕對都是自己寫的,不清楚的留言我一一回答

0
回復(fù)
amwcel
LV.4
21
2014-04-09 10:49
@yueyunno1
哈哈!謝謝支持,我一定繼續(xù)努力!絕對都是自己寫的,不清楚的留言我一一回答
一定.因?yàn)樯磉厸]有一個能帶我的人.只希望多幾個您這樣的人.我也少走些彎路..
0
回復(fù)
2014-04-09 10:51

【第九個程序-籃球計(jì)分器】

/////////////////////////////////////////////

匯編語言程序

/////////////////////////////////////////////

/***********************************************************************/
/***名稱:8位數(shù)碼管         ********************************************/
/***功能:依次顯示0-7       ********************************************/
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_3	EQU P3
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0

KEY1	EQU P3.0
KEY2	EQU P3.1
KEY3	EQU P3.2
KEY4	EQU P3.3

/*---------------------------------------------------------------------*/
/*--   變量定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

LOOP_TEMP	EQU R4
LOOP_TEMP1        EQU R3
MOVE_NUM	         EQU R2

DISP_NUM1  EQU 30H
DISP_TEMP  EQU 31H
DISP_TEMP1 EQU 32H
	 		
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_3,#0FFH	 //端口初始化
	MOV PORT_2,#0FFH	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#00H
          MOV DISP_NUM1,#0
WORK:	CALL DISPLAY
	CALL KEY
	SJMP WORK 
/*---------------------------------------------------------------------*/
/*--   按鍵子程序               ---------------------------------------*/ 
/*--入口地址:                  - -------------------------------------*/
/*---------------------------------------------------------------------*/
KEY:	MOV A,PORT_3
	CJNE A,#0FFH,KEY21
	SJMP EXIT

KEY21:	CALL DELAY_MS
	CALL DELAY_MS	
	MOV A,PORT_3
	CJNE A,#0FFH,KEY22
	SJMP EXIT

KEY22:	JNB KEY1,ADD1
	JNB KEY2,ADD2
	JNB KEY3,ADD3
	JNB KEY4,SUBB1
	SJMP EXIT

ADD1:  	CALL DISPLAY
	JNB KEY1,ADD1
	MOV A,DISP_NUM1 
	ADD A,#1
	MOV DISP_NUM1,A
	SJMP EXIT	

ADD2:	CALL DISPLAY
	JNB KEY2,ADD2
	MOV A,DISP_NUM1 
	ADD A,#2
	MOV DISP_NUM1,A
	SJMP EXIT	

ADD3:     CALL DISPLAY
	JNB KEY3,ADD3
	MOV A,DISP_NUM1 
	ADD A,#3
	MOV DISP_NUM1,A
	SJMP EXIT	

SUBB1:	CALL DISPLAY
	JNB KEY4,SUBB1
	MOV A,DISP_NUM1 
	CJNE A,#0,SUBB2
	MOV DISP_NUM1,#0
	SJMP EXIT
	
SUBB2:	SUBB A,#1
	MOV DISP_NUM1,A
	SJMP EXIT	

EXIT:	RET


/*---------------------------------------------------------------------*/
/*--   顯示子程序               ---------------------------------------*/ 
/*--入口地址:DISP_NUM1         - -------------------------------------*/
/*---------------------------------------------------------------------*/
DISPLAY: MOV LOOP_TEMP,#4
	MOV LOOP_TEMP1,#0
	MOV MOVE_NUM,#0F7H
	MOV DPTR,#LED_TAB
	MOV DISP_TEMP1,DISP_NUM1
LOOP:	MOV A,DISP_TEMP1
	MOV B,#10
	DIV AB
	MOV DISP_TEMP,A
	MOV A,B 
	MOVC A,@A+DPTR
	MOV PORT_0,A
	MOV PORT_2,MOVE_NUM
	CALL DELAY_MS	 //延時1S
	MOV PORT_0,#00H	 //消鬼影
	MOV PORT_2,#0FFH	 //消鬼影
	MOV A,MOVE_NUM
	RR A
	MOV MOVE_NUM,A
	INC LOOP_TEMP1
	MOV DISP_TEMP1,DISP_TEMP
	DJNZ LOOP_TEMP,LOOP
	RET

/*---------------------------------------------------------------------*/
/*--   1s延時程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#8
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
DEL3:	DJNZ DEL_TEMP3,DEL3
	DJNZ DEL_TEMP2,DEL2
	DJNZ DEL_TEMP1,DEL1
	RET
/*---------------------------------------------------------------------*/
/*--   MS延時程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_MS:MOV DEL_TEMP1,#10
DEL22:	MOV DEL_TEMP3,#10
	DJNZ DEL_TEMP3,$
	DJNZ DEL_TEMP2,DEL22
	RET
/*---------------------------------------------------------------------*/
/*--   LED顯示數(shù)組              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

/////////////////////////////////////////////

C語言程序

/////////////////////////////////////////////

/***********************************************************************/
/***名稱:籃球計(jì)分器        ********************************************/
/***功能: 按《加1分》顯示數(shù)字加1  按《加2分》顯示數(shù)字加2           ****/
/*按《加3分》顯示數(shù)字加3 按《減1分》顯示數(shù)字減1                     ****/
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_3 P3
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0

sbit KEY1=P3^0;
sbit KEY2=P3^1;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
/*---------------------------------------------------------------------*/
/*--   其他定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code LED_TEB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};	//LED數(shù)組
U16 DISP_NUM1;
/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   顯示子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void display(U16 DISP_NUM)
{
	U8 i,j;
	i=0x08;
	for(j=0;j<4;j++)
	{
		PORT_0=LED_TEB[DISP_NUM%10];
		PORT_2=~i;
		DELAY_1MS(5);
		PORT_0=0X00;
		PORT_2=0XFF;
		i=i>>1;
		DISP_NUM/=10;
	}
}
/*---------------------------------------------------------------------*/
/*--   按鍵子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void KEY()
{
	if(PORT_3!=0xff)
	{
	 	DELAY_1MS(20);
		if(PORT_3!=0xff)
		{
		 	if(KEY1==0)
			{
			 	while(!KEY1)
				{
					display(DISP_NUM1);
				}
				DISP_NUM1+=1;
			}
			
			if(KEY2==0)
			{
			 	while(!KEY2)
				{
					display(DISP_NUM1);
				}
				DISP_NUM1+=2;
			}

			if(KEY3==0)
			{
			 	while(!KEY3)
				{
					display(DISP_NUM1);
				}
				DISP_NUM1+=3;
			}

			if(KEY4==0)
			{
			 	while(!KEY4)
				{
					display(DISP_NUM1);
				}
				if(DISP_NUM1>0)
					DISP_NUM1-=1;
				else
					DISP_NUM1=0;
			}			
		}	
	}
}
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	PORT_3=0XFF;
	PORT_2=0XFF;
	PORT_1=0X00;
	PORT_0=0X00;
	DISP_NUM1=0;
	while(1)
	{
		display(DISP_NUM1);
		KEY();	
	}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

0
回復(fù)
2014-04-09 10:52
@amwcel
一定.因?yàn)樯磉厸]有一個能帶我的人.只希望多幾個您這樣的人.我也少走些彎路..

沒事有電源網(wǎng)這樣好的平臺我們都能共同進(jìn)步

0
回復(fù)
amwcel
LV.4
24
2014-04-09 10:56
@yueyunno1
沒事有電源網(wǎng)這樣好的平臺我們都能共同進(jìn)步
麻煩推薦一本基礎(chǔ)點(diǎn)的書..電腦看書眼太累了..還是看實(shí)體書習(xí)慣.謝謝!!
0
回復(fù)
2014-04-09 11:05
@amwcel
麻煩推薦一本基礎(chǔ)點(diǎn)的書..電腦看書眼太累了..還是看實(shí)體書習(xí)慣.謝謝??!

你想學(xué)匯編還是C語言

 

0
回復(fù)
amwcel
LV.4
26
2014-04-09 11:11
@yueyunno1
你想學(xué)匯編還是C語言 
匯編..您開頭就已經(jīng)提醒我了...謝謝!!
0
回復(fù)
2014-04-09 11:19
@amwcel
匯編..您開頭就已經(jīng)提醒我了...謝謝!!

單片機(jī)應(yīng)用技術(shù)(匯編) 紅色外殼的,這個書便宜實(shí)惠,還行!

 

 

 

0
回復(fù)
amwcel
LV.4
28
2014-04-09 11:22
@yueyunno1
單片機(jī)應(yīng)用技術(shù)(匯編)紅色外殼的,這個書便宜實(shí)惠,還行![圖片] [圖片]  
收到.馬上買回來...謝謝您??!我兩本都一起買回了...
0
回復(fù)
2014-04-09 13:40
@yueyunno1
沒事有電源網(wǎng)這樣好的平臺我們都能共同進(jìn)步
yueyunno1你好,我是電源網(wǎng)(現(xiàn)拓展為電子信息網(wǎng))論壇的負(fù)責(zé)人,我姓何,也感謝您寫的原創(chuàng)帖子,幫助到很多對單片機(jī)感興趣的朋友,期待您的更新,我會一直關(guān)注的。謝謝您。
0
回復(fù)
2014-04-09 13:55

【第十個程序-電梯顯示程序?qū)崿F(xiàn)】

/////////////////////////////////////////////////

 匯編程序

/////////////////////////////////////////////////

 

/************************************************/
/****這個程序是以前寫的,故風(fēng)格不一樣         **********/
/************************************************/

        ORG 0000H
        SJMP MAIN
        ORG 0003H
        SJMP INT
        ORG 0030H
MAIN:
        CLR IT0
        SETB EX0
        SETB EA
        MOV 40H,#1
        MOV R0,#1
       ; MOV R1,#1
LOOP:   ACALL DISPLAY1
        SJMP LOOP

INT:    CLR EA
        PUSH PSW
        PUSH ACC
        JNB P1.0,S1
        JNB P1.1,S2
        JNB P1.2,S3
        JNB P1.3,S4
        JNB P1.4,S5
        JNB P1.5,S6
        JNB P1.6,S7
        JNB P1.7,S8
RETUP:  POP ACC
        POP PSW
        ;CLR IT0
        ;SETB EX0
        SETB EA
        RETI

S1:     MOV R0,#1
        ACALL DISPLAY
        AJMP RETUP

S2:     MOV R0,#2
        ACALL DISPLAY
        AJMP RETUP

S3:     MOV R0,#3
        ACALL DISPLAY
        AJMP RETUP

S4:     MOV R0,#4
        ACALL DISPLAY
        AJMP RETUP

S5:     MOV R0,#5
        ACALL DISPLAY
        AJMP RETUP

S6:     MOV R0,#6
        ACALL DISPLAY
        AJMP RETUP

S7:     MOV R0,#7
        ACALL DISPLAY
        AJMP RETUP

S8:     MOV R0,#8
        ACALL DISPLAY
        AJMP RETUP

DISPLAY:
        MOV 30H,40H
        MOV 40H,R0
        MOV R0,30H

DISPLAY1:
        MOV P2,#00H
        CLR P3.0
        CLR P3.1
        MOV DPTR,#TAB
LOOP11: MOV A,R0
        MOV 42H,A
        MOVC A,@A+DPTR
        MOV P2,A
        SETB P3.1
        CALL DELAY
        CLR P3.1
        MOV A,42H
        CJNE A,40H,QQ
        RET

QQ:     JNC QQ1
        INC R0
        SJMP LOOP11

QQ1:    DEC R0
        SJMP LOOP11

TAB:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DELAY:  MOV R7,#250
DEL1:   MOV R6,#250
DEL2:   MOV R5,#4
DEL3:   DJNZ R5,DEL3
        DJNZ R6,DEL2
        DJNZ R7,DEL1
        RET
        END

/////////////////////////////////////////////////

C語言程序

/////////////////////////////////////////////////

/***********************************************************************/
/***名稱:電梯顯示程序      ********************************************/
/***功能:                  ********************************************/                          
/***********************************************************************/
#include
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_3 P3
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0

#define HIGH 1
#define LOW  0

#define		INT0_VECTOR		0
#define		TIMER0_VECTOR	1
#define		INT1_VECTOR		2
#define		TIMER1_VECTOR	3
#define		UART1_VECTOR	4

sbit SHI=P3^0;
sbit GE =P3^1;

sbit KEY1=P1^0;
sbit KEY2=P1^1;
sbit KEY3=P1^2;
sbit KEY4=P1^3;

sbit KEY5=P1^4;
sbit KEY6=P1^5;	
sbit KEY7=P1^6;
sbit KEY8=P1^7;

/*---------------------------------------------------------------------*/
/*--   其他定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code LED_TEB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};	//LED數(shù)組
U8 DISP_NUM3,DISP_NUM4;
/*---------------------------------------------------------------------*/
/*--   延時子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   顯示子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void display(U8 DISP_NUM)
{
	U8 i;
	for(i=0;i<50;i++)
	{
	 	PORT_2=LED_TEB[DISP_NUM/10];
		SHI=HIGH;
		GE =LOW;
		DELAY_1MS(5);
		SHI=LOW;
		PORT_2=LED_TEB[DISP_NUM%10];
		GE=HIGH;
		SHI=LOW;
		DELAY_1MS(5);	
		GE =LOW;
	}
}
/*---------------------------------------------------------------------*/
/*--   初始化程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void init()
{
	PORT_3=0XFF;
	PORT_2=0XFF;
	PORT_1=0Xff;
	PORT_0=0X00;
	IT0=LOW;
	EX0=HIGH;
	EA=HIGH;
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	init();
	DISP_NUM3=5;	//當(dāng)前層
	DISP_NUM4=1;    //按鍵受控層
	while(1)
	{
		display(DISP_NUM3);
		if(DISP_NUM4DISP_NUM3)
		{
			DISP_NUM3++;
		}		
	}
}
/*---------------------------------------------------------------------*/
/*--   外部中斷0                ---------------------------------------*/
/*---------------------------------------------------------------------*/
void INT_0 (void) interrupt INT0_VECTOR
{
	EA=LOW;
	
    if(PORT_1!=0xff)
	{
		DELAY_1MS(5);
		if(PORT_1!=0xff)
		{
			if(KEY1==0)
				DISP_NUM4=1;
			if(KEY2==0)
				DISP_NUM4=2;
			if(KEY3==0)
				DISP_NUM4=3;
			if(KEY4==0)
				DISP_NUM4=4;
			if(KEY5==0)
				DISP_NUM4=5;
			if(KEY6==0)
				DISP_NUM4=6;
			if(KEY7==0)
				DISP_NUM4=7;
			if(KEY8==0)
				DISP_NUM4=8;
		}
	}
	EA=HIGH;
}

/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

0
回復(fù)
2014-04-09 13:57
@電源網(wǎng)-娜娜姐
yueyunno1你好,我是電源網(wǎng)(現(xiàn)拓展為電子信息網(wǎng))論壇的負(fù)責(zé)人,我姓何,也感謝您寫的原創(chuàng)帖子,幫助到很多對單片機(jī)感興趣的朋友,期待您的更新,我會一直關(guān)注的。謝謝您。

謝謝!我會一直持續(xù)更新的!

0
回復(fù)
發(fā)