• 优质范文
  • 工作总结
  • 工作计划
  • 作文大全
  • 心得体会
  • 述职报告
  • 实习报告
  • 写作方案
  • 教案反思
  • 演讲稿
  • 发言稿
  • 读书笔记
  • 精美散文
  • 读观后感
  • 范文大全
  • 当前位置: 博通范文网 > 读观后感 > 正文

    实验三LED指示灯循环控制

    时间:2021-09-29 来源:博通范文网 本文已影响 博通范文网手机站

    实验三LED指示灯循环控制 一、实验目的 熟悉uVision4编译软件、掌握C51编程与调试方法 二、实验原理 实验电路原理图如教材219图A.34所示,图中8只LED指示灯接于P0口,切都有上拉电阻。时钟电路、复位电路、片选电路与前面的实验电路相同。

    在编程软件的配合下,要求实现如下功能:8只发光二极管做循环点亮控制,且亮灯顺序为D1-D2-D3…-D8-D7…-D1,无限循环,两次亮灯的时间间隔约为0.5s,软件编程原理为:

    首先使P0.0-1,其余端口-0,这样可使D1灯亮,其余灯灭;

    软件延时0.5s后,使P0口整体左移1位,得到P0.1-1,其余端口-0,这样可使 D2灯亮其余全灭;

    照此思路P0整体左移7次,再又移7次,如此无限往复即可实现上述功能。

    三、实验内容 1、按照教材P219的图A.34,绘制实验三电路原理图;

    2、根据功能要求,编写C51程序;

    3、练习μVision4程序动态调试方法,并最终实现8个LED灯依次点亮的功能:

    P0.0→P0.1→P0.2→P0.3→ ┅ →P0.7→P0.6→P0.5→ ┅ →P0.0的顺序,无限循环,间隔约50ms;

    4、观察仿真结果,完成实验报告。

    四、实验步骤 (1) 在ISIS中绘制电路原理图,按照表A4.1将元件添加到编译环境中;

    (2) 在uVision4中编写C51程序;

    (3) 利用uVision4的编译调试功能检查语法和逻辑错误;

    (4) 下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。

    五、实验要求 提交的实验报告中应包括电路的原理图和实验结果分析。

    Category Reference Value Microprocessor ICs U1 80C51 Miscellancous X1 CRYSTAL Capacitors C2~C3 CAP Capacitors C1/22uF CAP--ELEC Resistors R2~R8/200 RES Resistors R10~R17/100 RES Optoelectronics D1~D8 LED--YELLOW 1、电路分析及原理图 图1 2、编程思路及C51源程序 编程思路 1, P0口赋一初值,使D1灯亮,D2~D8灯灭 2, 调用函数delay,传入参数值为50(ms) 3, 采用while结构的无限循环体 4, 由上向下循环控制(变量i的初值为1,终值小于8,增量为+1) 5, 使P0中的数值向左移1位 6, 调用函数delay,传入参数值为50(ms) 7, 返回第二部继续进行 如图2为本次实验源程序 图2 调试运行 图3 调试运行 图4 4、仿真运行效果 起始时的情况 运行中的情况 5、实验小结 1,通过实验我们实现了最终实现8个LED灯依次点亮的功能:

    P0.0→P0.1→P0.2→P0.3→ ┅ →P0.7→P0.6→P0.5→ ┅ →P0.0的顺序,无限循环,间隔约50ms;

    实验六 键盘控制LED灯实验

    1 实验目的

    (1) 通过实验掌握中断式键盘控制与设计方法; (2) 熟练编写S3C2410中断服务程序。

    2 实验设备

    (1) S3C2410嵌入式开发板,JTAG仿真器。

    (2) 软件:PC机操作系统Windows XP,ADS1.2集成开发环境,仿真器驱动程序,超级终端通讯程序。

    3 实验内容

    编写中断处理程序,处理一个键盘中断,并在串口打印中断及按键显示信息。

    4 实验步骤

    (1) 参照模板工程,新建一个工程keypad,添加相应的文件,并修改keypad的工程设置;

    (2) 创建keypad.c并加入到工程keypad中; (3) 编写键盘中断程序; 参考代码如下: ①串口初始化程序

    void uart_init()/* UART串口初始化 */ {

    } GPHCON |= 0xa0; GPHUP = 0x0; ULCON0

    //GPH2,GPH3 used as TXD0,RXD0

    //GPH2,GPH3内部上拉

    //8N1

    = 0x03; UCON0 = 0x05; UFCON0 = 0x00;

    //查询方式为轮询或中断;时钟选择为PCLK

    //不使用FIFO //不使用流控 UMCON0 = 0x00; UBRDIV0 = 26;

    //波特率为57600,PCLK=12Mhz ②发送数据

    while( ! (UTRSTAT0 & TXD0READY) ); UTXH0 = c; ③接收数据

    while( ! (UTRSTAT0 & RXD0READY) ); return URXH0; ④打印数据

    int i = 0;

    while( str[i] ){ } return i; putc( (unsigned char) str[i++] ); ⑤按键初始化

    int key_init()/* 按键初始化 */ {

    } ⑥中断初始化

    void irq_init()/* 中断初始化 */ {

    } (5) 编译keypad;

    (6) 运行超级终端,选择正确的串口号,并将串口设置位:波特率(115200)、奇偶校验(None)、数据位数(8)和停止位数(1),无流控,打开串口; INTMSK &= ~(3

    printk("按键初始化OK\\\\r\\\\n"); return 0; (7) 运行程序,在超级终端中输入的数据将回显到超级终端上,结果如图5.4所示:

    图6.1 初始化运行结果

    图6.2 main运行结果

    5 实验总结

    通过这次实验我巩固了上次实验的串口的使用方法,串口初始化、发送数据和接收数据,同时也熟悉了中断的处理过程,即保护现场、中断处理、恢复现场并返回。

    在实验时花费了很多的时间都没有按照老师的要求将代码修改好,主要是因为对代码的不熟悉和不能很好的灵活运用,最后对老师修改的代码仔细的看了,其实很简单。

    顶级的作品!

    读后感想挺多的。

    推荐访问:指示灯 循环 实验

    • 读/观后感
    • 精美散文
    • 读书笔记
    • 演讲
    • 反思
    • 方案
    • 心得体会