您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机AVR单片机8位数据产生随机数 正文
AVR单片机8位数据产生随机数

AVR单片机8位数据产生随机数

点击数:7915 次   录入时间:03-04 11:40:08   整理:http://www.55dianzi.com   AVR单片机
              sbis    PINd,01        ;I/O口的位被置位跳行,检测到PD1按下否
              rjmp    getseed     ; 检测到PD1按下转
              dec     temp2        ;-1
              brne    dspfm1        ;不为0转
              dec     dspn        ; 初始画面次数-1
              brne    dspfm        ; 不为0转
              rjmp    start        ;转到显示初始动画
      getseed:inc     temp        ;+`1,根据PD1按下的时间,选择随机数种子
              sbis    pind,01        ; I/O口的位被置位跳行,检测到PD1按下否
              rjmp    getseed        ; 检测到PD1按下,继续计数
              andi    temp,0x1f    ;按钮松开,取随机数种子与0X0F加
              ldi     zh,high(randtb*2)
              ldi     zl,low(randtb*2)
              add     zl,temp
              lpm
               MOV      rdata,r0    ;得到随机数种子
      next:   ldi     dspn,0x08   ;显示8个不同的随机数;
      repeet: rcall   randm        ;调用产生随机数子程序
              rcall   dspnumber    ;调用显示8个不同的随机数
              dec     dspn        ;-1
              brne    repeet        ;dspn不为0转
              rcall   randm        ; 调用产生随机数子程序
      guess1: rcall   dspnumber   ;调用显示同一随机数,直到有键按下
              sbIC    pind,01     ;松开后再往下执行(I/O口清零跳行)
              rjmp    guess1         ;转显示同一随机数,直到有键按下
      wait:   rcall   dspnumber    ;
              sbis    pind,01
              rjmp    wait         ;等待按钮按下
              ldi     rdata9,0x03         ;显示动画三次
      start0: ldi     dspn,0x06           ;每次显示六幅画面
              ldi     zh,high(dpfstb*2)  
              ldi     zl,low(dpfstb*2)  
      dspfm0: rcall   ldtb8            ;调用从Z指向的程序区取数据送到内存0080-0087中
              ldi     temp2,0xa0        ;显示次数
      dspfm1a:rcall   scan1            ;调用从内存0080-0087中取数据显示一次
              dec     temp2            ;-1
              brne    dspfm1a            ;不为0转
              dec     dspn            ;显示初始动画次数-1
              brne    dspfm0            ;不为0转
              dec     rdata9            ;显示动画三次-1
              brne    start0            ;不为0转
              rjmp    next                ;转显示8个不同的随机数
      dspnumber:                         ;显示一个0-9数字的子程序
              ldi     zh,high(numbertb*2)

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:单片机  AVR单片机单片机-工控设备 - AVR单片机