版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机控制led灯点亮主要内容一、点亮板子上的第一个灯D0二、点亮板子上的D0、D2、D4、D6灯,与D1、D3、D5、D7灯交替闪烁三、流水灯:从D0---D7依次点亮一、点亮板子上的第一个灯D01)目标了解单片机的基本设计思路和编程方法,和单片机的最小系统。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从二进制转化为十六进制:0xfe源程序#include<reg52.h>voidmain(){ P1=0xfd;}Keil的使用掌握Keil工程的建立和软件的开发;1.启动
Vision
Vision2是一个标准的Windows应用程序,双击KeilVision2图标即可启动,也可以选择“开始”→“程序”KeilVision2”命令来启动运行。其主界面如图1-28所示。2.创建一个项目并选择单片机选择“Project”(项目)→“NewProject”(新建项目)命令,如图1-29所示,将弹出“GreateNewProject”(新建项目)对话框随后会弹出一个对话框,要求选择单片机的型号。在该对话框中显示了
Vision2的器件数据库,从中可以根据使用的单片机来选择。AT89S528051basedFullStaticCMOScontrollerwithThree-LevelProgramMemoryLock,32I/Olines,3Timers/Counters,8InterruptsSources,WatchdogTimer,2DPTRs(DATAPOINTERREGISTERS),8KFlashMemory,256BytesOn-chipRAM基于8051全静态CMOS控制器、三级加密程序存储器、32个I/O口、三个定时器/计数器、八个中断源、看门狗定时器、2个数据指针寄存器、8k字节Flash,256字节片内RAM3.创建一个新的源程序文件,并把这个源文件添加到项目中单击工具栏中的新建文件图标(或选择“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下载到板子中。请观察现象!源程序#include<reg52.h>voidmain(){ P1=0xfd;}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或0x。十六进制整常数十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。以下各数是合法的十六进制整常数:0X2A(十进制为42)0XA0(十进制为160)0XFFFF(十进制为65535)以下各数不是合法的十六进制整常数:5A(无前缀0X)0X3H(含有非十六进制数码)
各种进位制的对应关系十进制二进制十六进制十进制二进制十六进制000910019111101010A2102111011B3113121100C41004131101D51015141110E61106151111F71117161000010810008二、点亮板子上的0、2、4、6灯,与1、3、5、7灯交替闪烁#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay();voidmain(){while(1) { P1=0xaa; delay(); P1=0x55; 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)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127无unsignedchar80~2554)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依次点亮软件分析:1)依次把这8个值赋给P1口,延时一段程序voidmain(){while(1) { P1=0xfe; delay(100); P1=0xfd; delay(100); P1=0xfb; delay(100); P1=0xf7; delay(100); P1=0xef; delay(100); P1=0xdf; delay(100); P1=0xbf; delay(100); P1=0x7f; delay(100); }
}}2)将0xfe赋给P1口,然后使用移位函数来改变P1口的值,达到流水灯的效果移位函数:_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回。_crol_,_cror_:c51中的intrins.h库函数
#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharuchartemp;voiddelay(uint);程序如下:voidmain()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物指导MDT止吐方案制定
- 生物标志物在药物临床试验中的技术进展
- 生物打印技术在牙髓再生中的材料选择
- 生物制剂失应答的炎症性肠病长期随访管理
- 生物制剂失应答后IBD的并发症管理策略-1
- 深度解析(2026)《GBT 20275-2021信息安全技术 网络入侵检测系统技术要求和测试评价方法》
- 搜索引擎优化面试题及实操案例分析含答案
- 航空公司空乘人员面试问题集
- 电商企业人力资源主管面试题答案
- 软件测试工程师面试指南技能与经验
- 生产插单管理办法
- DB64T 2146-2025 工矿企业全员安全生产责任制建设指南
- 山东动物殡葬管理办法
- 工程竣工移交单(移交甲方、物业)
- 服装生产车间流水线流程
- 常见的胃肠道疾病预防
- 2024-2025学年江苏省徐州市高一上学期期末抽测数学试题(解析版)
- 新解读《DL-T 5891-2024电气装置安装工程 电缆线路施工及验收规范》新解读
- 生产部装配管理制度
- DB31/T 1205-2020医务社会工作基本服务规范
- 酒店供货框架协议书
评论
0/150
提交评论