首页 Keil软件使用简介

Keil软件使用简介

举报
开通vip

Keil软件使用简介 单片机课程设计单片机课程设计 KEIL C51程序设计概要 曾毓 主讲内容主讲内容 z Keil单片机开发软件 z 51单片机C程序语言 z课程设计功能目标 z程序设计思路 一、一、KeilKeil软件使用简介软件使用简介 KeilKeil uVersion2 uVersion2 软件界面软件界面 KeilKeil软件安装软件安装 z校内图书馆网站,馆内资源页面下的 /incoming/[教师课件目录]/单片机课程设 计资料目录,下载其中的KEIL.ZIP文件。 z将KEIL.ZIP...

Keil软件使用简介
单片机课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 单片机课程设计 KEIL C51程序设计概要 曾毓 主讲内容主讲内容 z Keil单片机开发软件 z 51单片机C程序语言 z课程设计功能目标 z程序设计思路 一、一、KeilKeil软件使用简介软件使用简介 KeilKeil uVersion2 uVersion2 软件界面软件界面 KeilKeil软件安装软件安装 z校内图书馆网站,馆内资源页面下的 /incoming/[教师 课件 超市陈列培训课件免费下载搭石ppt课件免费下载公安保密教育课件下载病媒生物防治课件 可下载高中数学必修四课件打包下载 目录]/单片机课程设 计资料目录,下载其中的KEIL.ZIP文件。 z将KEIL.ZIP文件解压至C:\KEIL目录 z找到C:\KEIL\UV2\目录下的uv2.exe可执 行程序,双击打开该程序,如果成功打开 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示安装正常。 第一个第一个KeilKeil CC程序程序 z新建项目文件夹:D:\Lab01 z在Keil中选择菜单Project→New Project z选择项目保存路径为D:\Lab01 z给新建项目取名为Lab01,点击保存按钮 z选择目标器件型号为ATMEL公司AT89S52 z弹出对话框确认添加51初始化代码,点击 “是(Y)”按钮确认。 第一个第一个KeilKeil CC程序程序 z新建一个文本文件,点击菜单File→New z先保存文件,点击菜单File→Save,弹出文 件保存窗口,给文件取名Lab01.c z在左侧“Project workspace”窗口,右键点击 Source Group 1项,弹出菜单,选择“Add Files to Source Group 1”命令,在弹出窗口中 选中Lab01.c文件,点击Add按键添加,然后 再点击Close按键返回Keil主窗口界面。 第一个第一个KeilKeil CC程序程序 #include // 包含89S52相关头文件 sbit Beep = P1 ^ 4; unsigned char TCount; void main(void) { TMOD = 0x01; // 定时器0,工作模式1(16位计数) TH0 = 0x3C; TL0 = 0xB0; // 定时周期50毫秒 TR0 = 1; // 启动定时器 TCount = 0; Beep = 0; while (1){ if (TF0){ // 检查定时溢出 ++ TCount; if (10 == TCount){ // 10次溢出为半秒 TCount = 0; // 计数清零 Beep = !Beep; // 翻转端口电平 } TH0 = 0x3C; // 重新设置定时器计数值 TL0 = 0xB0; TF0 = 0; // 溢出标志位清零 } } } 第一个第一个KeilKeil CC程序程序 z程序输入完成后,记得保存 z在左侧Project Workgroup窗口,右键点 击Target 1项,弹出菜单,选择“Optoins for Target(Target 1)命令,弹出项目设 置窗口。 z选择Target页,修改其中Xtal(MHz) 为12MHz,点击确定按钮返回Keil主界 面。 第一个第一个KeilKeil CC程序程序 z点击菜单Project→Build Target对当前项 目进行编译链接,在Keil主界面下方的 Output窗口中可以查看编译结果。 第一个第一个KeilKeil CC程序程序 z Lab01程序编译成功后,可以进入软件调试 模式对程序进行仿真、调试 z选择菜单Debug→Start/Stop Debug Session进 入软件调试模式,程序停在main函数入口, 等待用户进行调试操作 z将光标点在Beep=!Beep这一行,选择菜单 Debug→Insert/Remove Breakpoint命令,添 加一个断点 第一个第一个KeilKeil CC程序程序 z 按快捷键F5连续执行程序,当执行到断点 时,程序会停在断点这一行 z 观察左侧Project Workgroup窗口Regs页中的 Sys→sec项可以知道程序执行到当前行共花了 多少时间 z 连续按F5键,可以计算得出Beep端口电平翻 转的时间间隔 z 选择菜单Peripherals→I/O-ports→Port 1命令, 可以添加一个端口仿真窗口,连续执行程序 时,该窗口P1端口的第4位将会随着程序连续 翻转 z 如要修改程序,先要退出调试状态,选择菜 单Debug→Start/Stop Debug Session命令即可 第一个第一个KeilKeil CC程序程序 z到程序仿真正确,软件设计基本完成 z下载程序前需要先生成.HEX文件 z选择菜单Project→Options for Target’Target 1’ z在弹出的项目设置窗口中,选择Output页, 确认将“Create HEX File”选项打上勾 z点击“确定”按钮返回Keil主窗口界面 z重新编译Lab01程序,将在Lab01目录下生 成Lab01.hex文件 第一个第一个KeilKeil CC程序程序 z编程下载时,PC端使用软件Easy 51 Pro 二、二、5151单片机单片机CC程序语言程序语言 与与ANSI CANSI C的不同的不同 z浮点运算不支持 z指针运算情况较复杂,最好少用 z扩展的数据类型bit、sbit、sfr z中断函数interrupt 示例:void t0(void) interrupt 1 using 0 z使用REG52.h头文件 几个关键字几个关键字 z code z static z const z volatile 三、课程设计功能目标三、课程设计功能目标 电路原理图电路原理图 z网上下载 z P0口→数码管8位数据线 z P1口→0~3位为数码管动态扫描线,第4位 连接蜂鸣器 z P2口→留待外接扩展功能 z P3口→第3、4、5位对应set、inc、dec按键 z数码管采用共阳管,扫描线低电平选通,蜂 鸣器高电平鸣叫,按键空闲对应高电平 设计功能设计功能A A 简易时钟简易时钟 z时钟显示时分或分秒,由inc按键切换 z set按键切换工作模式:正常显示、设置 时分、设置分秒、设置闹铃(只有时 分) z后三个模式,inc按键设置前两个数码管 数值,dec按键设置后两个数码管数 值,按键可以长按加快设置速度 z闹铃时间到,蜂鸣器鸣叫30秒,dec按 键可以关闭声音 z闹铃设置为00:00将取消闹铃 z按键操作时可以有声音 设计功能设计功能B B 存储式跑表存储式跑表 z时钟显示时分或秒/百分秒,由inc按键 切换 z set按键启动或暂停跑表 z跑表运行时,dec按键每按一次记录跑 表时间,最多10个 z跑表停止时,dec按键每按一次顺序显 示记录时间。 z记录满或记录空时,计时或读取有提示 声音 设计功能设计功能C C 倒计时闹铃倒计时闹铃 z显示剩余时分秒。当时间大于0且小于1 分钟,蜂鸣器鸣叫,当时间小于1小 时,显示分秒,否则显示时分 z set进入或退出时间设置模式 z设置模式仅显示时分,秒钟数为0,inc 对应小时数,dec对应分钟数 z设置时间为00:00将关闭倒计时 z设置模式下,时间大于0且按键空闲5秒 将自动开始倒计时。 四、程序设计思路四、程序设计思路 代码规范代码规范 z语句缩进 z注释详细 z代码分行 z变量、函数取名规则 z版本控制 程序结构程序结构 z头文件 z宏定义 z常量声明 z全局变量 z函数声明 z main主函数 程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 程序流程 z变量初始化 z定时器设置 z中断设置 z主程序循环 数码管显示内容刷新 按键检测、按键功能执行 z定时器中断 中断计数、时间相关计算 数码管动态扫描 使用定时器使用定时器 z T0、T1定时功能相同,其工作方式及运行状态是 由TMOD 和TCON两个特殊功能寄存器控制。 z TMOD是8位的控制寄存器,低4位、高4位分别控 制T0的工作方式,其中M1、M0是工作方式选择 位。决定定时器的4种工作方式。 方式0:(M1=0、M0=0):13位定时/计数器 方式1:(M1=0、M0=1):16位定时/计数器 方式2:(M1=1、M0=0):8位定时/计数器(定 时常数自动装入) 方式3:(M1=1、M0=1):把T0分为两个8位计 数器 使用定时器使用定时器 z示例1:16位定时器,定时周期50毫秒 TMOD = 0x01; TH0 = 0x3C; TL0 = 0xB0; z示例2:8位定时器,自动装载,周期100微秒 TMOD = 0x02; TH0 = 0x9C; TL0 = 0x9C; z ET0、ET1对应定时器0和1的中断允许 z TR0、TR1对应定时器0和1的启动/暂停 z TF0、TF1对应定时器0和1的溢出标志位 定时器定时器Timer 2Timer 2 z 16位可自动装载定时器 z Timer2使用示例: // 定时周期50毫秒 TH2 = 0x3C; TL2 = 0xB0; RCAP2H = 0x3C; RCAP2L = 0xB0; TR2 = 1; // 启动Timer 2定时器 TF2 = 0; // 手动清除溢出标志 定时中断定时中断 z Timer 0中断使能ET0 void T_int0(void) interrupt 1 using 1 z Timer 1中断使能ET1 void T_int1(void) interrupt 3 using 1 z Timer 2中断使能ET2 void T_int2(void) interrupt 5 using 1 z全局中断使能:EA=1 按键检测按键检测 z定义按键变量 sbit set = P3 ^ 3; sbit inc = P3 ^ 4; sbit dec = P3 ^ 5; 按键检测按键检测 z 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 一:空闲检测 在main函数主循环中,每循环一次检测 按键一遍,检测到按键动作后延时5毫 秒消抖,延时后执行相应功能。 z方法二:定时检测 定时器每隔5毫秒置全局变量T5Flag为 1,在main函数主循环中,每判断到 T5Flag为1时,将其置为0,并且检测一 遍按键,若有按键动作,执行相应功 能。 按键检测按键检测 z方法三:延时检测 在main程序主循环中加入延时程序代 码,将每次循环的时间控制在5~10毫 秒范围,每次主循环都检测一遍按键, 有动作就执行相应功能,不用再加消抖 延时。 按键中断按键中断 z set按键连接P3口第3位,该位对应外部中断 输入1,当按键按下时,可以产生一个外部 输入中断 中断函数:void Set_int(void) interrupt 2 using 0 IT1=1设置下降沿触发中断 IT1=0设置低电平触发中断,此时需要对中 断标志位IE1清零 数码管定义数码管定义 z共阳数码管数字0~9编码: const unsigned char LED_CODE[] = { 0xC0,0xFC,0xA2,0xA4,0x6C, 0x25,0x21,0xBC,0x20,0x24}; z四个数码管选通端口: sbit bsel_0 = P1 ^ 0; sbit bsel_1 = P1 ^ 1; sbit bsel_2 = P1 ^ 2; sbit bsel_3 = P1 ^ 3; z四个数码管变量: unsigned char LED[4]; z动态扫描选择变量: unsigned char Led_sel; 数码管动态扫描数码管动态扫描 void ch_led(void) { bsel_0 = bsel_1 = bsel_2 = bsel_3 = 1; P0 = 0xFF; // 关显示 ++ Led_sel; switch (Led_sel) { case 0:bsel_0 = 0;bsel_1 = bsel_2 = bsel_3 = 1; break; case 1: bsel_1 = 0;bsel_0 = bsel_2 = bsel_3 = 1; break; case 2: bsel_2 = 0;bsel_1 = bsel_0 = bsel_3 = 1; break; case 3: bsel_3 = 0;bsel_1 = bsel_2 = bsel_0 = 1; break; default: bsel_0 = 0;bsel_1 = bsel_2 = bsel_3 = 1; Led_sel = 0; break; } P0 = LED[Led_sel]; // 设置显示内容 } 数码管动态扫描数码管动态扫描 z在定时中断函数中,每隔5毫秒切换一次扫 描选通线: void Time0_int(void) interrupt 1 using 1 { … // 5毫秒定时到 T5Flag = 1; ch_led(); } 数码管动态扫描数码管动态扫描 z在main函数主循环中,根据Led_sel的 值,选择对应的数码管编码输出给P0口: P0 = LED[Led_sel]; z结合按键检测定时程序,也可以将上一行 代码放置在按键扫描功能语句之后。 z程序中的时间算法或按键执行功能可以改 变LED数组中的内容,从而更新数码管显 示数值。 动态扫描示例代码动态扫描示例代码 z main主循环: while(1) { if (T5Flag) { T5Flag = 0; // 5毫秒标志清零 if (!set) // 检测set键 … // 执行set键功能 if (!inc) // 检测inc键 … // 执行inc键功能 if (!dec) // 检测dec键 … // 执行dec键功能 P0 = LED[Led_sel];// 设置显示内容 } } 动态扫描示例代码动态扫描示例代码22 z main主循环: while(1) { if (!set) // 检测set键 … // 执行set键功能 if (!inc) // 检测inc键 … // 执行inc键功能 if (!dec) // 检测dec键 … // 执行dec键功能 P0 = LED[Led_sel];// 设置显示内容 Ms_delay();//延时5毫秒 if (++ Led_sel > 3) Led_sel = 0; ch_led(); // 切换动态扫描选通线 } 设计参考设计参考 z《单片机语言C51程序设计》 z《C程序设计语言》(第2版) z http://www.laogu.com/ z http://c51bbs.com/ 单片机课程设计 主讲内容 一、Keil软件使用简介 Keil uVersion2 软件界面 Keil软件安装 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 第一个Keil C程序 二、51单片机C程序语言 与ANSI C的不同 几个关键字 三、课程设计功能目标 电路原理图 设计功能A 简易时钟 设计功能B 存储式跑表 设计功能C 倒计时闹铃 四、程序设计思路 代码规范 程序结构 程序流程 使用定时器 使用定时器 定时器Timer 2 定时中断 按键检测 按键检测 按键检测 按键中断 数码管定义 数码管动态扫描 数码管动态扫描 数码管动态扫描 动态扫描示例代码 动态扫描示例代码2 设计参考
本文档为【Keil软件使用简介】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_386352
暂无简介~
格式:pdf
大小:311KB
软件:PDF阅读器
页数:41
分类:互联网
上传时间:2009-05-16
浏览量:42