51单片机c语言总结.doc
《51单片机c语言总结.doc》由会员分享,可在线阅读,更多相关《51单片机c语言总结.doc(37页珍藏版)》请在咨信网上搜索。
1、 . 入门有针对性的解决一些简单的实际问题,边理论边实践学一样会一样基本实验:流水灯,数码管显示,键盘控制,音乐播放,继电器控制通信实验,串口通信实验,红外线遥控信号解码实验等单片机的定义分类和部组成1单片机就是中央处理器CPU,随机存储器RAM。只读存储器ROM。定时、计数器和各种输入输出接口I/o接口电路等部件集成在一块电路芯片上的微型计算机。2,1分类按制造工艺分:HMOS和CHMOS CHMOS包括80c51等中间加了C功耗要小适合便携式手提式和野外作业。2分类按不同容量的存储器配置分:51子系列和52子系列51表示单片机最后一位数字为1作为标志。片带有4KbROM或EPROM(Era
2、sable Programmable ROM,可擦除可编程ROM,128BRAM,两个16位定时器/计数器和5个中段器52系列是增强型各项指标都高。AT89S51是AT89C51的升级版支持ISP在线更新程序ISP(Internet Service Provider部集成看门狗计时器等。3.1串行接口就是接口数据传送3.2中断控制系统接收中断请求如定时时间到,需要鸣笛报警类似stop to do 停下来去执行ROM中特定的每段程序,执行完后再继续执行先前中断的程序时钟电路控制节拍工作。一个典型的单片机应用系统包括输入电路,单片机,输出电路把他想象成电脑。单片机的应用:十六进制记和点得点不是十六
3、进制加逻辑数据的运算逻辑与。两个输入一个输出中间加一个恒定电压有为,全出逻辑或有为,全出;字长通常与计算机部的寄存器和运算器数据总线的宽度一致实例1功能感受protues仿真单片机播放渴望主题曲运用protues打开仿真原理图。对单片机进行处理编辑edit component,选取目标文件hexClock frequency 时钟频率Ok原理图编辑窗口没有滚动条,可通过预览窗口该表原理图的可视围。Protues双击右键删除先单击鼠标右键,可通过鼠标左键可以编辑元器件的属性鼠标右键来删除画错的连线中键缩放原理图新建即保存新建设计文件Junction dot mode连接点 Subcircuit
4、mode 子电路 lab用总线时会用到Terminals mode 终端接口,有VCC地输出输入等接口Device pins mode 器件引脚用于绘制各种引脚。Graph mode 仿真图表,用于各种分析,如noise analysisTape recorder mode录音机Generator mode 信号发生器Voltage probe mode 电压探针仿真图表用Current probe mode 电流探针仿真图表用Virtual instruments mode虚拟仪表有示波器可显示工作波形Resistors 电阻Capacitors电容Crystal晶振Radianl elec
5、trolytic圆柱形电解电容Keywords输入resistors 470r或功率先选择元器件后放元器件Led+yellowDrag object 拖动对象Editi properties 编辑属性Rotate clockwise 顺时针旋转90Rotate anti-clockwise 逆时针旋转90X-mirror 水平翻转Y-mirror 垂直翻转删可以右键双击双击鼠标左键编辑label放置电源和地必须编辑正确的label如VCC地GND各元器件引脚通过总线的连接并不表示真正意义上的电气连接,需要添加网络标号。要运行双击单片机基本电源5V振荡电路:单片机是一种时序电路,必须施加脉冲信号
6、才能工作。在它的部有一个时钟产生电路,只要接上两个电容和一个晶振即可正常工作。P30复位电路;启动后让单片机从初始状态开始执行程序。EA一横:接正电源端,表示使用部程序存储器。注意:观察仿真效果时,晶振电路,复位电路和EA引脚和电路的连接可以省略。Keil软件源程序后缀。C必须手工输入,表示为c语言程序,让keilc51采用对应的c语言的方式来编译源程序。#include包含51单片机寄存器定义的头文件将新建的源程序文件加载到项目管理器右击source group文件add c文件单片机不能处理c,必须将c转换成二进制或十六进制代码,汇编或编译。用鼠标右键点击target 进入options
7、for target 确认output选项中create hex重新构造所有目标程序烧录器与烧录软件的使用单片机软硬件系统仿真成功后,要真正投入实际应用,必须将程序烧写入单片机芯片,A51程序烧录器和先将COM接口(用作数据通信)与计算机的COM接口(RS-232)连接好,然后将单片机安插在烧录器的插座中,再用一根USB线将USB接口与计算机的USB接口连接,让计算机通过这根USB线向烧录器提供+5V电源使用烧录器前,手动设置一些,参数标签页,根据COM口,设置好串口,波特率设置为28800;点击自动擦除器件命令,点击打开文件命令选择单片机文件十六进制文件hex 再点击打开点击自动写器件。实例
8、4用单片机控制一个灯闪烁Led灯亮存在电压差和正向偏置延迟函数Void main(void)/ 两个void分别表示无须返回值和没有参数传递Unsigned int i;/ 定义无符号整数,最大65535For(i=0;i20000;i+) ; 只有一个分号表示什么都不做,等待一个机器周期 0x中的0是数字0,而不是字母O郁闷一编写keil时,文档第一行必须是#include虚拟仪表示波器oscilloscopeProtues示波器面板?与使用单片机需要一个时钟信号送给部个电路,才能使他们有节拍的工作,时钟信号的频率由外部振荡电路的晶振频率决定,51系列单片机的机器周期是由12个振荡周期组成。
9、指令周期:单片机执行一条指令的时间。时钟频率越低,延时的时间就越长,灯闪烁的速度就越慢。实例5 将p1口状态送入p0口p2口p3口利用单片机工作速度快的特点,无限循环可以让单片机不停地把p1口的电平状态送到p0口p2口和p3口。引脚接地低电平被输入到p口实例6使用p3口流水点亮8位led记忆,0xfe 11111110 0xfd 11111101 0xfb 11111011 0xf7 11110111 0xef 11101111 0xdf 11011111 0xbf10111111 0x7f 01111111实例7通过对p3口地址的操作流水点亮8位led单片机都有固定的地址,记忆:三在教室的第
10、2排第5列老师可以说清三回答问题也可以说请第2排第5列的同学答题。Sfr x=0xb0; 通过关键字sfr将x定义为p2的地址0xb0定义后,程序中对x的操作就相当于对地址0xb0即p3的操作类似于指针P3口的固定地址是BOHMCS-51单片机存储器的基本结构它有两种1即程序存储器和2数据存储器从物理MSC-51有4个存储地址空间,即片程序存储器和片外程序存储器程序存储器受EA一横外接电平的控制。1当EA一横接地时,单片机只能使用外部程序存储器2当EA一横接+5v是单片机先使用部程序存储器,容量不够时自动使用外部程序存储器。特殊功能寄存器ACC 累加器标识符名称地址ACC累加器E0HBb寄存器
11、F0HPSW程序状态字D0HSP堆栈指针81HDRTR数据指针83H 82HP080HP190HP2A0HP3B0HIP中断优先级控制B8HIE允许中断控制A8HTMOD定计方式控制89HTCON定计控制88HTH0定计0高位字节8CHTL0定计0低位字节8AHTH1定计1高位字节8DHTL1定计1低位字节8BHSCON串行控制98HSBUF串行数据缓冲器99HPCON电源控制87H单片机的复位电路P54页?单片机C语言开发基础#includeC注释1种采用/*。*/可以注释多行容2种采用/但只能注释一行ANSI标准定义的关键字P57记忆思考P58跳过数据类型表p59页指针型数据位类型数据空类
12、型数据延时函数不需要返回值。X+先用x的值,再让x加1逻辑与&逻辑或|逻辑非!按位与& 25&77=9按位或| 25|77=93按位异或 相异为1,一样出0按位取反 有0出1,有1出0左移运算符 将一个二进制数的各位全部左移若干位,移动的过程中,高位丢弃,低位补0. w=0x3a 00111010B w低位丢弃,高位补0赋值运算符逗号运算符条件运算符强制转换运算符?实例8用不同数据类型的数据控制led的闪烁使用无符号整型数据和无符号字符数据来设计延时函数。由于整型数据占两个字节,而无符号字符型数据仅占一个字节,因此对无符号整型数据进行操作花费的时间就要长一些,整型数据要实现100次循环,消耗的
13、时间约800个机器周期。无符号100占300个。为了提高运行效率,尽可能用无符号字符型数据。实例9 用p0口和p1口分别显示加法和减法运算结果其实就是利用二进制的单位数值进行亮1不亮0的表示乘法除法就是利用二进制转化为十进制再进行处理实例12用自增运算控制p0口8位ked的闪烁花样只要送到p0口的数值发生变化,p0口8位led点亮的状态就会发生变化。可以先将变量的初值送到p0口延迟一段时间,再利用自增运算使变量加1,然后将新的变量值送到p0口并延时一段时间,即可使8位led的闪烁花样不断变化,Unsigned char I;定义无符号字符型变量,其值不超过255运用变量的值变化和将变量的值送到
14、p口用来变化。For(i=0;i0)&(90xab)=1&0=0;将运算结果送到p0口实例14用p0口显示条件运算的结果P0=(84)?8:4; P0=8=00001000B实例15;用p0口显示按位异或运算结果异或相异出1,一样出0;记忆异性才能很火热的做出子女P0=0xa20x3c 异或要做必须上顶 很公平应用实例16 用p0口显示左移的运算结果实例17万能逻辑电路 F=EY+Z逻辑函数p77图1专门设计数字电路,实现逻辑功能2通过单片机编程来实现逻辑功能软件即硬件/实例17:万能逻辑电路实验#include /包含单片机寄存器的头文件sbit F=P14; /将F位定义为 P1.4sbi
15、t X=P15; /将X位定义为 P1.5sbit Y=P16; /将Y位定义为 P1.6sbit Z=P17; /将Z位定义为 P1.7void main(void) while(1) F=(X)&Y)|Z; /将逻辑运算结果赋给F ; 实例18用右移实现流水灯前提设p口为0xff八次右移一位高位丢弃低位补0延迟用的变量因为要取大数所以必须用int后面因为要快所以取char型变量因为单片机运行快。所以led灯闪后要延迟。C语言语句If(S1=0)P1=0x00;如果按键s按下接地(相应位为低电平),Swich 整型 break 三者紧密While语句花括号运用和 一般情况下,在循环体中应该有
16、让循环停止的语句。?Do while 语句注意;Do和while连用 while后面的分号不能丢,它表示整个循环语句的结束Do循环语句 while(循环式)尽量避免使用goto语句P87页的程序软件即硬件实例21用for语句实现鸣笛报警T=1/f,所以要让蜂鸣器发出频率f的声音,只要让单片机输送周期为t的脉冲方波电平即可,让单片机没半个周期取反一次。半周期可通过延时来实现。可以通过循环的方式来实现延时,P90一重循环消耗的机器数近似N=3*n二重循环消耗的机器数近似N=3*n*m例子,如果单片机的晶振频率为11.0592MHz,则机器的周期为1.085s,要发出1600Hz的声音,就让单片机每
17、半个周期312s将输出电平取反一次,而延时312s需要消耗机器周期数N=312/1.085286可以取300循环次数300/3=100次Void delay(void)Unsigned char I;For(i=0;i100;i+);形成1600Hz的音频相对应800Hz的音频可以i取200Sbit sound=P15;Sound=0; 即可执行Unsigned char i;While(1)i=0;?数组是同类型的一组变量?Unsigned char code tab应用却是tab?字符型数组中的个字符数据在单片机中是以字符的ASCII 存放的,正确的使用指针,可以有效地表示复杂的数据类型,
18、动态分配存,方便的使用字符串,有效地使用数组。指针本身就具有地址还存在一个地址,Unsigned char*p;Unsigned char a;P=&a;指针数组Unsigned char a=0,1,2,3;Unsigned char *a=&a0,&a1,&a2,&a3;数组的指针Unsigned char a=0,1,2,3;Unsignde *p;P=&a0;Pi+j 为Pij实例26未细看返回值是通过return语句获得的。如果函数无返回值,需要用void来声明。数组作为函数参数一个数组的名字表示该数组的首地址,所以用数组名作为函数的参数时。被传递的数组的首地址,被调用函数的参数的形
19、式须是定义为指针型变量。 用数组名作为函数的参数时,应该在主调函数和被调函数中都进行数组定义。定义的数组类型必须一致。编译器不检查形参数组的长度p109函数?函数型指针一个函数在编译时,就分配了一个入口地址,这个入口地址就是函数的指针,类型说明符 (*指针变量名)(形参列表)Int (*p)(int a,int b)(*p)(a,b)这些需要思考p110页。P1=z/256;取得z的高八位P2=z/256;取得z的低八位?While(1);无限循环防止程序跑飞。实例30用有参函数控制p0口8位流水灯的流水速度P113实例31不实用?、实例32 实例33是不错的c语言程序函数调用。练习c语言p1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 语言 总结
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。