Keil的使用及流水灯设计.ppt

上传人:xiao****1972 文档编号:6279285 上传时间:2020-02-21 格式:PPT 页数:30 大小:1.73MB
返回 下载 相关 举报
Keil的使用及流水灯设计.ppt_第1页
第1页 / 共30页
Keil的使用及流水灯设计.ppt_第2页
第2页 / 共30页
Keil的使用及流水灯设计.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
KeiluVision2的使用 1 keilC51的安装2 项目的建立3 ASM文件的建立4 项目的编译5 项目的调试6 项目程序的烧写 一 keilC51的安装 先运行光盘中单片机软件 setup setup exe安装程序 选择安装 EvalVersion 版进行安装 一直点击 Yes 或 Next 直到 Finish 完成 安装好后 在桌面上会产生快捷图标 如下图 二 keilC51的使用 点击桌面快捷图标 可以直接进入主画面 现在 我一步一步学着做 实际体验一下从编辑源程序到程序调试的全过程 我们做一个让单片机P0口所驱动的LED灯隔一个亮隔一个灭的程序 1 在Keil系统中 每做个独立的程序 都视为工程 或者叫项目 首先从菜但的 工程 中 新建工程 建立我们将要做的工程项目 新建的工程要起个与工程项目意义一致的名字 可以是中文名 我们这里的程序是实验测试程序 所以起的名字为Test 并将Test工程 保存 到C Keil下 接下来 Keil环境要求我们为Test工程选择一个单片机型号 我们选择Atmel公司的89C51 虽然我们使用的是89S51 但由于89S51与89C51内 外部结构完全一样 所以这里依然选择 89C51 确定 后工程项目就算建立了 2 立了工程项目 肯定要实施这个工程 现在就为工程添加程序 点击 文件 中的 新建 新建一个空白文档 这个空白文档就是让我们编写单片机程序的场所 在这里你可以进行编辑 修改等操作 根据题意 在文档中写入下列代码 下列代码你暂时不要管什么意思 只要照抄正确就可以 今后在学习汇编时你会明白的 movp0 01010101B 将01010101二进制代码送P0口ajmp 程序在此原地踏步end 程序结束标志写完后再检查一下 并保存文件 保存文件时 其文件名最好与前面建立的工程名相同 当然这里为Test了 其扩展名必须为 Asm 文件名 中一定要写全 如 Test Asm 保存后的文档彩色语法会起作用 将关键字实行彩色显示 3 保存了Asm文件后 还要将其添加到工程中 具体做法如下 见下图 鼠标右键点击 SourceGroup1 在弹出的菜单中选 增加文件到组SourceGroup1 在接下来出现的窗口中 选择 文件类型 为 Asm源文件 a src 由于我们使用的是汇编语言 所以选择Asm源文件 选中刚才保存的Test Asm 按 Add 再按 关闭 文件就添加到了工程中 向工程添加了源文件后 鼠标右键点击 TarGet1 在弹出的菜单中选 目标Target1属性 如下图 在打开的话框中 选择 输出 选项卡 在这个选项卡中 E生成HEX文件 选项前要打勾 按 确定 退出 4 最后 从菜单的 工程 中执行 R重新构造所有目标 或者按下图红圈中的按钮 汇编 连接 创建Hex文件一气呵成 在工程文件的目录下就会生成与工程名相同的一些文件 其中大部分文件我们并不必关心 而生成的Hex文件是我们需要的 它是要烧写到单片机中的最终代码 也就是单片机可以执行的程序 这里生成的是Test HEX 稍后就写入 若在下面的状态窗中有错误提示 就需要再次编辑 修改源程序 如语法 字符有错等 保存 构造所有 直至没有错误 5 在没有语法错误的情况下 按下图红圈中的按钮就可以进行模拟调试 下面是调试窗 由于我们的程序是让P0口8个脚隔一个输出0 隔一个输出1 所以要从菜单的 外围设备 中打开 Prot0 P0口窗 单击 单步运行 在P0窗中就可以看到我们原先设想的效果 点亮第一个发光二极管 位操作 include 52系列单片机头文件sbitled1 P1 0 声明单片机P1口的第一位voidmain 主函数 led1 0 点亮第一个发光二极管 总线操作 include 52系列单片机头文件voidmain 主函数 P1 0 xaa 灯的闪烁 include 52系列单片机头文件 defineuintunsignedint 宏定义sbitled1 P1 0 声明单片机P1口的第一位uinti j voidmain 主函数 while 1 大循环 led1 0 点亮第一个发光二极管 for i 1 i 0 i 延时for j 110 j 0 j led1 1 关闭第一个发光二极管 for i 1000 i 0 i 延时for j 110 j 0 j 使用延时函数 include 52系列单片机头文件 defineuintunsignedint 宏定义sbitled1 P1 0 声明单片机P1口的第一位voiddelay1s 声明子函数voidmain 主函数 while 1 大循环 led1 0 点亮第一个发光二极管 delay1s 调用延时子函数led1 1 关闭第一个发光二极管 delay1s 调用延时子函数 voiddelay1s 子函数体 uinti j for i 500 i 0 i for j 110 j 0 j 使用带参数的延时函数 include 52系列单片机头文件 defineuintunsignedint 宏定义sbitled1 P1 0 声明单片机P1口的第一位voiddelayms uint 声明子函数voidmain 主函数 while 1 大循环 led1 0 点亮第一个发光二极管 delayms 200 延时200毫秒led1 1 关闭第一个发光二极管 delayms 800 延时800毫秒 voiddelayms uintxms uinti j for i xms i 0 i i xms即延时约xms毫秒for j 110 j 0 j Keil仿真及延时语句的精确计算 include 52系列单片机头文件 defineuintunsignedint 宏定义sbitled1 P1 0 声明单片机P1口的第一位uinti j voidmain 主函数 while 1 大循环 led1 0 点亮第一个发光二极管 for i 1 i 0 i 延时for j 110 j 0 j led1 1 关闭第一个发光二极管 for i 1000 i 0 i 延时for j 110 j 0 j 利用C51库函数实现流水灯 include 52系列单片机头文件 include defineuintunsignedint 宏定义 defineucharunsignedcharvoiddelayms uint 声明子函数ucharaa voidmain 主函数 aa 0 xfe 赋初值11111110while 1 大循环 P1 aa delayms 500 延时500毫秒aa crol aa 1 将aa循环左移1位后再赋给aa voiddelayms uintxms uinti j for i xms i 0 i i xms即延时约xms毫秒for j 110 j 0 j 花样流水灯 include defineINT8Uunsignedchar defineINT16UunsignedintcodeINT16UPattern 本例16位的花样数组 0 xFCFF 0 xF9FF 0 xF3FF 0 xE7FF 0 xCFFF 0 x9FFF 0 x3FFF 0 x7FFE 0 xFFFC 0 xFFF9 0 xFFF3 0 xFFE7 0 xFFCF 0 xFF9F 0 xFF3F 0 xFFFF 0 xE7E7 0 xDBDB 0 xBDBD 0 x7E7E 0 xBDBD 0 xDBDB 0 xE7E7 0 xFFFF 0 xE7E7 0 xC3C3 0 x8181 0 x0000 0 x8181 0 xC3C3 0 xE7E7 0 xFFFF 0 xAAAA 0 x5555 0 x1818 0 xFFFF 0 xF0F0 0 x0F0F 0 x0000 0 xFFFF 0 xF8F8 0 xF1F1 0 xE3E3 0 xC7C7 0 x8F8F 0 x1F1F 0 x3F3F 0 x7F7F 0 x7F7F 0 x3F3F 0 x1F1F 0 x8F8F 0 xC7C7 0 xE3E3 0 xF1F1 0 xF8F8 0 xFFFF 0 x0000 0 x0000 0 xFFFF 0 xFFFF 0 x0F0F 0 xF0F0 0 xFEFF 0 xFDFF 0 xFBFF 0 xF7FF 0 xEFFF 0 xDFFF 0 xBFFF 0 x7FFF 0 xFFFE 0 xFFFD 0 xFFFB 0 xFFF7 0 xFFEF 0 xFFDF 0 xFFBF 0 xFF7F 0 xFF7F 0 xFFBF 0 xFFDF 0 xFFEF 0 xFFF7 0 xFFFB 0 xFFFD 0 xFFFE 0 x7FFF 0 xBFFF 0 xDFFF 0 xEFFF 0 xF7FF 0 xFBFF 0 xFDFF 0 xFEFF 0 xFEFF 0 xFCFF 0 xF8FF 0 xF0FF 0 xE0FF 0 xC0FF 0 x80FF 0 x00FF 0 x00FE 0 x00FC 0 x00F8 0 x00F0 0 x00E0 0 x00C0 0 x0080 0 x0000 0 x0000 0 x0080 0 x00C0 0 x00E0 0 x00F0 0 x00F8 0 x00FC 0 x00FE 0 x00FF 0 x80FF 0 xC0FF 0 xE0FF 0 xF0FF 0 xF8FF 0 xFCFF 0 xFEFF 0 x0000 0 xFFFF 0 x0000 0 xFFFF 0 x0000 0 xFFFF 0 x0000 0 xFFFF voiddelay ms INT16Ux INT8Ut while x for t 0 t 8 P2 Pattern i delay ms 50 方波发生器 用任一IO口做一个周期为20ms的方波发生器 include 52系列单片机头文件 defineuintunsignedint 宏定义sbitl1 P1 0 声明单片机P1口的第一位voiddelay1s 声明子函数voidmain 主函数 while 1 大循环 l1 0 点亮第一个发光二极管 delay1s 调用延时子函数l1 1 关闭第一个发光二极管 delay1s 调用延时子函数 voiddelay1s 子函数体 uinti j for i 10 i 0 i for j 120 j 0 j 练习各种效果流水灯 第一个发光管以间隔200ms闪烁8个发光管由上至下间隔1s流动 其中每个管亮500ms 灭500ms 一直重复下去 8个发光管来回流动 每个管亮100ms 用8个发光管演示出8位二进制数累加过程 8个发光管间隔200ms由上至下 再由下至上 再重复一次 然后全部熄灭再以300ms间隔全部闪烁5次 重复此过程 间隔300ms第一次一个管亮流动一次 第二次两个管亮流动 依次到8个管亮 然后重复整个过程 间隔300ms先奇数亮再偶数亮 循环三次 一个灯上下循环三次 两个分别从两边往中间流动三次 再从中间往两边流动三次 8个全部闪烁3次 关闭发光管 程序停止
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!