⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 随机数.asm

📁 单片机开发资料光盘-双龙-686M.zip
💻 ASM
字号:
;*********************8X8LED显示随机数.ASM **********************************
;*
;* 标题:	用8X8LED显示随机数	
;* 版本:		1.0
;*最后更新日期:	2000.08.08
;*
;* 支援 E-mail:	gzsl@sl.com.cn
;*
;* 描述
;*  用AVR单片机I/O口产生随机数,用8X8LED显示随机亮点
;* 实验器件用AT90S8515,必须有AT90S8515的文件头*.inc
;* 作者: SL.
;*程序适用于所有单片机
;***************************************************************************
.include "8515def.inc"
.org  $0000
	rjmp	RESET		;复位
		 
	

.org $0010			;跳过中断区
  
 
	
.def    temp    =r16		;数据暂存器
.def	temp1	=r17
.def	udata	=r21		;A口随机数数值
.def	ddata	=r22		;C口随机数数值

.cseg
.org    0x10

 RESET:ldi  temp,high(RAMEND)  ;设堆栈初值#025F,在文件头有定义 
	out	SPH,temp	        ;(SPH)=02H
	ldi	temp,low(RAMEND)	 
	out	SPL,temp		;(SPL)=5FH
      
        ldi     temp,0xff		;设方向寄存器为输出
        out     ddra,temp	;A口为输出
        out     ddrc,temp	;C口为输出
start:  wdr			;关看门狗
        ldi     udata,0x6a	;设A口随机数数初值
        ldi     ddata,0x3c	;设台初值
startp: out     porta,udata	;A口随机数数输出 
        out     portc,ddata	;C口随机数数输出 
        ldi     temp,0x80	;延时常数,可修改
        rcall   delay		;调用延时子程序
        rcall   randm		;
        rjmp    startp  

delay:                          ;延时子程序
	push    temp		;延时常数进栈
l1:     push    temp		;延时常数进栈
l2:     dec     temp		;-1
        brne    l2              ;不为0转,为0顺执 
        pop     temp		;出栈
        dec     temp		;-1
        brne    l1        	;不为0转,为0顺执        
        pop     temp		;出栈
        dec     temp		;-1
        brne    delay           ;不为0转,为0顺执     
        ret                     ;子程序返回 


randm:   			;随机数产生子程序
          mov   temp,udata	;A口随机数送temp
          mov   temp1,udata	;A口随机数送temp1
          rol   temp		;通过进位位左循环
          eor   temp1,temp	;二个随机数异或
          rol   temp		;通过进位位左循环
          rol   temp		;通过进位位左循环
          eor   temp1,temp	;二个随机数异或
          mov   temp,ddata	;C口随机数 
          swap  temp		;C口随机数半字节交换
          eor   temp,temp1	;二个随机数异或
          rol   temp		;通过进位位左循环
          rol   ddata		;C口随机数通过进位位左循环
          rol   udata		;A口随机数通过进位位左循环
          ret      		;子程序返回

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -