单片机外中断汇编语言和C语言程序

发布者:tgdddt最新更新时间:2015-04-28 来源: 51hei关键字:单片机  外中断  汇编语言  C语言程序 手机看文章 扫描二维码
随时随地手机看文章
      以下两个程序效果相同,一个使用汇编语言,一个使用C语言,从仿真效果看,c语言程序运行比较流畅。
两个外中断跑马灯汇编语言程序
             ORG 0000H
             LJMP MAIN
             ORG 0003H
             LJMP WZD0
             ORG 0013H
             LJMP WZD1
             ORG 0040H
WZD0: MOV DPTR,#0220H
            MOV R3,#42D
CB0:    CLR A
            MOVC A,@A+DPTR
            MOV P1,A
            INC DPTR
            LCALL DELAY2
            DJNZ R3,CB0
            RETI
WZD1: MOV DPTR,#0220H
           MOV R3,#42D
CB1:  CLR A
          MOVC A,@A+DPTR
          MOV P2,A
          INC DPTR
          LCALL DELAY1
          DJNZ R3,CB1
          RETI
         ORG 0150H
MAIN: MOV P1,#00H
           MOV P2,#00H
           SETB EA
           SETB IT0
           SETB EX0
           CLR PX0
           SETB IT1
           SETB EX1
           SETB PX1
ST:    MOV DPTR,#0270H
          MOV R4,#17D
 DD:   CLR A
          MOVC A,@A+DPTR
          MOV P0,A
         INC DPTR
         LCALL DELAY1
         DJNZ R4,DD
         SJMP ST
         DELAY1: MOV R7,#00H
         DD1: MOV R6,#00H
         DD2: MOV R5,#01H
         DJNZ R5,$
         DJNZ R6,DD2
         DJNZ R7,DD1
         RET
 DELAY2: MOV R7,#00H
    DDD1: MOV R6,#00H
               DJNZ R6,$
               DJNZ R7,DDD1
               RET
  ORG 0220H
  DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
  DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
  DB 0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18
  DB 0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18
  DB 0x18,0x00,0x3c,0x00,0x7e,0x00,0xff,0x00
  ORG 0270H    
  DB  0xfe,0xfc,0xf8,0xe0,0xe0,0xc0,0x80,0x00
  DB  0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff, 0x00
  END
 
两个外中断跑马灯C语言程序
#include
int code yu[]={
     0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
  0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
  0x00,0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18,
  0x00,0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18,
  0x00,0x18,0x00,0x3c,0x00,0x7e,0x00,0xff,0x00,0x00,
     0x00     };
int code yu1[]={
               0xfe,0xfc,0xf8,0xe0,0xe0,0xc0,0x80,0x00,
      0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
               0x00};
void delay(int ms)
{
 while(ms--)
   {
    int i;
    for(i=0;i<120;i++);
   }
}
void ddd() interrupt 0
   {
    int k;
    for(k=0;k<47;k++)
      {
    P2=yu[k];
    delay(100);
   }
   }
void dd() interrupt 1
   {
    int k;
    for(k=0;k<48;k++)
      {
    P1=yu[k];
    delay(300);
   }
   P1=0x00;
   }
void main()

  int n;
  IT0=0;
  EX0=1;
  PX0=1;
  IT1=0;
  EX1=1;
  PX1=0;
  EA=1; 
  P1=0x00;
  P2=0x00;
  while(1)
   {
    for(n=0;n<17;n++)
     {
   P0=yu1[n];
      delay(100);
     }
   }
关键字:单片机  外中断  汇编语言  C语言程序 引用地址:单片机外中断汇编语言和C语言程序

上一篇:IAR程序在protues上运行设置
下一篇:各种单片机中断程序的写法

推荐阅读最新更新时间:2024-03-16 14:00

51单片机驱动1602液晶(4线串行)
/*单片机I/O口使单片机资源的重要组成部分,也是用来扩展外围设备的必选资源,尽可能以更少的I/O口实现更多的功能是单片机工程师追求的目标,现在的一些串行器件也为这一目标的实现添加了更多的可能性,比如I2C总线,MAXIM力推的1-WIRE等等,都可以以很少的I/O口实现更多的功能,当然这是以降低一定的速度为代价的。 废话少说,进入正题。 显示器件多见的是LED数码管,LCD液晶屏等。一般的数码管成本低廉,在显示内容要求不多的时候适用;LCD液晶屏以更多的显示空间得到了许多人的爱好,不过成本上要高的多(市场价在20元左右),本文以LCD1602为例说明如何驱动液晶屏。 LCD1602外接的控制接口有RS,R/W,E;数据接口为D
[单片机]
51单片机-综合例程
1.其他按键的使用 我们之前都是让P2.3输出低电平来让K1, K2, K3, K4作为独立按键,那我们要想用K13,K14,K15,K16做独立按键时只要P2.0输出低电平就可以了。下面是简化的原理图 2.美女与男人 作为本章的最后一个题目,我们结合所有学过的知识做一个综合例程,实现美女与男人的游戏的功能代码。 游戏规则如下: 美女和男人各持一枚硬币 两人都出正面时:男人得3块钱 两人都出反面时:男人得1块钱 两人出一正一反时:女人得2块钱 3.开发板的实现 我们这样做模拟,程序的开始定义两个全局变量man和woman初始化为30,意为每人各持30块钱用来显示在左右端的两个数码管上,男人的钱显示在左边的数码管,女
[单片机]
51<font color='red'>单片机</font>-综合例程
用C51写的单片机音乐彩灯程序
#include AT89X51.H #define TLEDS 20//每个花样状态持续时间,以50mS为单位 #define NUM_OF_LED_S 4//每种模式LED花样数? typedef unsigned char uchar; typedef unsigned int uint; data uchar led_array_num;//当前模式下,LED花样状态序号 data uchar music_array_num;//音符的序号 data uchar i;//模式号 data uchar t_count_led;//用于LED状态持续时间计时 data uint t_count_music;// data
[单片机]
MSP430单片机的输出模式有哪些
MSP430单片机几种输出模式 1 输出模式0 输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 2 输出模式1 置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 3 输出模式2 PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。 4 输出模式3 PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。 5 输出模式4 翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。 6 输出模式5 复位
[单片机]
MSP430<font color='red'>单片机</font>的输出模式有哪些
单片机定时器学习汇总
1时钟周期=1/晶振频率M 1机器周期=12(51系列12T,若1T则为1)X时钟周期 = 12(1)X(1/晶振频率M) = 1 us(1/12 us) 1us机器周期脉冲数=晶振频率f/12 假设12MHZ晶振工作在51单片机12T模式下,需要使用定时器进行50MS定时操作,定时器工作在方式1; 12M的晶振每秒(s)可产生1M(10^6 us)个机器周期 50ms就需要50×1000 us × 1us(1机器周期)个机器周期 = 50000 定时器在方式1工作,是16位计数器,最大值为65536(2^16),也就是能进行最大65536次计数 50ms定时操作需要50000个机器周期,1个机器周期=1us,所以需要5
[单片机]
瑞萨电子RA MCU集成micro-ROS框架,简化专业机器人开发
瑞萨电子RA MCU集成micro-ROS框架,简化专业机器人开发 瑞萨与eProsima携手,推动机器人技术在工业和物联网领域的应用;EK-RA6M5评估套件现已成为micro-ROS官方支持开发板 2021年9月2日,日本东京和西班牙马德里讯 - 全球半导体解决方案供应商瑞萨电子集团与专注于中间件解决方案的SME公司eProsima,今日宣布,基于RA MCU的EK-RA6M5评估套件成为micro-ROS开发框架(适用于MCU的机器人操作系统)的官方支持硬件平台。瑞萨与micro-ROS框架的主要开发商eProsima携手,将micro-ROS移植到RA MCU中。 micro-ROS框架允许MCU在机器人
[嵌入式]
瑞萨电子RA <font color='red'>MCU</font>集成micro-ROS框架,简化专业机器人开发
基于AT89C51单片机的量程自切换频率计
近年来,随着科学技术的快速发展,特别是类似单片机等相关集成电路生产技术的快速堀起,推动了仪器仪表及家电产业的快速发展,用程序代码来简化硬件电路的复杂程度,使其不断向着体积小,价格低廉,功能更加多样化、智能化的方向发展。功能齐全,价格低廉的产品越来越受到人们的青睐,当然,科技的发展最先受益的还是从事前沿科技研究领域的人员,对于他们来说,一款好的测量设备将为他们的研究工作带来便利的同时也减轻很多负担。就目前而言,高端仪器设备很多均依赖进口,研究并制造出属于我们国家自己的高端仪器设备将是我们一直努力的方向,而且也具有非常广阔的发展前景。 1 硬件电路设计 本设计主要由信号采集电路、放大整形电路、分频电路、信号处理电路、电源电路
[单片机]
基于AT89C51<font color='red'>单片机</font>的量程自切换频率计
基于80C51单片机的多功能肌电测量仪设计
肌电测量或肌电图是检查人体神经、肌肉系统功能的重要方法,广泛应用于神经科、骨科、耳鼻喉科及口腔科。它可为临床诊断、治疗神经肌肉系统疾患提供客观的科学依据。肌电测量仪一般只具有在示波器上显示波形和记录波形的功能。早期,肌电信号通过照相对胶片进行显影才能看到;后来,把肌电信号描绘在肌电图纸上。这两种肌电信号记录法的机构都很复杂。这里介绍一种利用普通的示波器,通过单片机和A/D、D/A转换控制系统构成的,具有记忆、波形分析(诊断)功能和各种操作的实时处理的低功耗智能肌电测量仪。该肌电测量仪可实现一次采集后,多次重复显示、打印,实现了肌电信号测量仪的智能化 1 多功能肌电测量仪的硬件设计 1.1 系统硬件结构框图 系统硬件结构框图如图
[单片机]
基于80C51<font color='red'>单片机</font>的多功能肌电测量仪设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved