第一章C51单片机编程环境与机器人智能深圳市鸥鹏科技有限公司黄曦2009.3.21©2008Open-Tech.Allrightsreserved.摘要•单片机与C51系列单片机•机器人与C51单片机•任务一获得软件•任务二安装软件•任务三硬件连接•任务四你的第一个程序•C语言知识•任务五做完实验关断电源•工程素质和技能归纳•科学精神的培养©2008Open-Tech.Allrightsreserved.系列单片机•什么是单片机?–将CPU、RAM、ROM、输入输出设备集成在一块集成电路芯片当中,这种芯片就叫单片机。•学习单片机有必要吗?–单片机的学习、开发与应用将造就一批计算机应用、嵌入式系统设计与智能化控制的科学家、工程师,同时,学习使用单片机也是了解通用计算机原理与结构的最佳选择。•C51单片机–8051–STC89C52RC©2008Open-Tech.Allrightsreserved.单片机•机器人工程对象•智能机器人©2008Open-Tech.Allrightsreserved.任务一任务二获得并安装软件•KeiluVision2IDE集成开发环境•stc-isp-v3.97软件下载工具•串口调试工具©2008Open-Tech.Allrightsreserved.任务三硬件连接•串口的连接–普通串口线–USB转串口适配器–其他串口适配器•ISP下载线的连接–使用计算机的并口•电池安装•教学板和单片机的通电检查©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•打开Keil开发环境。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•点击“Project”菜单下的“NewProject”项建立一个新的工程HelloRobot。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•选择芯片类型“AT89S52”。不加载8051启动代码。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•在项目文件夹中新建C程序文件HelloRobot.c。并把该文件添加到项目中。#includeuart.hintmain(void){uart_Init();//串口初始化printf(Hello,thisisamessagefromyourRobot\n);while(1);}©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•设置工程属性。–设置单片机晶振大小。–创建hex格式的16进制文件。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•编译该程序。–编译完成后,在HelloRobot工程文件夹下,可发现多了一个HelloRobot.hex文件。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•下载程序。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•选择单片机型号——STC89C52RC•打开HelloRobot.hex文件©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•选择与单片机连接的串口,设置最大波特率。•打开单片机电源,并单击“Download/下载”按钮,下载程序到单片机。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•使用串口调试工具查看串口信息。©2008Open-Tech.Allrightsreserved.任务四你的第一个程序•HelloRobot.c是如何工作的?–uart.h文件–uart_Init()函数•printf函数–stdio.h–printf函数–\n–while(1)的作用•该你了,让单片机做算术运算!©2008Open-Tech.Allrightsreserved.语言知识•数据类型–C语言有5种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。这些数据类型的长度和范围会因处理器的类型和C语言编译程序的实现而有所不同。类型长度(单位bit)范围char8-128~+127即-27~(27-1)int16-32768~+32767即-215~(215-1)float32-3.4X10-38~3.4X1038©2008Open-Tech.Allrightsreserved.语言知识•标识符–在C语言中,标识符是对变量、函数名和其他各种用户定义对象的命名。标识符的长度可以是一个或多个字符。绝大多数情况下,标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、数字或下划线(某些C语言编译器可能不允许下划线作为标识符的起始字符)。正确形式错误形式count2counttest23hi!therehigh_balancehigh..balance©2008Open-Tech.Allrightsreserved.语言知识•常量C语言中的常量是不接受程序修改的固定值,常量可以为任意数据类型,如下例所示:char‘a’、‘9’int21、-234•变量–在程序中可以改变的量称为变量。–一个变量应该有一个名字(标识符)。–所有C语言变量必须在使用之前定义。–定义变量的一般形式。©2008Open-Tech.Allrightsreserved.语言知识•运算符–算术运算符–关系与逻辑运算符–位操作运算符–其他运算符•表达式–表达式遵循一般代数规则。–C语言规定:任何表达式在其未尾加上分号就构成为语句。–赋值运算符©2008Open-Tech.Allrightsreserved.任务五做完实验关掉电源•把电源从教学底板上断开很重要,原因有几点:–首先,如果系统在不使用时没有消耗电能,电池可以用的更久;–其次,在以后的试验中,你将在教学底板上的面包板上搭建电路,搭建电路时,应使面包板断电。如果是在教室,老师可能会有额外的要求,比如断开串口电缆,把教学底板存放到安全的地方等等。–总之,你做完试验后最重要的一步是断开电源。–断开电源比较容易,只要三位开关拨到左边的0位即可。©2008Open-Tech.Allrightsreserved.工程素质和技能归纳•C51系列单片机KeiluVisionIDE(集成开发环境)软件和ISP下载软件的下载和安装•机器人用C51教学板与计算机或者笔记本的连接•如何在集成开发环境中创建目标工程文件,并添加和编辑C语言源程序•C语言程序的编译和下载•串口调试终端的使用•C语言基本知识:基本数据类型、常量、变量、运算符、表达式•printf格式输出函数的使用©2008Open-Tech.Allrightsreserved.科学精神的培养•比较KeiluVisionIDE与BASICStamp系列开发环境的优缺点,找出它们的共同特点•比较第一个C语言程序与第一个PBASIC程序的异同,找出它们的共同点•比较BASICStamp的PBASIC调试指令和KeilC的输出指令printf的异同•查找C语言的标准输入输出库函数,了解printf的总体功能。本章中到了它的两个格式符和控制符•查阅参考书,了解其他数据类型、算术运算符知识