博文

【026】查表方式流水灯(2007-05-02 15:13:00)

摘要:;**************************************************************************    ; 标题: 查表方式流水灯(汇编)    ; 作者: wentao     http://blog.liuwentao.net    ;                  http://wentao.programfan.com    ; 日期: 2007.2.21    ; 软件: Keil A51 V8.00     ; 芯片: AT89X51    ; 说明: 实验板实测通过,查表方式可以任意在表中定义流动的方式    ;       采用a不变,dptr自加的方式    ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!     ;**************************************************************************                   org   0000h               ......

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

【025】移位方式流水灯(2007-05-02 13:06:00)

摘要:;**************************************************************************    ; 标题: 移位方式流水灯(汇编)    ; 作者: wentao     http://blog.liuwentao.net    ;                  http://wentao.programfan.com    ; 日期: 2007.2.21    ; 软件: Keil A51 V8.00     ; 芯片: AT89X51    ; 说明: 实验板实测通过    ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!     ;**************************************************************************                   org   0000h               ajmp  start    start:      mov &nbs......

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

【024】定时器和硬计数器实现1个LED隔1s闪一次(2007-05-02 12:38:00)

摘要:;**************************************************************************    ; 标题: 定时器和硬计数器实现1个LED隔1s闪一次(汇编)    ; 作者: wentao     http://blog.liuwentao.net    ;                  http://wentao.programfan.com    ; 日期: 2007.2.21    ; 软件: Keil A51 V8.00     ; 芯片: AT89X51    ; 说明: 定时器0产生50ms脉冲,每次使P1.1口产生一下降沿,P1.1口与计数器1相接,    ;       计满10即0.5s取反一次P1.0口,实验板实测通过。    ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!     ;**************************************************************************              org  0000h          ajmp start  &n......

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

【023】定时器和软计数器中断方式实现1个LED隔1s闪一次(2007-05-02 12:35:00)

摘要:;**************************************************************************    ; 标题: 定时器和软计数器中断方式实现1个LED隔1s闪一次(汇编)    ; 作者: wentao     http://blog.liuwentao.net    ;                  http://wentao.programfan.com    ; 参考: 《单片机轻松入门》 周坚    ; 日期: 2007.2.21    ; 软件: Keil A51 V8.00     ; 芯片: AT89X51    ; 说明: 实验板实测通过    ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!     ;**************************************************************************              org  0000h          ajmp start           org  000b......

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

【022】定时器和软计数器查询方式实现1个LED隔1s闪一次(2007-05-02 11:15:00)

摘要:;**************************************************************************    ;标题: 定时器和软计数器查询方式实现1个LED隔1s闪一次(汇编)    ;作者: wentao     http://blog.liuwentao.net    ;                 http://wentao.programfan.com    ;日期: 2007.2.21    ;软件: Keil A51 V8.00     ;芯片: AT89X51    ;说明: 实验板实测通过,注意中断发生后要对tf0进行软件清零    ;声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!     ;**************************************************************************              org  0000h          ajmp start    start: clr  p1.0            ;p1.0口置低电平,灯亮     &......

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

【021】 延时法实现1个LED隔1s闪一次(汇编)(2007-05-02 11:13:00)

摘要:;**************************************************************************    ; 标题: 延时法实现1个LED隔1s闪一次(汇编)    ; 作者: wentao     http://blog.liuwentao.net    ;                  http://wentao.programfan.com    ; 参考: 延时子程序参考 http://blog.liuwentao.net/read.php?122    ; 日期: 2007.2.21    ; 软件: Keil A51 V8.00     ; 芯片: AT89X51    ; 说明: 实验板实测通过,这里1s并非精确值    ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!     ;**************************************************************************                     org  0000h            &n......

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

【020】一些通过计算51汇编指令得出的软延时子程序(2007-05-01 18:34:00)

摘要:声明: 这是电子之城公布的一个51开发板资料中看到的软延时子程序,由于时间太久远,原作者覃业宇先生的主页已经失效,现把原文件内容整理上来备用。   ;*****************************************************************    ;    ;     This programme is for study Ver2.0.0 beta    ;This programme must be run in 12MHz standard settings    ;               Timer  programmer    ;               Designer: Mr.Koii    ;         Copyright 2002-2003 koiistudio    ;     2003.04.04 at Changsha. H.N. P.R.China.    ;    ;*****************************************************************       ;*****......

阅读全文(4707) | 评论:2

【019】Proteus与Keil的整合 [51](2006-08-29 21:17:00)

摘要:今天参照  电子制作2004年第10期《Proteus与Keil的整合》一文, 将Proteus与Keil结合在一起调试了一下,效果还不错。只是两个软件的界面要切换查看,虽然可以通过调整窗口大小和位置来同时观看,但感觉还是不太方便,如果能有个双头显卡来个双屏显示那就更帅了^_^

现将原文摘录如下:     Proteus是Labcenter公司出品的电路分析、实物仿真系统。它可仿真各种电路和集成IC,最让我们高兴的是它支持许多型号的单片机的仿真,另外还提供Schematic Drawing与PCB设计功能。它的元件库齐全,使用方便,是不可多得的电子电路设计辅助软件。keil是目前世界上最好的51单片机的汇编和C语言的开发工具。它支持汇编,C语言以及混合编程,同时具备功能强大的软件仿真和硬件仿真(用mon51协议,需硬件支持)功能。但是我们在利用它的仿真功能的时候都有一定的限制。如果我们把这两个软件结合来用,调试软硬件就方便多了。其实Proteus在设计的时候已经注意到和各种单片机编译程序的整合了。如它可以和Keil、MPLAB IDE等编译模拟软件结合。笔者在这里先向大家介绍Proteus怎么样和keil结合的。

    首先,你要下载安装这两个软件了。Proteus可以到官方网站(http://www.labcenter.co.uk/)下载试用板(试用版无存盘功能),最新版本是6.5。Keil也可以到它的官方网站(www.keil.com)去下载它的demo板(有2K代码限制),最新的版本是7.20。下载后就可以安装了。

    第二步,安装完毕,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\目录下的 VDM51.dll文件复制到 C:\Keil\C51\BIN文件夹下。(目录名都是默认的,你可以根据你实际安装的目录进行复制。)

    第三步,用记事本(其它的编辑软件也可以,如Ultra ......

阅读全文(26061) | 评论:14

【018】流水灯花样变换 [51](2006-08-27 22:27:00)

摘要:实验参考: 笨笨工作室-实验九、流水灯花样变换(中断)。(查看)
实验板:   FB51A。(查看)

实验目的: 掌握在中断程序中处理多个按键动作的响应方法。

实验现象: 进入程序后,程序作双向流水灯;按下k1键,程序作左向流水灯; 按下k2按键程序作右向流水灯; 按下k3键两个亮点从两边向中间移动; 按下k3键两个亮点从中间向两边移动。

在上个实验(016中断的应用中对断点的保护)中,只用了一个按键触发中断, 而本次实验中断程序要对多个按键动作进行响应, 灯光变换的花样有4种,用4个按键k1,k2,k3,k4切换。 显示部分电路: 键盘部分电路(图中K0对应程序中K1……K3对应K4): 思路:主程序中执行左右流水灯,在中断服务程序中,首先读取按键状态,然后延时10ms,再次读取按键状态。把两次获得的按键状态比较,如果不同,就表示是抖动,退出中断;否则,就去判断是哪个按键按下。如果是k1,就执行左跑马灯;如果是k2,就执行右跑马灯;如果是k3,就执行亮点向中间移动;如果是k4,就执行亮点向两边移动。 值得注意的是: 在中断服务程序中,应该尽量的使得任务简化,不要让中断服务程序作过多复杂的任务,而要尽量把这些复杂的任务放到主程序中间去完成。 本着这一原则, 可以采用置标志位的方法。即在主程序中设定一个标志位,不断的对这个标志进行查询:如果是标志为状态1,就执行双向跑马灯;如果是状态2,就执行左向跑马灯;如果是状态3,就执行右向跑马灯,依次类推。而在中断服务程序中,只需要进行如下工作:去抖动,键识别,改变标志位。 这里我们用寄存器r0的内容作为标志,当它里面的内容是0ffh时,执行左右跑马灯程序;为01h时,执行左跑马灯;02h时执行右跑马灯;03h时执行两个亮点向中间移动;04h时执行两个亮点象两边移动。 下面是主程序和中断程序的流程图

程序如下:

          org   0000h
          ......

阅读全文(6506) | 评论:2

【017】典型的中断服务程序 [51](2006-08-26 23:40:00)

摘要:出自《单片机原理及应用》(张毅刚) INT: clr  ea        ; CPU关中断
     push psw       ; 现场保护
     push acc
     setb ea        ; CPU开中断   
    
     中断处理程序段
    
     clr  ea        ; CPU关中断
     pop  acc       ; 现场恢复
     pop  psw
     setb ea        ; CPU开中断
     reti           ; 中断返回,恢复断点 <1> 本例现场保护假设仅仅涉及到PSW和A的内容,如果还有其他的需要保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。注意,对堆栈的操作是先进后出,次序不可颠倒。 <2> 中断服务程序中的"中断处理"程序段,应用设计者应根据中断任务的具体要求,来编写这部分中断处理程序。 <3> 如果本中断服务程......

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