博文

16X16点阵流动显示 154和2个595驱动(51汇编)06 29 更新 2(2013-12-20 20:57:00)

摘要:
SH_CP EQU  P2.0;
DS0  EQU  P2.1;
ST_CP EQU  P2.2; ORG 00H
AJMP MAIN
ORG 30H
MAIN:
MOV R0,#8
MOV R4,#50   ;  
MOV DPTR,#TAB
MOV R3,#80
MAIN1:
MOV A,R2
INC A    ;先送下半列
MOVC A,@A+DPTR
ACALL WB
INC R2
MOV A,R2
DEC A ;后送上半列
MOVC A,@A+DPTR
ACALL WB INC R2
MOV P1,R1
SETB ST_CP
CLR ST_CP
INC R1
CJNE R1,#16,MAIN1
MOV R1,#0
CJNE R2,#32,MAIN1      
MOV R2,#0
DJNZ R4,MAIN1
MOV R4,#50;50次
INC DPTR
INC DPTR
DJNZ R3,MAIN1
AJMP MAIN WB:
CLR C......

阅读全文(2048) | 评论:0

单片机控制二相步进电机正反转的仿真(51汇编)(2013-12-20 20:48:00)

摘要: 近来对DIY雕刻机中毒颇深,无奈囊中羞涩,暂且先D个迷你型雕刻机解解毒吧。淘宝已拍下2 个带丝杆、滑台的小步进以及驱动芯片3片。先用单片机写个简单程序,以便电机到手时测试用。 仿真图如上,驱动电路由类似于音响电路中的4个OTL电路组成。这就是典型的H桥电路,很形像,电路像字母H吧。  二相步进电机为2组4线,2 组线圈独立,按程序中的通电顺序,为二相四拍,实现电机正、反转,。  
ORG 00H
AJMP MAIN
ORG 30H
MAIN:
MOV P1,#11111111B
JB P3.6,REV;
MOV P1,#11111100B; A /A
ACALL DELAY
MOV P1,#11001111B; B /B
ACALL DELAY
MOV P1,#11110011B; /A A
ACALL  DELAY
MOV P1,#00111111B; /B B
ACALL DELAY
AJMP MAIN REV:
JB P3.7,MAIN
MOV P1,#11110011B; /A A
ACALL  DELAY
MOV P1,#11001111B; B /B
ACALL  DELAY
MOV P1,#11111100B; A /A
ACALL  DELAY
MOV P1,#00111111B; /B&nb......

阅读全文(2336) | 评论:0

51单片机 0~99S 正倒计时秒表(汇编)(2013-12-20 20:38:00)

摘要: ;0~99S正倒计时。倒计时初始可99S内任设
;时间到,蜂鸣3S。
;E:\DPJ\0~99S倒计时\0~99可设定正倒计时\0~99可设定正倒计时.ASM
STRT EQU P2.2
P_S  EQU P2.3
CLRR EQU P2.4
CDWN EQU   P2.5
ADJH EQU P2.6
ADJL EQU P2.7
 
ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT  
 
ORG 30H
MAIN: 
MOV SP,#60H
MOV DPTR,#TAB
MOV TMOD,#01H ;T0定时方式1
SETB EA
SETB ET0
MOV TH0,#3CH ;50ms定时常数
MOV TL0,#0B0H
MOV   R0,#20  ;20x50mS=1S
 
MAIN1:
ACALL ALARM  ;调用报警子程序
k1:     ;按键检测子程序开始键
LCALL DISP 
JB STRT,K2
ACALL DISP
JNB STRT,$-2
AJMP START k2:     ......

阅读全文(2247) | 评论:1

STC89C52RC 单片机 多种花样的流水灯(2013-12-06 09:11:00)

摘要: STC89C52RC 单片机 多种花样的流水灯
有外部中断0节一按键,每按一次切换一次流水灯花样。可以用来做超级炫酷的自行车电动车尾灯,炫酷爆闪灯。 分类: 自拍 标签: STC89C52RC 单片机 流水灯 外部中断0 自行车尾灯 电动车尾灯 炫酷爆闪灯
C51 源程序 如下: #include <reg52.h>
#define LED_PORT P0
sbit KEY=P3^2;
unsigned char Mod_LED;
unsigned char code Tab_LED[][8]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff},
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80},
{0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01},
{0x03,0x06,0x0c,0x18,0x30,0x60,0xc0,0x81},
{0x81,0xc0,0x60,0x30,0x18,0x0c,0x06,0x03},
{0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,0x00},
{0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18},
{0x10,0x00,0x28,0x00,0x44,0x00,0x82,0x00},
{0x55,0x00,0xaa,0x00,0x55,0x00,0xaa,0x00},
{0x3c,0x00,0x00,0xc3,0x00,0x3c,0x00,0xc3}};
void delayms(unsigned char ms)
{
u......

阅读全文(3485) | 评论:0

彩色灯光控制系统(2013-11-10 23:04:00)

摘要: 彩色灯光控制系统 一、概述 现代LED制造技术的发展大大促进了照明和显示行业,采用RGB三基色调光的系统应用广泛,本系统使用STC89C52RC+三基色LED初步实现调光功能。 二、基本要求 1.实现七彩灯光,分别为红、绿、蓝、黄(红+绿)、青(绿+蓝)、紫(红+蓝)、白(红+绿+蓝),使用按键控制灯光颜色循环切换; 2.实现可设置间隔时间的七彩灯光自动切换,并在数码管显示倒计时,时间设置范围为1~9秒; 3.在要求1的基础上实现每种颜色8级亮度可调,并在数码管显示当前亮度(0为不亮,7为最大亮度)。 三、扩展要求 1.实现RGB调光,要求红绿蓝分别16级亮度可调并同时输出,每级亮度变化明显且无明显闪烁,并在数码管显示当前调整颜色的亮度(0~15); 2.实现呼吸灯效果,要求七彩颜色和亮度平滑渐变(颜色顺序自由发挥,不需要按照前面说的顺序); 3.实现光控,要求环境光照较强时关闭灯光和显示,尽量减小整个系统电流,并在光照减弱后能自动恢复工作(响应时间小于1秒); 4.其它扩展功能,允许自行添加元器件。
#include <reg52.h>
sbit LED_R=P2^0;
sbit LED_G=P2^1;
sbit LED_B=P2^2;
unsigned char v_R,v_G,v_B;
unsigned char cnt_PWM,cnt_S,flg_S;
unsigned char Tab_7C[][3]=
{
{16,0,0},
{0,16,0},
{0,0,16},
{16,16,0},
{0,16,16},
{16,0,16},
{16,16,16}
};
void main(void) 
{
unsigned char MOD_Color;  &n......

阅读全文(2933) | 评论:1

51单片机18B20 测温,可怕的85度(2013-11-10 00:25:00)

摘要: 51单片机18B20 测温,可怕的85度     用DS18B20好长时间了,从来没有自已写过18B20的程序,以前都是复制别人的,今天有空自已写了个程序,居然还是花了好长时间才调通,惭愧呀,究竟还是学到一些东西,但还是有一个问题至今没有解决,就是18B20刚上电时总会出现85度,不知道怎么回事,该延时的我也都延时了,在网上也查了,很多网友也出现了这样的问题,知道EDN有很多高手,麻烦各位给看看,下面是我写的程序,我是通过串口进行调试的. Tags: 51单片机 18B20 测温 85 发布: cunzhiLee 分类: 未分类 评论: 0 浏览: 0 2013年11月4日 DIY 超声波测距  接线图:   ......

阅读全文(2129) | 评论:0

最近浏览的电子制作方面单片机的文章(2013-11-06 08:02:00)

摘要: 最近发表 [11/04]DIY 超声波测距 [11/04]串口通信 [11/04]键盘检测与应用 [11/04]定时器 [11/04]中断 [11/04]数码管的动态显示 [11/04]数码管静态显示实验及代码分析 [11/04]让发光二极管闪烁 [11/04]点亮一个发光二极管代码分析 [11/04]点亮第一个发光二极管(位操作法) ......

阅读全文(1581) | 评论:0

[转]电子工程师如何经营人脉(2013-10-18 13:49:00)

摘要:        
人脉,中国人叫关系网,西方人才叫人脉,其重要性不言而喻。这里我不讲其意义,只讲应该如何去经营之。        
在周围,常见到各种社交达人,动辄就是“有事您说话,我同学在**部委”,“我同事的老公的弟弟是哪里哪里工作的”,实在拉不上关系的,就说“我有个朋友如何如何”或“我有个哥们儿如何如何”,有时也确实能办成一些小事情,但更多的时候不是纯靠交情和能力,而是一种交换,权力和权力的交换,金钱和权力的交换,人情和权力的交换,权力和信息的交换,色相与权力的交换(这种在朋友间较少见)。用金钱和权力才能交换得来的关系,不是真的人脉。        
因此,热衷于各种饭局,以结识各界高人为为己任的兄弟,基本都属此类,倒也是一种生活方式,对商务人员此方法倒也可以,但我们工程师却不太合适。工程师的的时间都很宝贵,那我们的人脉经营方式就要高效、直接、快。因此我们要认识到人脉经营的本质。        
 人脉不是你认识谁和认可谁,而是谁认识你和认可你,这些人才会助你成功。认可你的人层次越高能量越大,你成功机率也越大。因此,人脉建设的着力点应该是:提升自己的成就、能力、知识、思想,让更有能力、财富、声望、权势的人能认可你。        
如此则即使不刻意经营,人脉也会主动找上你,因为你对别人有很大的价值,别人自然也愿意拿他的部分价值来跟你交换。这里老提“交换“这个词,显得很俗、很世故,虽然大多数时候,交换是一种正常现象,俩人互相一点交情没有,您觉得他会付出很多吗?但有些时候,也确实没有交换。        
比如,我结识一位青年才俊,思路清晰、稳重朴实、勤奋努力、帅气逼人,让我发自内心的就想帮他,任何原因都没有,因为他值得被帮,因为他可能会有较大的成就,即使与我无关,我为社会的精英贡献了一份力量,我觉得幸福。如果说也是一种交换的话,我付出的是时间、建议和资源,......

阅读全文(1574) | 评论:0

TI的LDC真的会革传感器的命吗?(2013-09-21 16:59:00)

摘要:最近,美国德州仪器公司(TI)推出了一种全新的电感数字转换器 (LDC),据称可以彻底改变位置及动作传感的应用。TI公司传感器信号路径产品线经理Jon Baldwin先生专程来京为我们介绍了该产品的情况。
我们先来看一下电感数字转换器(Inductive Digital Converter - LDC)的工作原理。如下图,LDC实际上是一个特殊的ADC,外接一个传感线圈。它采集的信号有两个:传导目标(金属物体)接近时导致的线圈涡流损耗(Rp),以及线圈的电感值(L)。根据线圈的不同,这个传感回路的震荡频率范围为5kHz~5MHz,涡流损耗Rp的分辨率是16位,电感测量L的分辨率为24位。

3 天前 上传 下载附件 (13.82 KB)

如下图所示,通过测量Rp的变化,LDC可以测量导体目标与线圈间的距离。如果使用两个线圈则可以测量目标物体与线圈之间的角度。据介绍,LDC的测距分辨率可达到亚微米级别。使用14mm直径的线圈来测量不锈钢目标,在0.8毫米的距离下,测量的标准误差大约是0.25微米。

3 天前 上传 下载附件 (26.64 KB)

LDC也可以用来测量目标物体横向运动的状况。如下图所示,当一个楔形金属目标掠过传感线圈时,涡流损耗的变化便被记录。如果采用两个传感线圈,那么目标物体与探测线圈之间距离的抖动误差就可以通过差分的形式加以消除。

3 天前 上传 下载附件 (35.77 KB)

当然,LDC也可以测量目标物体的旋转情况,如下图所示。使用一个线圈可以测量360度范围内的旋转;使用3个线圈则可以测量720度范围内的旋转。

3 天前 上传 下载附件 (27.72 KB)

通过改变......

阅读全文(2189) | 评论:0

矩阵式键盘按键音 - 8051单片机C51语言实现(2013-02-01 12:12:00)

摘要: /**本程序由 www.ecn999.com 整理自互联网,仅供学习参考
欢迎光临8051单片机学习交流频道:    www.ecn999.com #include<reg51.h>   //包含51单片机寄存器定义的头文件
sbit sound=P3^7;    //将sound位定义为P3.7 /**************************************************************
函数功能:蜂鸣器发声延时约120ms
**************************************************************/
 void delay_sound(void)  
{
   unsigned char i;
 for(i=0;i<250;i++)
        ;
 }
/**************************************************************
函数功能:软件延时子程序约20ms
**************************************************************/
 void delay20ms(void)  
{
   unsigned char i,j;
 for(i=0;i<100;i++)
  for(j=0;j<60;j++)
         ......

阅读全文(2295) | 评论:0