基本信息
文件名称:《单片机技术与应用》 课件 项目三任务5-单片机数码显示抽奖器.pptx
文件大小:1.01 MB
总页数:26 页
更新时间:2025-06-19
总字数:约4.26千字
文档摘要

项目三抽奖器设计

任务五单片机数码显示抽奖器

任务描述按动抽奖按钮,抽奖器随机生成四位编码,4位LED数码管实时显示编码。再次按下抽奖按钮时,抽奖器停止运行,LED数码管稳定显示中奖号码。

知识链接定时/计数器中断随机函数的使用中奖是一个随机事件,要保证号码随机性,就必须要求系统产生一个随机码,以减少重复。而随机码产生的算法较为复杂,为较为简单的实现该算法,本设计采用C51编译环境提供的库函数。使用rand()函数产生中奖号码,然后送数码管显示。

一、定时/计数器的工作原理定时/计数器实质上是一个加1计数器。计数器每来一个脉冲,就自动加1,,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

二、51单片机定时器结构定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器THx和TLx组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

1、工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:位名称GATEM1M0GATEM1M0位地址T1T0

?M1M0工作方式说明00方式013位定时/计数器01方式116位定时/计数器10方式28位自动重装定时/计数器11方式3T0分成两个独立的8位定时/计数器,T1停止计数。

1、方式0方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。

2、方式1方式1为16位计数,由TL0作为低8位,TH0作为高8位,组成了16位加1计数器。计数个数N与计数初值X的关系为:X=216+1-N

3、方式2方式2为自动重装初值的8位计数方式。计数个数与计数初值的关系为:X=28+1-N工作方式2特别适合于用作较精确的脉冲信号发生器。

4、方式3方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。工作方式3将T0分成为两个独立的8位计数器TL0和TH0。

计数器初值的计算比如说你用的是12MHZ的晶振,那么单片机的震荡周期就是1/12μs,状态周期是1/6μs,机器周期是1μs。若我们定时1ms,初值是多少呢?1ms/1us=1000。也就是要计数1000个数。所以计数初值=216-1000+1(因为实际上计数器计数到65536才溢出)=65535-1000+1=64536=FC18H?

2、控制寄存器TCONTCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T1运行控制位。TR1=1时,T1开始工作;TR1=0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址

任务实施1.硬件电路。2.程序设计。

1.硬件电路

2.程序设计#includereg51.h /*8051单片机资源说明*/#includestdlib.h /*包含rand()函数*/#defineucharunsignedchar/*宏定义uchar变量类型*/#defineuintunsignedint/*宏定义uint