资料介绍
用AVR单片机8位数据产生随机数
星星灯
源程序:SLAVR737.ASM
用AVR单片机8位数据产生随机数,由PORTA 口及PORTC 口输出随机数,在8X8 LED上显示,
硬件接线电路见“7.3.8按钮猜数”。随机数的种子由程序设定(也可外接开关设定),启动
种子后,由移位寄存器以互斥的异或逻辑组合返回循环产生。
.include"8515def.inc"
rjmp RESET
.def temp =r16 ;暂存器
.def temp1 =r17 ;暂存器1
.def udata =r21 ;存随机数送A口
.def ddata =r22 ;存随机数送C口
.cseg
.org 0x10
RESET: ldi temp,high(RAMEND);设堆栈指针
out SPH,temp
ldi temp,low(RAMEND)
out SPL,temp
ldi temp,0xff ;设A口、C口为输出
out ddra,temp ;送方向寄存器A
out ddrc,temp ;送方向寄存器C
start: wdr ;关看门狗
ldi udata,0x6a ; 设置随机数初值
ldi ddata,0x3c ;
startp: out porta,udata ;输出到A口
out por