松翰单片机定时中断数码管程序

发布者:清新自然最新更新时间:2015-07-07 来源: 51hei关键字:松翰单片机  定时中断  数码管 手机看文章 扫描二维码
随时随地手机看文章
;数码管 ---- 目的:学习查表及间接寻址定时中断

;完整代码下载地址: http://www.51hei.com/f/smysh.rar
 CHIP SN8F27E65
//{{SONIX_CODE_OPTION
 .Code_Option WDT_CLK  Flosc/4
 .Code_Option Reset_Pin P04
 .Code_Option LVD  LVD_Max  ; 3.3V Reset
 .Code_Option Watch_Dog Disable  ;关闭看门狗
 .Code_Option Low_Fcpu Flosc/1
 .Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator
 .Code_Option High_Fcpu Fhosc/1
 .Code_Option Security Enable
 .Code_Option Noise_Filter Enable
//}}SONIX_CODE_OPTION
 DATAC EQU P4M
 DATA EQU P4
 LEDC EQU P0M
 LED EQU P0

.DATA;数据
 ORG  0
 TEMP  DS 1
 ACCBUF  DS 1
 PflagBUF DS 1

.CODE;程序代码
 ORG 0000H
 JMP A0
 ORG 000BH
 JMP T0
; ORG 0015H
A0: B0BCLR FT0IEN;关闭T0中断
 B0BCLR FT0ENB;禁止T0中断
 MOV A,#16;设置T0时钟
 B0MOV T0M,A;
 MOV A,#16;装初值
 B0MOV T0C,A;
 B0BCLR FT0IRQ;清中断标志
 B0BSET FT0IEN;开T0中断
 B0BSET FT0ENB;允许T0中断
 B0BSET FGIE;开总中断
 
 MOV A,#3;显示值
 MOV 41H,A
 
 MOV A,#2;显示值
 MOV 42H,A
 MOV A,#1;显示值
 MOV 43H,A
 MOV A,#0;显示值
 MOV 44H,A
;*********************************************
;显示设置
;*********************************************
A1: MOV A,#11111110B ;显示位码
 MOV 31H,A
 MOV A,#4;显示位数
 MOV 33H,A
 B0MOV H,#0 ; 清“H”以寻址RAM bank 0。
 B0MOV L,#41H ; 设定寄存器地址。
 JMP $
;********************************************* 
;T0中断 
;********************************************* 
T0: B0BCLR FT0IEN;关T0中断
 B0BCLR FT0ENB;禁止T0中断
 B0XCH A,ACCBUF;压栈
 B0MOV A,PFLAG;
 B0MOV PFLAGBUF,A;
 MOV A,#0FFH;清显示
 B0MOV DATAC,A;
 B0MOV DATA,A;
 MOV A,#0FFH;
 B0MOV LEDC,A;
 MOV A,#0FFH;
 B0MOV LED,A;
T1: 
 MOV A,#0FFH;设置为输出口
 B0MOV DATAC,A;
 B0MOV Y,#Q1$M;编码表地址
 B0MOV Z,#Q1$L;编码表地址
 B0MOV A, @HL;间接寻址
 ADD Z,A;寻找要显示编码
 MOVC ;查表高八位存在R低八位存在ACC
 B0MOV DATA,A;数据输出
 
 MOV A,#0FFH;设为输出口
 B0MOV LEDC,A

 MOV A,31H;位码
 B0MOV LED,A
 MOV A,31H;处理位码的数由于没有RL只有RLC现在这里处理C
 MOV 32H,A
 RLC 32H
 RLCM 31H;移动位码
 INCMS L;显示数据控制寄存器处理
 CALL M001;延时提高亮度
 MOV A,#0FFH;清显示
 B0MOV DATAC,A
 B0MOV DATA,A
 MOV A,#0FFH
 B0MOV LEDC,A
 MOV A,#0FFH
 B0MOV LED,A
 DECMS 33H;自动减1判断是否也显示完成
 JMP T1
 
 MOV A,#11111110B ;显示位码
 MOV 31H,A
 MOV A,#4;显示位数
 MOV 33H,A
 B0MOV H,#0 ; 清“H”以寻址RAM bank 0。
 B0MOV L,#41H ; 设定寄存器地址。
 B0MOV A,PFLAGBUF;弹栈
 B0MOV PFLAG,A;
 B0XCH A,ACCBUF;
 MOV A,#16;设T0时钟
 B0MOV T0M,A;
 MOV A,#16;重装初值
 B0MOV T0C,A;
 B0BCLR FT0IRQ;清中断标志
 B0BSET FT0IEN;开中断
 B0BSET FT0ENB;允许中断
 B0BSET FGIE;开总中断
 RETI;
;******************************************
;延时子程序
;******************************************
M001: MOV A,#1
 MOV 51H,A
M002: MOV A,#24
 MOV 52H,A
M003: MOV A,#250
 MOV 53H,A
M004: DECMS 53H
 JMP M004
 DECMS 52H
 JMP M003
 DECMS 51H
 JMP M002
 RET
;******************************************
;编码表
;******************************************
Q1:   DW     00C0H        ;0
      DW     00F9H        ;1
      DW     00A4H        ;2
      DW     00B0H        ;3
      DW     0099H        ;4
      DW     0092H        ;5
      DW     0082H        ;6
      DW     00F8H        ;7
      DW     0080H        ;8
      DW     0090H        ;9
      DW     0088H        ;A
      DW     0083H        ;B
      DW     00C6H        ;C
      DW     00A1H        ;D
      DW     0086H        ;E
      DW     008EH        ;F
      endp

关键字:松翰单片机  定时中断  数码管 引用地址:松翰单片机定时中断数码管程序

上一篇:松翰单片机跑灯程序
下一篇:松翰单片机外部中断

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

MSP430f149红外接收头—读任意红外遥控器键值并显示于数码管
刚学单片机(msp430f149 DM430-A),试了试红外接头(1838),读取红外遥控器的键值,并以十进制显示在数码管上,如果以后准备将这个遥控器作为其他用途还可以把数码管上的键值化成16进制使用如(74——0x4A)。 如果有哪里不正确,期待大家给我改正,共同进步! (部分代码摘自网络) #include msp430x14x.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define CPU_F ((double)8000000) #define delay_us(x) __delay_
[单片机]
按键使数码管循环显示从0到9
具体功能:显示按第一次数码管变亮显示0,然后每按一次数码管显示的数字加1,加到9后从0重新开始。 汇编源代码: ORG 0000H START0:MOV R2,#0 START1:JB P0.0,START1 WAIT:JNB P0.0,WAIT MOV A,R2 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P1,A INC R2 CJNE R2, #10,START1 LJMP START0 TABLE:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H,80H,90H END
[单片机]
按键使<font color='red'>数码管</font>循环显示从0到9
STM32f407学习------(2)定时中断+万年历
任务:利用定时器中断实验、TFT LCD显示实验、OLED显示实验和按键实验 实现在32板子的显示屏上显示万历表,能显示年月日时分秒及星期,同时要处理好闰年与平年。不同的按键按下,能使对应的时间数字精确地发生相应的变化。 参考资料:https://wenku.baidu.com/view/2a698426a21614791711288e.html 还没更新完 非常不好意思 下次补上 1:我所理解的定时器中断: 当计数器计数到所设定的值时,会产生一个中断。 2:定时器中断初始化函数 void TIM3_Int_Init( ) 3:定时器中断实现步骤: (1):使能定时器时钟(一般用到外设,都需要使能相应的时钟) (2
[单片机]
51单片机~定时器和外部中断(各个位控制作用详解)
(一)中断 (二)定时器,计数器中断 TL0低八位先进行存储,达到0XF,向上进一,直到高低八位都满时就可以产生中断或者控制TF0口。 (1). TMOD低四位控制T0,高四位控制T1。 GATE:(门控位) (2)控制寄存器TCON:(低四位控制外部中断,高四位控制计数器启动和中断申请) (3)定时器的四种工作方式: 定时器开启工作原理: 四种工作方式:(机器周期(脉冲)和T0引脚来绝定电路触发) 区别在于TH0和TL0的位数和输出) 常用1和2 1. 2.用于比较精确的脉冲信号发射器: 3. 程序化步奏: 计算:初值==2^n-N(公式要根据你使用那种方式0.1
[单片机]
51<font color='red'>单片机</font>~<font color='red'>定时</font>器和外部<font color='red'>中断</font>(各个位控制作用详解)
51单片机数码管的静态与动态显示
操作数码管的显示其实与操作led灯的操作本质上差不多,可以把一个数码管当做操作8段led灯来让它显示我们所预想的效果,如下图所示。 假如我想让一个数码管显示1,把我只需把B、C两个LED灯点亮就可以了,数码管的a~dp(数码管的点)对应字节的1~8位,假设为共阳极接法,即为1111 1001对应十六进制的F9 数码管的显示分为静态显示和动态显示 数码管的静态显示其实就是一直给数码管的特定位一直发送一样的数据就可以了, 动态显示的原理其实是一位一位的操作操作每个数码管,因为对每一位的操作特别快,并且在一直轮流给数,原理其实就是利用了人眼的视觉暂留效果和发光管的余晖作用来达到效果,只是操作的比较快,我们人眼视觉分辨不
[单片机]
51<font color='red'>单片机</font><font color='red'>数码管</font>的静态与动态显示
STM32系统嘀嗒定时器实现1ms中断事件
int main() { //系统定时器实现周期性1000hz中断事件,即1ms SysTick_Config(SystemCoreClock / 1000); } void SysTick_Handler(void) { static uint32_t cnt=0; cnt++;//记500次之后,=500ms,点灯 if(cnt =500) { cnt=0; 灯亮; } } 最大的定时时间: 如果是168MHZ, 2^24 ÷ 168000000=99.86ms
[单片机]
AT89S52+12MHZ+TEA5767的数码管显示调频收音机
/************************************************************************************************************** AT89S52+12MHZ+TEA5767的数码管显示调频收音机 本程序使用数码管显示频率 晶振是用12M 已通过测试,收音机的频率调节是用计算的方法 将显示的频率算好后写到TEA5767 芯片里面实现调节的 两个按键实现自加或自减频率 加了连续加减功能! 使用的是在淘宝上买的4.5元/片的简化版的TEA5767模块. 2012-05-08 /*********************
[单片机]
单片机内外部资源操作篇之数码管动态显示
假定你已经会了数码管的静态显示,在静态显示的学习中,我们知道,六位数码管同一时刻只能显示同一符号。但我们在日常生活中 经常看到几个数码管同时能显示不同数字,例如时钟等。这就是接下来要讨论的话题——数码管动态显示。 先来看一个例子: 1 #include reg52.h 2 #define uint unsigned int 3 #define uchar unsigned char 4 uchar code table = { 5 0x3f,0x06,0x5b,0x4f, 6 0x66,0x6d,0x7d,0x07, 7 0x7f,0x6f,0x77,0x7c, 8 0x39,0x5e,0x79,0x7
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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