单片机控制LED灯点亮(C语言).ppt

上传人:sh****n 文档编号:8729345 上传时间:2020-03-31 格式:PPT 页数:45 大小:554.81KB
返回 下载 相关 举报
单片机控制LED灯点亮(C语言).ppt_第1页
第1页 / 共45页
单片机控制LED灯点亮(C语言).ppt_第2页
第2页 / 共45页
单片机控制LED灯点亮(C语言).ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
单片机控制led灯点亮 主要内容 一 点亮板子上的第一个灯D0二 点亮板子上的D0 D2 D4 D6灯 与D1 D3 D5 D7灯交替闪烁三 流水灯 从D0 D7依次点亮 一 点亮板子上的第一个灯D0 1 目标了解单片机的基本设计思路和编程方法 和单片机的最小系统 2 分析利用单片机的一个输入 输出口来控制一盏发光二极管点亮 引脚 1 4个I O口占了32个引脚2 电源和接地又占了2个引脚3 剩下的6个引脚是时钟引脚和控制引脚 硬件说明 使用单片机的P1口来驱动8个LED 发光二极管的阳极接高电平 故P1口为低电平时 就可以驱动其点亮D0与P1 0口是相连的 P1 0用来表示P1口的最低位 本任务中给单片机的P1 0口一个低电平信号即可完成控制 所以 只需给P1 0低电平信号 其他引脚均为高电平 点亮D0灯 D7D6D5D4D3D2D1D011111110从二进制转化为十六进制 0 xfe 源程序 includevoidmain P1 0 xfd Keil的使用 掌握Keil工程的建立和软件的开发 1 启动 Vision Vision2是一个标准的Windows应用程序 双击Keil Vision2图标即可启动 也可以选择 开始 程序 Keil Vision2 命令来启动运行 其主界面如图1 28所示 2 创建一个项目并选择单片机选择 Project 项目 NewProject 新建项目 命令 如图1 29所示 将弹出 GreateNewProject 新建项目 对话框 随后会弹出一个对话框 要求选择单片机的型号 在该对话框中显示了 Vision2的器件数据库 从中可以根据使用的单片机来选择 AT89S52 8051basedFullStaticCMOScontrollerwithThree LevelProgramMemoryLock 32I Olines 3Timers Counters 8InterruptsSources WatchdogTimer 2DPTRs DATAPOINTERREGISTERS 8KFlashMemory 256BytesOn chipRAM基于8051全静态CMOS控制器 三级加密程序存储器 32个I O口 三个定时器 计数器 八个中断源 看门狗定时器 2个数据指针寄存器 8k字节Flash 256字节片内RAM 3 创建一个新的源程序文件 并把这个源文件添加到项目中单击工具栏中的新建文件图标 或选择 File 文件 New 新建 命令 文件操作窗口即可出现新建文件 保存该空白文件 单击工具栏中的保存图标 或选择 File 文件 Save 保存 命令 弹出如图1 32所示的 Saveas 保存为 对话框 在 文件名 文本框中输入欲保存的文件名 保存时注意加上正确的后缀名 单击Target1前面的 号 然后在SourceGroup1上单击鼠标右键 弹出快捷菜单 选择 AddFilestoGroup SourceGroup1 添加文件到项目 命令 弹出如图1 34所示的对话框 选中文件 注意选择文件类型 然后单击 Add 添加 按钮 即可添加选中文件到项目中 4 输入源程序 此时就可以输入源程序了 5 设置目标硬件的工具选项程序编写完成后 还要对项目进行进一步的设置 以满足要求 Output 选项卡如图所示 其中有多个选项 此处选择 CreateHEXFile 复选框用于生成可执行代码文件 该文件可以用编程器写入单片机芯片 文件的扩展名为 HEX 默认情况下该项未被选中 如果要写芯片做硬件实验 就必须选中该项 其余选项均取默认值 不做任何修改 6 编译项目并创建HEX文件可以通过工具栏中的图标直接进行 从左到右的图标分别是 编译 编译连接 全部重建 停止编译和对工程进行设置 对源程序编写之后编译 最终要得到结果 提示0个错误 0个警告 同时还可看到 该程序的内部RAM的使用量 data 8 0 外部RAM的使用量 xdata 0 代码量 code 18 等一些信息 7 将生成的hex文件 通过ISP下载到板子中 请观察现象 源程序 includevoidmain P1 0 xfd C语言复习 Main函数格式 voidmain 特点 无返回值 无参 任何一个C程序有且仅有一个main函数 它是整个程序开始执行的入口 例 voidmain 总程序从这里开始执行 其他语句 C语言 51单片机的头文件 通常有 reg51 hreg52 hmath hctype hstdio hstdlib habsacc h常用有 reg51 hreg52 h 定义特殊功能寄存器和位寄存器 math h 定义常用数学运算 十六进制 是二进制的简短表示形式 十进制中的0 15分别表示为十六进制的0 1 2 3 4 5 6 7 8 9 A B C D E F熟练掌握二进制与十六进制之间的转换 规律 一般把四个二进制数放在一起转换成一个十六进制数 转换时先把二进制数转换成十进制数 再把十进制数转换成十六进制数 二进制和十六进制的转换 如 0001B 1HB表示为二进制 H为十六进制1001B 9H1010B AH00101100 2CH11111110 FEH在C语言编程中是不能用H的 十六进制整常数的前缀为0X或0 x 十六进制整常数 十六进制整常数的前缀为0X或0 x 其数码取值为0 9 A F或a f 以下各数是合法的十六进制整常数 0X2A 十进制为42 0XA0 十进制为160 0XFFFF 十进制为65535 以下各数不是合法的十六进制整常数 5A 无前缀0X 0X3H 含有非十六进制数码 各种进位制的对应关系 二 点亮板子上的0 2 4 6灯 与1 3 5 7灯交替闪烁 点亮0 2 4 6灯 D7D6D5D4D3D2D1D010101010从二进制转化为十六进制 0 xaa点亮1 3 5 7灯 D7D6D5D4D3D2D1D001010101从二进制转化为十六进制 0 x55 include defineuintunsignedint defineucharunsignedcharvoiddelay voidmain while 1 P1 0 xaa delay P1 0 x55 delay voiddelay uintx y for x 100 x 0 x for y 600 y 0 y 1 宏定义 defineuintunsignedint defineucharunsignedchar define标识符字符串C语言中的例子 definePI3 14159262 函数声明函数声明是指函数的定义在后面 而前面需要对它进行调用 这样就需要预先作声明 一般来说函数的声明只是函数首部加上分号即可 3 数据类型Intsignedint范围是多少 unsignedint范围是多少 char可以表示小整数或者单个字符 当char表示整数时 signedchar的范围是多少 unsignedchar的范围是多少 C 51的数据类型 基本数据类型 类型 符号 关键字 数的表示范围 所占位数 整型 字符型 实型 有 无 signed int 16 32768 32767 signed short 16 32768 32767 signed long 32 2147483648 2147483647 16 unsignedint 0 65535 32 0 4294967295 unsignedlongint unsignedshortint 16 0 65535 有 float 32 3 4e 38 3 4e38 有 double 64 1 7e 308 1 7e308 有 char 8 128 127 无 unsignedchar 8 0 255 4 While 表达式 语句 内部也可为空 特点 先判断表达式 后执行语句 原则 若表达式不是0 即为真 那么执行语句 否则跳出while语句 While 1 while 1 就是while true 条件判断直接为true 循环永远不会退出 也称为死循环 5 delay 函数是一个延时函数 两个for语句 构成了循环嵌套 用数数的方式消耗时间产生延迟效果 具体延迟多久取决于若干因素 以后再讨论 voiddelay uintx y for x 100 x 0 x for y 600 y 0 y 注意 第二个for循环体是一条空语句 5 for循环for 表达式1 表达式2 表达式3 语句 内部可为空 执行过程 1 求解一次表达式1 2 求解表达式2 若其值为真 非0即为真 则执行for中语句 然后执行第3步 否则结束for语句 直接跳出 不再执行第3步 3 求解表达式3 4 跳到第2步重复执行 三 流水灯 从D0 D7依次点亮 分析 D0亮0 xfe11111110D1亮0 xfd11111101D2亮0 xfb11111011D3亮0 xf711110111D4亮0 xef11101111D5亮0 xdf11011111D6亮0 xbf10111111D7亮0 x7f01111111 软件分析 1 依次把这8个值赋给P1口 延时一段程序 voidmain while 1 P1 0 xfe delay 100 P1 0 xfd delay 100 P1 0 xfb delay 100 P1 0 xf7 delay 100 P1 0 xef delay 100 P1 0 xdf delay 100 P1 0 xbf delay 100 P1 0 x7f delay 100 2 将0 xfe赋给P1口 然后使用移位函数来改变P1口的值 达到流水灯的效果移位函数 crol cror 将char型变量循环向左 右 移动指定位数后返回 crol cror c51中的intrins h库函数 include include defineuintunsignedint defineucharunsignedcharuchartemp voiddelay uint 程序如下 voidmain temp 0 xfe while 1 for num 0 num 8 num P1 temp delay 100 temp crol temp 1 P1 0 xff delay 100 voiddelay uintz uintx y for x z x 0 x for y 110 y 0 y 课后练习 请在keil环境下编写一下程序 1 点亮最后一个LED2 点亮1 2 5 6这四个LED3 让第三个LED闪烁4 设计出流水灯程序 从D7 D0
展开阅读全文
相关资源
相关搜索

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


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

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


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