利用单片机取得随机数利用单片机取得随机数.doc

利用单片机取得随机数利用单片机取得随机数.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计报告 学院 土 木 班级 交通工程C021班 设计人 田立全 学号 026885 设计题目:利用单片机取得随机数 问题的提出: 利用单片机的中断和定时器/计数器相结合产生一个6位的二进制随机数(即产生一个0-63之间的一个随机数)。每当按下按钮之后,在LED显示器上显示这个二进制的随机数。 总体设计: 所设计题目的功能: 可以利用定时器/计数器进行自动重装载的计数,当触发中断的时候读出定时器/计数器的计数值作为产生的随机数。整个程序分为两个部分,主程序部分负责定时器/计数器的初始化、中断系统初始化和LED显示三部分功能。外部中断处理部分的程序负责取定时器/计数器中的随机数,然后取该数的低六位,然后将这个数转化为六个字节的二进制数(例如:将25h转变为:01h,00h,01h,00h,00h,01h)。然后利用LED显示器显示这6个字节的数据。 总体方案设计: (1)断源的选择 因为定时器/计数器只是在外部中断被触发的时候负责提供数据,所以虽然我们用到了定时器/计数器,但是它并不是一个中断源,即本系统的中断源只有一个外部中断。 (2)二进制转换的实现 进制转换可以利用除二取余法。 硬件系统设计 硬件电路: PB 8155 接口 PA 驱动器 八路反相 驱动器 六路反相 LED显示器 P3 P3.2 开关 软件系统设计 程序清单 ORG 0000H AJMP MAIN ;INT0 ENTERENCE ORG 0003H AJMP INTER0 ORG 0200H MAIN: MOV SP, #6FH ;SET TIMMER MOV TMOD, #20H MOV TH1, #00H MOV TL1, #00H SETB TR1 ;ENABLE INTERRUPT SETB EX0 SETB PX0 SETB IT0 SETB EA AJMP DSPLY ;DISPLAY AND WAIT FOR INTERRUPT ORG 0300H DSPLY: MOV A, #03H MOV DPTR, #0FF20H MOVX @DPTR, A DSPLY1: MOV R3, #01H MOV R0, #30H ;RESULT ENTRANCE MOV A, R3 LD0: MOV DPTR, #0FF21H MOVX @DPTR, A MOV A, @R0 MOV DPTR, #DTAB MOVC A, @A+DPTR MOV DPTR, #0FF22H MOVX @DPTR, A ACALL DELAY INC R0 MOV A, R3 JB ACC.5, LD1 RL A MOV R3, A AJMP LD0 LD1: SJMP DSPLY ;DELAY FOR 1MS DELAY: MOV R7,#02H DL1: MOV R6,#0FFH DL2: DJNZ R6, DL2 DJNZ R7, DL1 RET ORG 0400H INTER0: MOV A, TL1 ;READ COUNTER ANL A, ;REQUIRE LAST 6 BITS AND MO

您可能关注的文档

文档评论(0)

zyongwxiaj8 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档