微机原理 发光二极管按一定规律轮流点亮

所需积分/C币:45 2018-01-22 16:20:56 589KB PDF
收藏 收藏 7
举报

实验报告包括代码; 利用8255A和8253使发光二极管按一定规律轮流点亮,发光二极管点亮方式:将发光二极管分为n 组,每组12/n 个灯管,从左到右依次点亮 这些灯管,每组灯管发光时间为t。设有8种发光组合: (1)n=12,t=1s:每个灯管单独一组,间隔1秒循环点亮。 (2)n=12,t=2s:每个灯管单独一组,间隔2秒循环点亮。 (3)n=6,t=1s:每两个灯管一组,间隔1秒循环点亮。 (4)n=6,t=2s:每两个灯管一组,间隔2秒循环点亮。 (5)n=4,t=1s:每三个灯管一组,间隔1秒循环点亮。 (6)n=4,t=2s:每三个灯管一组,间隔2秒循环点亮。 (7)n=3
1.主程序为键盘输入按‘A’~‘D’命令分支到各点亮功能 程序段,按‘G’退出。 2.定时时间1秒、2秒可由8253产生定时中断,通过IRQ2 引起中断请求。8253的定时器工作可参考“定时计数器:8253 方波”。 3.在屮断服务程序屮,通过8255A的端口B的PB4PB7, 端口C的PC0-PC7来设置发光二级管下一组灯点亮,其他灯 都暗。次序可从左到右,也可以从右到左 二、设计思想: 1、主程序运行 设计要求我们根据输入不同的键来控制不同的灯亮以及不同 的时间间隔,因此主程序主要以对小键盘输入的键进行判断,在 本实验中我们扩展了一个功能,就是根据7,8来进行向左向右转 的控制 首先初始化8255,8253,8259芯片,然后进行对键盘输入的 扫描: 当读入A,B,C,D时,根据A,B,C,D分别改变当前组,并且修 改应该显示的灯的数量,由于是用两个全局变量来记录灯的组别 和灯亮的状态,重新调用循环亮灯的程序就可以改变灯亮的数量: 读入EF的时候,改变8253的计数初值,由于8253的CLK 接入T7∏,T7∏输出的频率为192MHZ,因此当改变计数初值 为4BO0H时为一秒计时,改变计数初值为9600H的时候为两秒计 时 当读入7,8的时候,改变循环状态为lef(0), right(1),分 別进入不同方向的循环控制程序 当读入0的时候,8255输出灯全灭,并且结束程序; 芯片初始化字 8255: 设置为80,即方式0A八位输出C高四位输入B组控制方 式0B八位输C低四位输出 8253: 控制字端口输出36H;8253计数器016位方式十进制计数; 8259: ICW1设置13h,边沿触发,单片方式,写入ICW4 ICW2:00001000;08H,中断类型号基址为08h; OCW1:OF8H;屏蔽IR2以外其他的中糊请求; 3、中断整体芯片控制过程: 程序开始初始化8253,8259,8255芯片之后,8253初始化计数 值4B0OH即1秒,当计数结束的时候 OUTPUT接∏输出上升沿, 接到8259心片IR2接凵。 由丁8259设置的是边沿触发,并且ICW2设置为08h,当IR2 收到中断请求的时候,R2的中断类型号为00001010B,转到他对 应的中断向量地址0028H对应的中断向量程序。 中断向量程序依据当前灯的状态,修改8255相应灯亮的状 太 4、晶体管亮灯改变(以向左移动为例): 由于晶体管一共12个,而AX有16位,因此并不需要高4 位参与循环,囚此在设计的时候将低四位的状态复制到AH的高 四位,再通过ROL进行相应位数的循环; 至于右循环则相反,采用ROR循环,再将高四位的状态复制 到低四位; 5、键盘扫描子程序设计 键盘内部设计: 通过演示的程序可以观察得到,键盘内部分为如图所示4个部分; A 4 B F E 设计思路: 初始化并关显示∏,通过输入选择段位关显示∏。初始化 数据。 2.输出低电平,延时,读取电位数据,取反,判断是否为0。 3.读取数据为0,如果为0,就判断是否循环结束,如果不为 0,就进行键值判断 4、每次循坏八次可以看出来以列为单位进行循环,每次遍历 列,有四个键 5、查看当前列有无按下的键,如果有,输入的a1内是相应 的键的行,即,例如第二排红色的区域,输入为0010,则调到相 应的处理方式中去; 6、由于每列的数字加法没有什么规律,因此这里采用全部列 出来的方式进行了读取每个数据; 实验连线 8255A 从PB3到PB0,PA7-PA0依次连接对应的L1-L12灯管; 8259 连接138译码输入端ABC,其中A连A2,B连A3,C连 A4,138使能控制输入端G与总线单元上方的GS相连。 将8259CS插孔与译码单元的Y0相连,用8芯扁半电缆将 8259中断控制单元的数据总线插座与数据总线单元任一插座相 8253: 将8253CS与译码单元的Y1相连,中断源IR2与8253的OUT0 ∏相连。用8芯扁平电缆将8251串行通信单元的数据总线插座与 数据总线单元任一插座相连。 GATEO与+5V相连,CLK0与频单元T7相连 实验连线: 3 8259 据总线 CIRO 分频单元T OUTO gate0 8253 執源 数据总线 功能流程图 1、主程序运行: 程序开始 丿始化82b 初始化8255 初始化8259 运行第一种情江 向左循环,单个一组) 无输入 获取键盘输入 是ABCD? 修改当前灯的分组情况 是EF 修改8253计数初值 计数1秒2) 是78 修改灯的转向 左转或右转) 是0? 退出 2、中断整休芯片控制过程: 断源 控制产生中断 8088CPU 控制 8253 控制 82 3、晶体管亮灯改变(以向左移动为例): 将 currentS移到AH, 将 currentS移到AL 将AH高四位复制到低四位 注 current, cuarentA表示当 对AX循环左移改相应位 前灯亮情况 改变并保存全局变量 currentS current 翰出新的状态的灯亮 4、键盘扫描了程序设计 开始 关显示囗 初始化输彐 数据 输出低电三 延时 未结束 读取输入数 AL是否为0 不是 循环结束 是否是第一排 N 是否是第二排 是否是第三 是否是第四排 N 结束 根行列得出 健盘的恒

...展开详情
试读 23P 微机原理 发光二极管按一定规律轮流点亮
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    微机原理 发光二极管按一定规律轮流点亮 45积分/C币 立即下载
    1/23
    微机原理 发光二极管按一定规律轮流点亮第1页
    微机原理 发光二极管按一定规律轮流点亮第2页
    微机原理 发光二极管按一定规律轮流点亮第3页
    微机原理 发光二极管按一定规律轮流点亮第4页
    微机原理 发光二极管按一定规律轮流点亮第5页
    微机原理 发光二极管按一定规律轮流点亮第6页
    微机原理 发光二极管按一定规律轮流点亮第7页

    试读已结束,剩余16页未读...

    45积分/C币 立即下载 >