您好, 登录| 注册|
论坛导航
您好, 登录| 注册|
子站:
论坛首页    单片机MCU/嵌入式
  •  发帖
  • 收藏

高山云教你之一----自学单片机--所有(C,汇编)程序更新OK,请下载
阅读: 15245 |  回复: 406 楼层直达

2014/04/08 09:49:29
1
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

QQ截图20160321155901  玩大发了! 英飞凌最新无人机套件LARIX免费试用 招募中

QQ截图20160321155901  想学你就来!DSP学习板免费试用 限时申请


看帖请一定跟帖,你的跟帖就是我更新的动力!!!!!! 

 



高山云系列教程之三:高山云教你----单片机玩转太阳能逆变系统

http://www.dianyuan.com/bbs/1488289.html   

高山云系列教程之二:高山云教你----单片机控制全彩LED入门到精通

http://www.dianyuan.com/bbs/1485719.html





 部分电友反应帖子太长,由于受网络影响,很多程序看的时候不方便,以下是所有的程序,分卷压缩后上传在此次,欢迎下载!

高山云教你学单片机全部程序包.part01.rar

高山云教你学单片机全部程序包.part02.rar

高山云教你学单片机全部程序包.part03.rar

高山云教你学单片机全部程序包.part04.rar

高山云教你学单片机全部程序包.part05.rar  






 

        程序中有什么疑惑的请一定留言,本人将一一解答,本人能力有限不足之处请留言批评!


 高山云先生来自某知名高校,凭着对电子技术的爱好和自己的不懈努力,在微控制器领域拥有良好的口碑,在近10年的时间里先后服务于国内多家知名大型企业和教育机构。在此期间高山云先生当过老师、做过设计、带过团队等也帮助了不少的有志青年。精通数款主流微控制器,在工业控制、电源管理、新型节能产品中有自己的独到见解和独特设计思路。

 

根据你个人的实际情况选择一种你认为能学会的语言学习,有什么问题或是好的建议请跟帖留言,我会慢慢更新后面的程序和实例程序,后面教程目录还没有更新完整,有什么好的项目适合新人学习的也可以提出,我在后面加上相应的目录。(个人建议如果你是半路出家并且学历较低但又想学单片机的最好先学学汇编语言,汇编语言是一门让你能很清楚了解单片机的运行顺序的语言,很直观但是很啰嗦,累赘!入门容易点,记住111条指令就OK,C语言太灵活了,100个人可以有100种不同的风格和写法,对半路出家的人来说还是有难度)

 

    以下为本人授课的目录:   应网友要求一下课程将做适当调整

【项目一】多效果速度可变LED项目:   

1.点亮一个LED       (点亮一个LED、LED按一定延时闪烁)  

2.LED跑马灯         (直接赋值、左右移循环、查表法)  

3.按键控制LED      (按键实现LED左移)  

4.单个数码管的使用  (单个数码管显示0-9)  

5.数码管动态扫描     (8个数码管分别显示0-9)

6.按键控制数码管    (篮球计分器的实现) 

7.简易电梯显示程序实现 

8【终极项目】多效果速度可变LED控制系统(用数码管显示LED循环模式,显示LED变化速度,按键可以修改速度和模式)

 

【项目二】点阵显示屏

9.8X8点阵点亮一个点

10.8X8点阵点亮全屏点亮

11.8x8点亮一条斜线

12.8X8点阵静态显示一个简易汉字或图形

13.8x8点阵动态显示一个简易汉字或图形

14.16X16静态显示一个汉字

15.【终极项目】16X16动态显示多个汉字

 

【项目三】带闹钟电子钟

16.定时器的使用              (让单个LED每秒钟闪烁一次) 

17.倒计时显示器              (59秒倒计时) 

18.电子钟设计                 (简易电子钟) 

19.可调时间电子钟设计    (一般电子钟) 

10.带闹钟电子钟设计      (中级电子钟) 

 

我的授课主要以项目方式进行描述也是按本人在工作中的一贯设计风格进行,授课目录先暂定这么多,后续的再更新!

 

发点福利:

先上一个个人的工程项目,程序为DEMO版,有小BUG,初学完全够了!这个项目以前发在LED照明版块了没有人理!这次转移过来希望有识货的来批评指正!  其实可以用一个8脚的小芯片,我手头没有,就用了这个QFP44的大单片机!如果有兴趣的可以去改改!

  压缩文件目录:

                        1->hongwai.hex                           

                         2->Sheet1.Sch                           

                        3->yaok_led(eerom+wdt).c                           

                        4->soft_Lamp_controller(VER1).pcb                           

                        5->遥控器.bmp 

C程序里有一个头文件,自己去STC单片机官方网上下载,把名字重命名为:STC90.h要不然编译的时候会报错!

 

程序地址:1388104588-37493.rar

 

 

 

12864液晶屏显示动画:

 


 

 

 

 

 

程序地址:12864液晶屏显示动画.rar

    

2014/04/08 09:59:36
2
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
先描述一下我在编程中使用到的软件:Keil Uvision 4 (汇编\C均用次软件),仿真 Proteus 7.8 破解版  SP2
2014/04/08 10:45:31
3
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第一个程序---点亮一个LED灯】

      仿真图

以上是C语言

以上是汇编语言

以上是仿真

 

下载链接:点亮一个LED灯.rar

 

2014/04/08 10:47:36
4
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
以上是第一个程序和以后的程序风格,如果有什么异议可以提出,我也做适当修改
2014/04/08 12:49:31
7
SKY丶辉煌
电源币:992 | 积分:19 主题帖:91 | 回复帖:646
LV10
司令
不错
2014/04/08 13:07:12
8
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
2014/04/09 15:10:29
45
单片机白菜
电源币:0 | 积分:0 主题帖:0 | 回复帖:6
LV2
班长

很不错,怎么写的程序啊

有时间教教我嘛!

2014/04/10 10:09:11
59
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
你跟着这个帖子一步一步走吧,会很快学会的
2014/04/10 15:37:05
91
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
感觉汇编还是有点难,看不懂
2014/04/12 21:50:24
141
abc123194
电源币:327 | 积分:0 主题帖:0 | 回复帖:5
LV2
班长
请问下:Proteus里不能有其它电源怎么解决?只要有第二个电源就报错,不能仿真,新手求助!
2014/04/12 22:49:58
143
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
暂时不能回复,周末在家里,星期1去回复你!
2014/04/14 08:36:43
145
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
来了,你用的是什么电源,发个图片看看
2014/04/14 08:41:39
146
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

2014/04/23 11:39:35
314
abc123194
电源币:327 | 积分:0 主题帖:0 | 回复帖:5
LV2
班长
谢谢,我再研究研究,重画了个图试验可以用了,可是原来那个好象也没错,可就是通不过
2014/04/14 14:55:29
163
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
又来看楼主有没有新的更新
2014/04/24 09:47:26
322
javike
电源币:2919 | 积分:67 主题帖:169 | 回复帖:3088
LV12
元帅
这个帖子不错,我喜欢,但目前我处于看天书的阶段。。。
2014/04/24 09:53:52
323
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
呵呵 司令见笑了
2014/04/24 10:02:28
324
javike
电源币:2919 | 积分:67 主题帖:169 | 回复帖:3088
LV12
元帅
我说的是真的,我对单片机不了解
2014/04/24 11:02:14
325
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
没事,如果你要是有空你把这个帖子看完了,跟着走一遍你51单片机也就会了
2014/11/14 22:56:51
391
xiaqing
电源币:15 | 积分:13 主题帖:1 | 回复帖:145
LV7
旅长

元帅也想学单片机吗?

2014/05/19 14:49:56
373
jishu-sy
电源币:113 | 积分:0 主题帖:1 | 回复帖:67
LV4
连长
这些天工作比较忙,难得过了。今天抽空顶一下
2014/12/02 14:53:29
392
bailinduan
电源币:21 | 积分:0 主题帖:0 | 回复帖:42
LV3
排长
好东西,谢谢奉献!!跟着学习
2014/04/08 11:03:26
5
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

Keil_uvision_4 基本使用教程.pdf

            

2014/04/08 11:05:29
6
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
Proteus 基础教程7.ppt
2014/04/09 14:58:14
39
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
下下来学习一下
2014/04/09 15:12:33
47
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

像你这么执着的人不多了,希望你早日学成,有什么问题,留言给我,我一定解答!

2014/04/09 14:58:43
40
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
正是用的这个软件,也是新手在学习中
2014/04/10 10:09:55
60
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
这个教程是我在网上找的有点粗糙,不懂的问我
2014/04/09 15:18:36
48
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
仿真 Proteus 7.8 破解版  SP2  分享一下
2014/04/10 10:10:09
61
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
破解也很简单
2014/04/10 15:36:21
90
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
能否发下软件 谢谢
2014/04/10 15:38:08
92
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

哪个软件?

2014/04/14 15:26:45
173
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
楼主发一个软件 可以吗
2014/04/18 16:39:41
269
SKY丶辉煌
电源币:992 | 积分:19 主题帖:91 | 回复帖:646
LV10
司令
很厉害!
2014/04/18 17:26:28
270
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
感谢柴兄支持,相互学习~
2014/04/28 00:00:14
334
daniellew
电源币:0 | 积分:0 主题帖:67 | 回复帖:72
LV6
团长
楼主能不能做一个单片机无线遥控学习码解码程序,一路自锁,三路互锁,请指点!或解释一程序原理!谢谢!
2014/04/28 08:31:29
335
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
有没有相应的遥控器,我没有类似的遥控器!
2015/08/26 15:02:23
398
qi8903
电源币:13 | 积分:0 主题帖:9 | 回复帖:193
LV6
团长
哪位大哥能提供下Proteus 7.8 破解版  SP2软件啊,网上找总是提示有病毒
2014/04/08 13:45:31
9
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第二个程序---一个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	 //关灯
	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
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

	

 

 

 

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

C语言版

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

/***********************************************************************/
/***名称:LED灯每秒闪烁一次    ********************************************/
/***功能:LED灯每秒闪烁一次    ********************************************/
/***********************************************************************/
#include<reg51.h>
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);
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
程序包下载地址:一个LED灯闪烁.rar  (包含汇编语言,C语言)

 

2014/04/09 15:20:58
49
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
先顶再看 一个一个的看
2014/04/10 10:10:34
62
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

谢谢!

2014/04/14 15:27:14
174
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
一个一个的看   
2014/04/10 15:38:15
93
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
很喜欢楼主写程序的风格,很清楚,
2014/04/10 15:42:59
99
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

不要太着急,写程序是个漫长的过程,你空的时候多写写,也多看下人家写得好的程序,多借鉴!

2014/04/08 14:03:27
10
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第三个程序 LED跑马灯】

 

贴一个自己用EXCEL2003编写的LED流水灯效果自动生成代码的软件   下载地址:LED流水灯效果自动计算表格.xls

如果不能正常显示请按以下操作即可:点击菜单栏:工具----->加载宏----->勾选上分析工具库   点确定即可正常显示

 

 

直接赋值版汇编程序

/***********************************************************************/
/***名称: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
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END
直接赋值版--C程序
/***********************************************************************/
/***名称:LED跑马灯         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/
#include<reg51.h>
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);
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
 
2014/04/08 16:25:13
15
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长

都是从最基础开始,正和我们初学者 

2014/04/08 16:47:05
17
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

我会陆续更新!!!!

2014/04/10 13:05:59
80
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
要得 希望楼主多多的更新
2014/04/14 15:27:42
175
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
决对支持原创
2014/04/10 15:45:51
101
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
我也正在学习基础
2014/04/09 14:41:14
32
电子梦
电源币:0 | 积分:0 主题帖:0 | 回复帖:6
LV2
班长
楼主在用心的做好每个细节,更是有着扎实的基础,赞一个!
2014/04/09 14:42:28
33
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
谢谢!感谢电子梦!
2014/04/14 14:56:24
164
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
我也是按楼主的程序一个一个的学,学了不少
2014/06/08 09:40:14
374
ott361
电源币:467 | 积分:0 主题帖:10 | 回复帖:93
LV5
营长
typedef unsigned char U8;
typedef unsigned int  U16;
这个表达式中的U8和U16是开发板中的IC位号吗?
                                
2014/04/08 14:22:26
11
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第四个程序 LED跑马灯-循环移位版】

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

汇编程序

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

/***********************************************************************/
/***名称: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
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

c程序

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

/***********************************************************************/
/***名称:LED跑马灯         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/
#include<reg51.h>
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;
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

 

2014/04/09 14:59:34
41
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
记录下来学习备用
2014/04/10 10:10:58
63
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
2014/04/08 14:39:54
12
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第五个程序 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显示数组              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 01H,02H,04H,08H,10H,20H,40H,80H

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C语言程序

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

/***********************************************************************/
/***名称:LED跑马灯         ********************************************/
/***功能:流水效果          ********************************************/
/***********************************************************************/
#include<reg51.h>
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数组

/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
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);
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

2014/04/08 15:17:35
13
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长

最近在学这个51的,可以跟楼主一起学习下

好贴一定要顶

2014/04/10 10:11:37
64
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
你过奖了,大家都借着电源网这个平台一起进步吧
2014/04/14 15:28:18
176
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
感谢有这个平台,在里面学了不少东西
2014/04/09 15:21:31
50
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
先顶再看,一个一个的学习一次
2014/04/08 16:17:55
14
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第六个程序-单个按键控制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显示数组              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 01H,02H,04H,08H,10H,20H,40H,80H

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C语言

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

/***********************************************************************/
/***名称:按键控制LED       ********************************************/
/***功能:按一下按键LED移动一位*****************************************/
/***********************************************************************/
#include<reg51.h>
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数组
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();
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

程序和仿真下载地址:按键控制LED.rar

 

2014/04/09 14:52:46
36
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
刚刚试了一下确实好用,给力
2014/04/10 10:14:09
66
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
希望对你有用!
2014/04/09 15:06:38
44
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
 程序很方便移植的 
2014/04/10 10:12:57
65
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
恩,我把所有程序的变量和端口都重新定义过,你要做什么修改都可以,比较方便,新学单片机的朋友一定要注意书写习惯,希望对你有帮助!@
2014/04/10 15:39:26
94
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
边下边学,边学边用
2014/04/11 08:50:47
110
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
早上上班前顶一顶
2014/04/22 15:44:54
305
ott361
电源币:467 | 积分:0 主题帖:10 | 回复帖:93
LV5
营长

这个要顶

2014/04/08 16:44:31
16
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第七个程序-1位数码管循环显示0-9】

 

贴一个自己用EXCEL2003编写的数码管段码生成软件    下载地址:数码管段码自动计算表格.xls

 

如果不能正常显示请按以下操作即可:点击菜单栏:工具----->加载宏----->勾选上分析工具库   点确定即可正常显示

 

仿真图片:

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

汇编程序

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

/***********************************************************************/
/***名称:1位数码管         ********************************************/
/***功能:循环显示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显示数组              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C语言程序

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

/***********************************************************************/
/***名称:1位数码管         ********************************************/
/***功能:循环显示0-9       ********************************************/
/***********************************************************************/
/***********************************************************************/
#include<reg51.h>
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数组

/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
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);
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

程序及仿真下载地址:1个数码管显示0-9.rar

 

2014/04/11 17:35:28
120
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
坐等楼主更新 学了不少东西
2014/04/14 14:57:37
165
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
没事都来学习下,慢慢的喜欢上了单片机,刚开始学得很难,现在慢慢觉得很神奇
2014/04/14 15:28:51
177
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长

程序写得很详细

2014/04/09 09:18:28
18
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第八个程序-8位数码管动态显示0-7】

 

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

汇编程序

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

/***********************************************************************/
/***名称:8位数码管         ********************************************/
/***功能:依次显示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显示数组              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C程序

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

/***********************************************************************/
/***名称:8位数码管         ********************************************/
/***功能:依次显示0-7       ********************************************/
/***********************************************************************/
#include<reg51.h>
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数组

/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
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;
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

2014/04/09 10:26:36
19
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长
我是半路出家..天天在看您的贴,希望您不要断了更新....谢谢!!!!
2014/04/09 10:45:33
20
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

哈哈!谢谢支持,我一定继续努力!绝对都是自己写的,不清楚的留言我一一回答

2014/04/09 10:49:36
21
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长
一定.因为身边没有一个能带我的人.只希望多几个您这样的人.我也少走些弯路..
2014/04/09 10:52:49
23
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

没事有电源网这样好的平台我们都能共同进步

2014/04/09 10:56:06
24
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长
麻烦推荐一本基础点的书..电脑看书眼太累了..还是看实体书习惯.谢谢!!
2014/04/09 11:05:30
25
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

你想学汇编还是C语言

 

2014/04/09 11:11:12
26
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长
汇编..您开头就已经提醒我了...谢谢!!
2014/04/09 11:19:51
27
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

单片机应用技术(汇编) 红色外壳的,这个书便宜实惠,还行!

 

 

 

2014/04/09 11:22:21
28
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长
收到.马上买回来...谢谢您!!我两本都一起买回了...
2014/04/10 15:40:10
95
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
我也喜欢看实物书,电子书看着眼晴累
2014/04/14 15:29:28
178
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
楼主的贴很合适初学者
2014/04/09 13:40:03
29
电源网-娜娜姐
电源币:457 | 积分:207 主题帖:293 | 回复帖:1807
LV10
司令
yueyunno1你好,我是电源网(现拓展为电子信息网)论坛的负责人,我姓何,也感谢您写的原创帖子,帮助到很多对单片机感兴趣的朋友,期待您的更新,我会一直关注的。谢谢您。
2014/04/09 13:57:16
31
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

谢谢!我会一直持续更新的!

2014/04/09 10:51:45
22
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第九个程序-篮球计分器】

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

汇编语言程序

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

/***********************************************************************/
/***名称:8位数码管         ********************************************/
/***功能:依次显示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显示数组              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB:
	DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C语言程序

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

/***********************************************************************/
/***名称:篮球计分器        ********************************************/
/***功能: 按《加1分》显示数字加1  按《加2分》显示数字加2           ****/
/*按《加3分》显示数字加3 按《减1分》显示数字减1                     ****/
/***********************************************************************/
#include<reg51.h>
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数组
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();	
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

2014/04/09 14:53:50
37
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
一定.因为身边没有一个能带我的人.只希望多几个您这样的人.我也少走些弯路————要是能跟楼主一起上班学学单片机就好了
2014/04/10 10:15:15
67
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
没事,有什么问题请在程序后面留言,我一定会回复的!
2014/04/09 15:11:53
46
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
希望您不要断了更新
2014/04/09 15:24:39
54
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
什么时候发仿真软件来用一下
2014/04/09 15:22:24
51
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
等你的电子闹钟
2014/04/10 10:15:39
68
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
后面会慢慢的更新
2014/04/10 15:41:02
96
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
坐等楼主的更新,
2014/04/14 14:58:45
166
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
等着楼主的更新
2014/04/14 15:29:59
179
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
坐等楼主更新
2014/04/09 13:55:52
30
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十个程序-电梯显示程序实现】

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

 汇编程序

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

 

/************************************************/
/****这个程序是以前写的,故风格不一样         **********/
/************************************************/

        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<reg51.h>
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数组
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;	//当前层
	DISP_NUM4=1;    //按键受控层
	while(1)
	{
		display(DISP_NUM3);
		if(DISP_NUM4<DISP_NUM3)
		{
			DISP_NUM3--;	
		}
		else if(DISP_NUM4>DISP_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;
}

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

2014/04/09 14:42:54
34
liudaguildg
电源币:0 | 积分:0 主题帖:0 | 回复帖:1
LV1
士兵

很不错,值得学习

2014/04/09 14:48:02
35
liudaguildg
电源币:0 | 积分:0 主题帖:0 | 回复帖:1
LV1
士兵

2014/04/09 14:56:21
38
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
不错值得学习
2014/04/09 15:23:41
53
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
值得我们学习
2014/04/10 10:15:57
69
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
2014/04/09 15:02:38
42
单片机白菜
电源币:0 | 积分:0 主题帖:0 | 回复帖:6
LV2
班长

不错,不错…………

就是没有视频,看不懂

2014/04/09 15:06:28
43
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

我还在想这个视频到底怎么弄才好,先把程序都帖出来了再说,上传视频也比较麻烦!

2014/04/09 15:23:16
52
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
搞一个屏幕录像软件可以了
2014/04/10 10:16:24
70
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
空了试试
2014/04/09 15:31:58
55
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
这个福利是供我们学习的吧
2014/04/09 15:36:47
56
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

哈哈!那是必须的!

2014/04/10 09:06:37
57
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十一个程序--霓虹灯控制系统】 有开关功能,模式可调,速度可调

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

汇编程序

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

/***********************************************************************/
/***名称:霓虹灯整套系统    ********************************************/
/***功能:多效果 多模式  速度可控制   **********************************/
/*功能详细描述:KEY1为开关:KEY2为模式+,KEY3为模式-,KEY4为速度+,KEY5*/
/*为速度-,按一次按键及执行一次相应的代码			 */
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_3	EQU P3
PORT_2	EQU P2
PORT_1	EQU P1

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

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5
DEL_TEMP4    EQU 32H

LOOP_TEMP    EQU R4
LOOP_TEMP1   EQU R3
MOOD_NUM	    EQU 30H
ON_0FF_FLAG  EQU 31H		
/*---------------------------------------------------------------------*/
/*--   程序开始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_1,#00H
	MOV PORT_2,#00H
	MOV PORT_3,#0FFH
	MOV MOOD_NUM,#2
	MOV DEL_TEMP4,#5
	MOV ON_0FF_FLAG,#00H
	
WORK:	MOV A,ON_0FF_FLAG
	CJNE A,#00H,EXIT2
	CALL DISPLAY
EXIT2:	MOV PORT_1,#00H
	MOV PORT_2,#00H
	CALL KEY
	SJMP WORK		

/*---------------------------------------------------------------------*/
/*--   显示子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
DISPLAY: MOV PORT_1,#00H	 //端口初始化
//	MOV LOOP_TEMP,#8
	MOV LOOP_TEMP1,#0

	MOV A,MOOD_NUM
	CJNE A,#0,MOOD1
	MOV DPTR,#LED_TAB1
	MOV PORT_2,#06h
	SJMP LOOP

MOOD1:	CJNE A,#1,MOOD2
	MOV DPTR,#LED_TAB2
	MOV PORT_2,#5Bh
	SJMP LOOP

MOOD2:	CJNE A,#2,MOOD3
	MOV DPTR,#LED_TAB3
	MOV PORT_2,#4Fh
	SJMP LOOP

MOOD3:	CJNE A,#3,MOOD4
	MOV DPTR,#LED_TAB4
	MOV PORT_2,#66h
	SJMP LOOP

MOOD4:	CJNE A,#4,MOOD5
	MOV DPTR,#LED_TAB5
	MOV PORT_2,#6Dh
	SJMP LOOP

MOOD5:	CJNE A,#5,MOOD6
	MOV DPTR,#LED_TAB6
	MOV PORT_2,#7Dh
	SJMP LOOP

MOOD6:	CJNE A,#6,EXIT
	MOV DPTR,#LED_TAB7
	MOV PORT_2,#07h
	SJMP LOOP

LOOP:	MOV A,LOOP_TEMP1
	MOVC A,@A+DPTR
	CJNE A,#66H,LOOP_1
	SJMP EXIT

LOOP_1:	CPL A
	MOV PORT_1,A
	CALL DELAY_1S	 //延时1S
	INC LOOP_TEMP1
	DJNZ LOOP_TEMP,LOOP

EXIT:	RET
/*---------------------------------------------------------------------*/
/*--   按键子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
KEY:	MOV A,PORT_3
	CJNE A,#0FFH,KEY_1
	SJMP EXIT_KEY

KEY_1:	CALL DELAY_MS
	MOV A,PORT_3
	CJNE A,#0FFH,KEY_2
	SJMP EXIT_KEY

KEY_2:	JNB KEY1,ON_OFF
	JNB KEY2,MOOD_ADD1
	JNB KEY3,MOOD_SUBB1
	JNB KEY4,SPEED_ADD1
	JNB KEY5,SPEED_SUBB1
	SJMP EXIT_KEY


ON_OFF:	JNB KEY1,ON_OFF
	MOV A,ON_0FF_FLAG
	CPL A
	MOV ON_0FF_FLAG,A
	AJMP EXIT2

MOOD_ADD1:JNB KEY2,MOOD_ADD1
	MOV  A,MOOD_NUM
	CJNE A,#6,MOOD_ADD2
	SJMP EXIT_KEY 
MOOD_ADD2:ADD A,#1
	MOV MOOD_NUM,A
	AJMP EXIT2

MOOD_SUBB1:
	JNB KEY3,MOOD_SUBB1
	MOV  A,MOOD_NUM
	CJNE A,#0,MOOD_SUBB2
	SJMP EXIT_KEY 
MOOD_SUBB2:
	SUBB A,#1
	MOV MOOD_NUM,A
	AJMP EXIT2

	SJMP EXIT_KEY

SPEED_ADD1:
	JNB KEY4,SPEED_ADD1
	MOV A,DEL_TEMP4
	CJNE A,#1,SPEED_ADD2
	SJMP EXIT_KEY
SPEED_ADD2:
	SUBB A,#1
	MOV DEL_TEMP4,A
	AJMP EXIT2

SPEED_SUBB1:
	JNB KEY5,SPEED_SUBB1
	MOV A,DEL_TEMP4
	CJNE A,#9,SPEED_SUBB2
	SJMP EXIT_KEY
SPEED_SUBB2:
	ADD A,#2
	MOV DEL_TEMP4,A
	AJMP EXIT2
		
EXIT_KEY:RET
	


/*---------------------------------------------------------------------*/
/*--   延时程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,DEL_TEMP4
DEL1:	MOV DEL_TEMP2,#250
DEL2:	MOV DEL_TEMP3,#248
	CALL KEY
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显示数组              ---------------------------------------*/
/*---------------------------------------------------------------------*/
LED_TAB1:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH,66H  ;流水灯效果

LED_TAB2:DB 0FCH,0F9H,0F3H,0E7H,0CFH,09FH,3FH,7FH,66H    ;双流水灯效果

LED_TAB3:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH
	DB 7FH,7EH,7DH,7BH,77H,6FH,5FH,3FH,3EH
	DB 3DH,3BH,37H,2FH,1FH,1EH,1DH,1BH,17H
	DB 0FH,0EH,0DH,0BH,07H,06H,05H,03H,02H
	DB 01H,00H,66H  ;从右飞入效果

LED_TAB4:DB 077H,0EEH,0DDH,0BBH,077H,0EEH,0DDH,0BBH
	DB 077H,0EEH,0DDH,0BBH,077H,0EEH,0DDH,0BBH
	DB 077H,0EEH,0DDH,0BBH,077H,0EEH,0DDH,0BBH
	DB 077H,0EEH,0DDH,0BBH,66H ;依次向左旋转

LED_TAB5:DB 55H,0AAH ,55H,0AAH,55H,0AAH,55H,0AAH,55H
	DB 0AAH,55H,0AAH,55H,0AAH,66H     ;奇偶交替

LED_TAB6:DB 7FH,3FH,1FH,0FH,07,03H,01H,66H       ;从左向右依次点亮

LED_TAB7:DB 0E7H,0C3H,81H,00H,0FFH,00H,81H,0C3H,0E7H
	DB 0FFH,00H,0FFH,0E7H,0C3H,81H,00H,0FFH,00H
	DB 81H,0C3H,0E7H,66H      ;从中间向两边打开再收拢

/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END
2014/04/10 09:44:07
58
天下无知
电源币:0 | 积分:0 主题帖:0 | 回复帖:1
LV1
士兵
学习了...........
2014/04/10 10:42:11
71
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长

这么快的更新速度我一点都跟不上...昨天买的书也没有发货....

2014/04/10 10:44:03
72
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

哈哈!既然要做一件事情就要想法把他做好呀,相信自己能做好  OK

2014/04/10 10:49:29
73
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长

说得很对.虽然我现在很忙.但一定想法做好..再次谢谢您!!

2014/04/10 10:53:13
74
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

加油!

2014/04/10 11:16:33
75
电源网-娜娜姐
电源币:457 | 积分:207 主题帖:293 | 回复帖:1807
LV10
司令
已经放在论坛首页大周报头条,让更多的朋友可以学习到!
2014/04/10 11:23:25
76
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
感谢何师长给予厚望,一定继续努力!程序还在编写中,写完继续更新,既然大家都这么支持我,我一定都全部自己写并且仿真成功后再更新,不能随便贴些代码坑人!
2014/04/14 15:00:50
167
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长

我也是这次决心要把单片机搞懂

花上半年的时间

2014/04/10 13:02:04
78
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
不断的学习中
2014/04/10 13:03:32
79
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长

等这两天忙完手中的活跟着楼主的贴子一个一个的学习一下

2014/04/10 13:30:50
81
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

好的好的!

2014/04/14 15:30:54
180
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
现在就开始跟着楼主的节拍一步一步的学习
2014/04/10 14:24:47
83
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

 

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

霓虹灯控制系统----------C语言程序

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

/***********************************************************************/
/***名称:霓虹灯整套系统    ********************************************/
/***功能:多效果 多模式  速度可控制   **********************************/
/*功能详细描述:KEY1为开关:KEY2为模式+,KEY3为模式-,KEY4为速度+,KEY5*/
/*为速度-,按一次按键及执行一次相应的代码			                   */
/***********************************************************************/
#include<reg51.h>
typedef bit           BOOL;
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_3 P3
#define PORT_2 P2
#define PORT_1 P1

#define ALL_HIGH 0xff
#define ALL_LOW	 0x00
#define HIGH 1
#define LOW	 0

sbit 	KEY1=P3^0;
sbit 	KEY2=P3^1;
sbit 	KEY3=P3^2;
sbit 	KEY4=P3^3;
sbit 	KEY5=P3^4;


/*---------------------------------------------------------------------*/
/*--   其他定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
BOOL ON_0FF_FLAG;
U8 MOOD_NUM,LOOP_NUM=0,LOOP_TEMP=0;
U16 DELAY_TEMP=500;

U8 code LED_TEB1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x66};	//流水灯效果
U8 code LED_TEB2[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0x66};	//双流水灯效果
U8 code LED_TEB3[]={
						0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,
					   	0x7f,0x7e,0x7d,0x7b,0x77,0x6f,0x5f,0x3f,0x3e,
					   	0x3d,0x3b,0x37,0x2f,0x1f,0x1e,0x1d,0x1b,0x17,
					   	0x0f,0x0e,0x0d,0x0b,0x07,0x06,0x05,0x03,0x02,
				        0x01,0x00,0x66
				   }; //从右飞入效果

U8 code LED_TEB4[]={
					   0x77,0xee,0xdd,0xbb,0x77,0xee,0xdd,0xbb,
					   0x77,0xee,0xdd,0xbb,0x77,0xee,0xdd,0xbb,
					   0x77,0xee,0xdd,0xbb,0x77,0xee,0xdd,0xbb,
					   0x77,0xee,0xdd,0xbb,0x77,0xee,0xdd,0xbb,
					   0x77,0xee,0xdd,0xbb,0x66 
				   }; //依次向左旋转

U8 code LED_TEB5[]={
						0x55,0xaa,0x55,0xaa,0x55,0x55,0xaa,0x55,0xaa,
           				0x55,0xaa,0x55,0xaa,0x55,0x55,0xaa,0x55,0xaa,0x66
				   };//奇偶交替

U8 code LED_TEB6[]={
						0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x66   
				   }; //从左向右依次点亮

U8 code LED_TEB7[]={
				   	  0xe7,0xc3,0x81,0x00,0xff,0x00,0x81,0xc3,0xe7,
					  0xff,0x00,0xff,0xe7,0xc3,0x81,0x00,0xff,0x00,
					  0x81,0xc3,0xe7,0x66   
				   };//从中间向两边打开再收拢

/*---------------------------------------------------------------------*/
/*--   函数声明                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void IN_KEY();

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

/*---------------------------------------------------------------------*/
/*--   LED显示子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void LED_DISP()
{
	if(LOOP_TEMP!=0x66)
	{
		PORT_1=~LOOP_TEMP;
		LOOP_NUM++;	
		DELAY_1MS(DELAY_TEMP);
	}
	else
	{
		LOOP_NUM=0;	
	}
}
/*---------------------------------------------------------------------*/
/*--   显示程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void display()
{
	if(ON_0FF_FLAG==0)
	{
		switch(MOOD_NUM)
		{
			case 0:
				PORT_2=0X06;
				LOOP_TEMP=LED_TEB1[LOOP_NUM];
				LED_DISP();
				break;

			case 1:
				PORT_2=0X5b;
				LOOP_TEMP=LED_TEB2[LOOP_NUM];
				LED_DISP();
				break;

			case 2:
				PORT_2=0X4f;
				LOOP_TEMP=LED_TEB3[LOOP_NUM];
				LED_DISP();
				break;

			case 3:
				PORT_2=0X66;
				LOOP_TEMP=LED_TEB4[LOOP_NUM];
				LED_DISP();
				break;

			case 4:
				PORT_2=0X6D;
				LOOP_TEMP=LED_TEB5[LOOP_NUM];
				LED_DISP();
				break;

			case 5:
				PORT_2=0X7D;
				LOOP_TEMP=LED_TEB6[LOOP_NUM];
				LED_DISP();
				break;

			case 6:
				PORT_2=0X07;
				LOOP_TEMP=LED_TEB7[LOOP_NUM];
				LED_DISP();
				break;

			default:
				break;
		}
	}
	else 
	{
		PORT_1=ALL_LOW;
		PORT_2=ALL_LOW;
	}
}
/*---------------------------------------------------------------------*/
/*--   按键子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void IN_KEY()
{
	if(PORT_3!=0XFF)
	{
		DELAY_US(20);
		if(PORT_3!=0XFF)
		{
			if(KEY1==0)
			{
				while(~KEY1);
				ON_0FF_FLAG=~ON_0FF_FLAG;
			}
			else if(KEY2==0)
			{
				while(~KEY2);
				if(MOOD_NUM<6)
					MOOD_NUM++;
				else
					MOOD_NUM=6;
			}
			else if(KEY3==0)
			{
				while(~KEY3);
				if(MOOD_NUM>0)
					MOOD_NUM--;
				else
					MOOD_NUM=0;
			}
			else if(KEY4==0)
			{
			 	while(~KEY3);
				if(DELAY_TEMP>100)
					DELAY_TEMP-=200;
				else
					DELAY_TEMP=100;
			
			}
			else if(KEY5==0)
			{
				while(~KEY3);
				if(DELAY_TEMP<1100)
					DELAY_TEMP+=200;
				else
					DELAY_TEMP=1100;


			}
		}	
	}
}

/*---------------------------------------------------------------------*/
/*--   初始化程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void init()
{
 	PORT_3=ALL_HIGH;
	PORT_2=ALL_LOW;
	PORT_1=ALL_LOW;
	ON_0FF_FLAG=LOW;
	MOOD_NUM=1;
}
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	U8 j;
	init();
	while(1)
	{
		display();
		IN_KEY();	
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

2014/04/18 15:38:04
268
开水烧不开
电源币:0 | 积分:0 主题帖:0 | 回复帖:9
LV2
班长

很值得顶!

2014/04/10 15:42:37
98
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
学习下,更新的很快哦
2014/04/10 13:00:45
77
gaoshan001
电源币:0 | 积分:0 主题帖:0 | 回复帖:2
LV2
班长
跟着高山云一起学单片机 
2014/04/10 13:31:17
82
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
多看帖子,多看程序,有问题就留言
2014/04/10 15:04:35
87
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
单片机论坛的高手都出来吧
2014/04/10 14:52:20
84
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十二个程序--8X8点阵点亮1个点】

仿真图片

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

8X8点阵点亮1个灯----汇编程序

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

/***********************************************************************/
/***名称:8x8LED点阵屏点亮一个点        ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

		
/*---------------------------------------------------------------------*/
/*--   程序开始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#0FFH
	
	MOV PORT_0,#0FEH
	MOV PORT_2,#01H
	SJMP $
/*---------------------------------------------------------------------*/
/*--   延时程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
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


/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END
///////////////////////////////////////////////////

8X8点阵点亮1个灯----C程序

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

/***********************************************************************/
/***名称:8x8LED点阵屏点亮一个点        ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0

/*---------------------------------------------------------------------*/
/*--   其他定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/


/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
//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;
	PORT_1=0X00;
	PORT_0=0Xff;

	PORT_2=0X01;
	PORT_0=0Xfe;
	while(1);
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

 

2014/04/10 15:01:02
85
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
先回复后慢慢看
2014/04/10 15:02:27
86
liguohong327
电源币:3 | 积分:0 主题帖:3 | 回复帖:13
LV5
营长
学习经验值得借鉴。
2014/04/10 15:08:16
88
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

感谢大力支持,我一定继续努力!

2014/04/10 15:35:26
89
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
正需要这个设计程序,正好,太感谢楼主了,我收下来学习下
2014/04/10 15:41:44
97
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
2014/04/10 15:43:39
100
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
以后有什么技术上的问题可以问你吧, 楼主现在是专业写软件吗
2014/04/10 15:47:53
102
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

可以,就先在帖子里留言吧,本来想留QQ但是怕骚扰,我现在在一家上市公司做研发,软硬件工程师!

2014/04/10 16:46:46
103
tanik
电源币:577 | 积分:0 主题帖:7 | 回复帖:89
LV5
营长
记号
2014/04/10 20:36:59
104
单片机白菜
电源币:0 | 积分:0 主题帖:0 | 回复帖:6
LV2
班长
不错的帖子,一直在看,都有点看不赢!
2014/04/10 22:04:17
105
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十三个程序--8X8点阵全屏点亮】

仿真效果图

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

汇编程序

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

/***********************************************************************/
/***名称:8x8LED点阵全屏点亮           ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0
DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5		
/*---------------------------------------------------------------------*/
/*--   程序开始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#0FFH
	
	MOV PORT_0,#00H
	MOV PORT_2,#0ffH

	SJMP $
/*---------------------------------------------------------------------*/
/*--   延时程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
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
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C程序

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

/***********************************************************************/
/***名称:8x8LED点阵全屏点亮           ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0

/*---------------------------------------------------------------------*/
/*--   其他定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/


/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
//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;
	PORT_1=0X00;
	PORT_0=0Xff;

	PORT_2=0Xff;
	PORT_0=0X00;
	while(1);
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

2014/04/10 22:51:58
106
开水烧不开
电源币:0 | 积分:0 主题帖:0 | 回复帖:9
LV2
班长
不错,好东西,一点要顶!
2014/04/11 08:16:18
107
电子梦
电源币:0 | 积分:0 主题帖:0 | 回复帖:6
LV2
班长
在现在急功近利的大环境力,还能看到楼主在这么认真的做事情,真是难得啊,我国缺少的就是能认真做事情的人,态度决定一切。
2014/04/11 08:28:21
108
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

你太抬举我了吧!个人喜好而已!

2014/04/11 08:37:14
109
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十四个程序--8X8点阵显示一条斜线】

仿真图片

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

汇编程序

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

/***********************************************************************/
/***名称:8x8LED点阵屏点亮一个点        ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

INIT_NUM	  EQU 32H
INIT_TEMP  EQU 30H
LOOP_TEMP1 EQU 31H
		
/*---------------------------------------------------------------------*/
/*--   程序开始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#0FFH
	MOV LOOP_TEMP1,#8
	MOV INIT_NUM,#01H

LOOP:	MOV INIT_TEMP,INIT_NUM
	MOV PORT_2,INIT_NUM
	MOV A,INIT_TEMP
	CPL A
	MOV INIT_TEMP,A
	MOV PORT_0,INIT_TEMP
	CALL DELAY_1S
	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_0,#0FFH
	MOV A,INIT_NUM
	RL A
	MOV INIT_NUM,A
	DJNZ LOOP_TEMP1,LOOP

	SJMP MAIN
/*---------------------------------------------------------------------*/
/*--   延时程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#25
DEL1:	MOV DEL_TEMP2,#25
	DJNZ DEL_TEMP2,$
	DJNZ DEL_TEMP1,DEL1
	RET


/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

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

C程序

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

/***********************************************************************/
/***名称:8x8LED点阵屏点亮一个点        ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0

/*---------------------------------------------------------------------*/
/*--   其他定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/


/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
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,temp;
	PORT_2=0X00;
	PORT_1=0X00;
	PORT_0=0Xff;
	while(1)
	{
		i=0x01;

		for(j=0;j<8;j++)
		{
			PORT_2=i;
			temp=i;
			PORT_0=~temp;
			DELAY_1MS(2);
			i=i<<1;
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

2014/04/14 15:31:33
181
292827802
电源币:0 | 积分:0 主题帖:0 | 回复帖:7
LV4
连长
楼主写点中断计时器之类的
2014/04/14 15:33:28
182
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长
快了  点阵写完就开始写中断,定时了,点阵也是LED范畴的!
2014/04/11 09:27:16
111
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十五个程序---8X8点阵显示一个简易汉字或图形】

 

能再LED点阵屏幕上显示一条斜线几乎就能显示图形了,只是图形是采用的查表方式把已经定义好的数组代码都显示出来!

贴出一个个人用EXCEL2003编写的简易8x8点阵取模软件

 

下载地址如下:8X8点阵取模.xls

 

 

如果不能正常显示请按以下操作即可:点击菜单栏:工具----->加载宏----->勾选上分析工具库   点确定即可正常显示

 

取模软件取模截图:

 

仿真效果截图

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

汇编程序

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

/***********************************************************************/
/***名称:8x8LED点阵显示一个心形        ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮

/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

INIT_NUM	   EQU 32H
INIT_TEMP    EQU 30H
LOOP_TEMP1  EQU 31H
		
/*---------------------------------------------------------------------*/
/*--   程序开始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#0FFH
	MOV DPTR,#PICTURE_TAB
	MOV LOOP_TEMP1,#8
	MOV INIT_NUM,#0FEH
	MOV INIT_TEMP,#0

LOOP:	MOV A,INIT_TEMP
	MOVC A,@A+DPTR
	CPL A
	MOV PORT_2,A
	MOV PORT_0,INIT_NUM
	CALL DELAY_1S
	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_0,#0FFH
	MOV A,INIT_NUM
	RL A
	MOV INIT_NUM,A
	INC  INIT_TEMP
	DJNZ LOOP_TEMP1,LOOP

	SJMP MAIN
/*---------------------------------------------------------------------*/
/*--   延时程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#25
DEL1:	MOV DEL_TEMP2,#25
	DJNZ DEL_TEMP2,$
	DJNZ DEL_TEMP1,DEL1
	RET

/*---------------------------------------------------------------------*/
/*--   显示图形代码             ---------------------------------------*/
/*---------------------------------------------------------------------*/
PICTURE_TAB:
	DB 0BDH,05AH,066H,07EH,0BDH,0DBH,0E7H,0FFH
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END
 
 

2014/04/11 11:08:06
112
amwcel
电源币:244 | 积分:0 主题帖:5 | 回复帖:59
LV4
连长

每天都来顶老师一次。。。再次谢谢您!!!您推荐的书今天就到我手上了。。

2014/04/11 11:14:25
113
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

哈哈!那就好,书一定是要看的,不能当摆设,也谢谢你的支持!

2014/04/11 17:38:47
124
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
推荐的什么书啊
2014/04/11 13:34:52
114
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

仿真图片

 

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

C程序

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

/***********************************************************************/
/***名称:8x8LED点阵显示一个心形        ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1
#define PORT_0 P0

/*---------------------------------------------------------------------*/
/*--  显示图形代码                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
U8 code PICTURE_TAB[]={0xbd,0x5a,0x66,0x7e,0xbd,0xdb,0xe7,0xff};      
/*---------------------------------------------------------------------*/
/*--   延时子程序               ---------------------------------------*/
/*---------------------------------------------------------------------*/
void DELAY_1MS(U16 z)
{
	U16 x,y;
	for(x=z;x>0;x--)
		for(y=123;y>0;y--); 
}

/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
	U8 INIT_TEMP,LOOP_TEMP1;
	PORT_2=0X00;
	PORT_1=0X00;
	PORT_0=0Xff;
	while(1)
	{
		INIT_TEMP=0xfe;
		for(LOOP_TEMP1=0;LOOP_TEMP1<8;LOOP_TEMP1++)
		{
			PORT_2=~(PICTURE_TAB[LOOP_TEMP1]);
			PORT_0=INIT_TEMP;
			DELAY_1MS(2);
			PORT_2=0X00;
			PORT_0=0Xff;
			INIT_TEMP=(INIT_TEMP<<1)+1;
		}
	}
}
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/

 

2014/04/11 14:09:16
115
开水烧不开
电源币:0 | 积分:0 主题帖:0 | 回复帖:9
LV2
班长
可不可以发个8x8的动态显示程序嘛!
2014/04/11 15:03:39
116
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

可以的 ,抽点时间就写一个!

2014/04/12 08:48:10
128
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
我买的材料要到了,明天在家实验一下
2014/04/11 17:36:26
121
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
如果要多拿几个组成一个大屏就好看了
2014/04/11 20:54:27
126
万里晴空
电源币:0 | 积分:0 主题帖:1 | 回复帖:7
LV3
排长
最好是能跑广告……呵呵
2014/04/11 20:58:45
127
万里晴空
电源币:0 | 积分:0 主题帖:1 | 回复帖:7
LV3
排长
这个工具很好用,先收下了……嘻嘻,原来EXCEL如此强大啊,开来有很多东西都值得好好开发啊
2014/04/11 16:57:35
117
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

【第十六个程序-8X8点阵屏动态显示简易汉字或图片】

仿真图片:

 

2014/04/11 16:57:58
118
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

2014/04/11 16:59:41
119
yueyunno1[版主]
电源币:26 | 积分:31 主题帖:19 | 回复帖:313
LV9
军长

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

汇编语言程序如下:

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

/***********************************************************************/
/***名称:8x8LED点阵动态显示一个心形    ********************************/
/***功能:                               *******************************/
/***注意:从库中调出8X8点阵不要旋转,否则不能正常点亮

/*---------------------------------------------------------------------*/
/*--   端口定义                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2	EQU P2
PORT_1	EQU P1
PORT_0	EQU P0

DEL_TEMP1	EQU R7
DEL_TEMP2	EQU R6
DEL_TEMP3	EQU R5

INIT_NUM	  EQU 30H
INIT_TEMP  EQU 31H
LOOP_TEMP1 EQU 32H
LOOP_TEMP2 EQU 33H
LOOP_TEMP3 EQU 34H		
/*---------------------------------------------------------------------*/
/*--   程序开始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	ORG 0000H
	SJMP MAIN
	ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_1,#00H
	MOV PORT_0,#0FFH
	MOV DPTR,#PICTURE_TAB
	MOV LOOP_TEMP3,#16
LOOP2:	MOV LOOP_TEMP2,#15
LOOP1:	MOV LOOP_TEMP1,#8
	MOV INIT_NUM,#0FEH
	MOV INIT_TEMP,#0
LOOP:	MOV A,INIT_TEMP
	MOVC A,@A+DPTR
	CPL A
	MOV PORT_2,A
	MOV PORT_0,INIT_NUM
	CALL DELAY_1S
	MOV PORT_2,#00H	 //端口初始化
	MOV PORT_0,#0FFH
	MOV A,INIT_NUM
	RL A
	MOV INIT_NUM,A
	INC  INIT_TEMP
	DJNZ LOOP_TEMP1,LOOP
	DJNZ LOOP_TEMP2,LOOP1
	INC DPTR
	DJNZ LOOP_TEMP3,LOOP2
	SJMP MAIN
/*---------------------------------------------------------------------*/
/*--   延时程序                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
DELAY_1S:MOV DEL_TEMP1,#25
DEL1:	MOV DEL_TEMP2,#25
	DJNZ DEL_TEMP2,$
	DJNZ DEL_TEMP1,DEL1
	RET

/*---------------------------------------------------------------------*/
/*--   显示图形代码             ---------------------------------------*/
/*---------------------------------------------------------------------*/
PICTURE_TAB:
	DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
	DB 0BDH,05AH,066H,07EH,0BDH,0DBH,0E7H,0FFH
	DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
/*---------------------------------------------------------------------*/
/*--   程序结束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
	END

	

 

2014/04/11 17:37:16
122
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
今天又学习了不少东西
2014/04/11 17:37:47
123
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
过两天跟楼主一起学习下写闹钟
2014/04/11 20:53:07
125
万里晴空
电源币:0 | 积分:0 主题帖:1 | 回复帖:7
LV3
排长
看了LZ写的程序,学到很多东西,特别是汇编有了一个小小的进步、、、、、、里面有很多的小技巧,谢谢LZ分享经验。每天坚持学习,希望LZ不断更新,继续分享心得。未完待续,期待下一集中……
2014/04/12 08:49:04
129
386498032
电源币:0 | 积分:0 主题帖:1 | 回复帖:4
LV4
连长
我也是每天都在看