版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机专题实训西安交通大学城市学院电信系实验中心张桦办公室:实验楼510办公室电话mail:yuazhang@163.com(程序调试方法)单片机专题实训西安交通大学城市学院电信系实验中心张桦1单片机专题实训内容键盘和数码管显示
主要是相关芯片ZLG7289的内容。液晶显示主要是相关液晶显示模块LCM12864的内容。实时时钟
主要是相关实时时钟/日历芯片PCF8563的内容。单片机专题实训内容键盘和数码管显示液晶显示实时时2单片机专题实训报告要求硬件电路图
电路结构和原理简介软件流程图
每个模块画一个流程图和模块说明电路图中主要芯片说明和操作说明芯片引脚、操作时序、芯片寄存器功能介绍单片机专题实训报告要求硬件电路图电路图中主要芯片说明和3一、程序调试方法1.1单片机AT89S52
ATMEL公司出品的兼容MCS-51系列单片机的一款产品。其最主要的特点是内置Flash存储器,并提供对其编程的方法。AT89S52内置了8KByte的可在线编程的Flash存储器。具有灵活的ISP编程模式。并行和串行编程方式一、程序调试方法1.1单片机AT89S52AT89S4并行编程接线图并行编程接线图5串行编程接线图串行编程接线图61.2使用Keil软件编程并调试程序1.2.1使用Keil软件编程步骤一:使用keil软件Project菜单项中的NewProject建立一个新工程。步骤二:为新工程选择芯片,添加源程序文件(.c或是.asm)。步骤三:对工程做相关配置。OptionforTarget1配置页面窗口中选中Output页面中的CreateHEX选项。步骤四:编写程序并使用Project菜单项中的BuildAll子菜单为应用创建可执行文件(.HEX)。1.2使用Keil软件编程并调试程序1.2.1使用K7调试程序是发现查找程序的逻辑错误的过程。1.2.2调试程序步骤一:连接AT89S52单片机下载线,打开实验箱电源。步骤二:打开电脑桌面上的双龙电子软件SLISP。步骤三:在SLISP软件界面中,器件—选择AT89S52,FLASH存储器—选择由Keil软件生成的**.Hex文件,之后点击软件界面最下方的编程按钮,下载程序,下载完成,单片机会自己执行程序。步骤四:观察程序执行结果,程序运行结果与预期不一致,则返回Keil编程界面,检查程序逻辑。调试程序是发现查找程序的逻辑错误的过程。1.2.2调试程8二、用C51编写应用程序2.1C语言的优点只要求对单片机的存储结构有了解,不需了解指令系统。相对于汇编语言,C语言有如下的优点:提供专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理分配地址
。C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性。提供常用的标准函数库,以供用户直接使用
。程序可有多个函数组成模块,可读性好,便于修改
。移植性好,可以移植到不同的单片机,而汇编移植困难
。二、用C51编写应用程序2.1C语言的优点只要求对单9C51程序结构和一般的C语言程序结构没有什么差别。C51程序是函数的集合体。程序也是从main()函数开始执行,主函数是程序的入口,主函数中的语句执行结束,程序也就结束了。2.2C51程序结构C51的函数是有类型、函数名、参数表、函数体组成。
函数名是一个标识符,是大小写可以区别的,最长可为255个字符。
参数表是用圆括号()括起来的若干参数,每项之间用逗号隔开
函数体是用大括号括起来的若干C语句,语句之间用分号隔开,最后一个语句是return(主函数可以省略),返回函数类型。函数类型就是返回值的类型,除整型外,都需要在函数名前加以指定。C51程序结构和一般的C语言程序结构没有什么差别。2.210externunsignedcharLED;externcharfunc1(charz);//主函数voidmain(void){ LED=0; chara=func1(c); intb=func2(d,e); while(1);}Intfunc2(intx,inty){ returnx+y;}外部变量声明外部函数声明注释函数类型函数名(参数表){函数体开始
}函数体结束数据说明;执行语句;本文件内的函数定义externunsignedcharLED;外部变量112.3C51与ANSI标准C的差别2.3.1关键字C51包含ANSIC关键字的同时,也针对51单片机扩展了一些关键字。ANSI关键字:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledowhileifstaticC51扩展关键字:_at_alienbdatabitcodecompactdataidatainterruptlargepdata_priority_reentrantsbitsfrsfr16small_task_usingxdata2.3C51与ANSI标准C的差别2.3.1关键字12C51的运算符与ANSIC的运算符无差别。主要包括以下几类:2.3.2C51的运算符算术运算符逻辑运算符关系运算符位运算符复合运算符其他运算符?:,sizeof,*,&,[],->,.2.3.3C51的变量C51的变量和ANSIC的变量有些比较关键的区别。C51的运算符与ANSIC的运算符无差别。2.13变量的数据类型1、基本类型与ANSIC一样,C51的基本数据类型有char、int、short、long和float。除float类型外均可用signed和unsigned修饰,默认是signed型。char占1个字节,int和short占2个字节,long占4个字节,float占4个字节。2、其他类型C51的指针类型与ANSIC的指针概念相同,指向一个特定的地址。该地址即可以变量地址也可以是函数地址。例如: intfuncA(inta,intb);int(*pointer)(int,int)=funcA;定义了一个指向函数funcA的指针pointer;其他的如enum、struct、union以及数组和ANSIC的都相同。变量的数据类型1、基本类型2、其他类型14变量的作用域
C51的变量分为局部变量和全局变量。在编程是要尽量使用局部变量,少用全局变量。3、C51专有的数据类型bit:变量存储在可位寻址区,保存1位二进制数。(不能用指针)。sfr和sfr16:定义特殊寄存器变量。sbit:可位寻址变量的一个位。可位寻址的变量是bdata变量或是部分的sfr变量。变量的存储种类
auto:变量默认的存储类型。
register:使用寄存器的变量。 extern:全局变量,可以在多个文件中使用。 static:使局部变量与程序的寿命相同;使全局变量只在本文件内有效。变量的作用域3、C51专有的数据类型变量的存储种类151、具体的存储区域类型有:idata:片内间接寻址的RAMxdata:片外数据存储(64K)pdata:分页寻址的片外RAMdata:片内直接寻址的RAMcode:统一编制的ROM(64K)bdata:片内可位寻址的RAM(128位)变量的存储区域
这部分是C51与ANSIC区别最明显的地方。C51中可以指定变量存储在具体的存储器区域内。片内RAM、片外RAM或是ROM)例如: chardatach=‘c’;定义变量ch存储在直接寻址的内部RAM区。1、具体的存储区域类型有:变量的存储区域162、指针与存储区域 与变量相同,对于指针也可以指定存储区域,以及指针所指向变量的存储区域。指明了所指向变量的具体存储区域的指针的效率要更高,占用的存储区也少一些。例如: chardata*str1;//指针指向data存储区的字符变量。 chardata*datastr2;//指针本身也在data区域3、绝对地址的变量
C51中,可以通过使用_at_关键字来指定变量存储在存储器中的特定地址上。例如: chardatach_at_0x100; 对这类变量的要求: ⑴不能初始化;
⑵ bit类型不能使用绝对地址;
⑶只有全局变量才能使用绝对地址;2、指针与存储区域3、绝对地址的变量17同ANSIC一样,C51的程序语句主要是三种类型。2.3.4程序语句2.3.5函数 C51中,函数的声明、定义和调用的方法与ANSIC一样,不同之处主要有:可重入函数:C51中的函数默认情况是不能由多个进程共享,而可重入函数可以不受此限制。可用reentrant关键字声明函数为可重入函数。例如: intfuncTest(intx,inty)reentrant;顺序语句:就是语句,按顺序一句一句执行。分支语句:ifelse,switch循环语句:for,while,dowhile同ANSIC一样,C51的程序语句主要是三种类型。2.3.18指定使用寄存器组:C51中的函数可以指定使用特定的寄 存器组。若为中断函数指定寄存器组,则所有被该中断函数调用的函数都必须使用该寄存器组。使用using关键字声明函数使用第几组寄存器组。例如: intfuncTest(intx,inty)using0; 表示函数funcTest使用第0组工作寄存器组。中断服务子程序:C51中使用interrupt关键字指定函数为中断服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 委托钢材加工合同范本
- 建房协议合同三方合同
- 小规模易安装合同范本
- 工程围挡租赁合同范本
- 宠物与养老合作协议书
- 承包老年公寓合同范本
- 承包建材合作合同范本
- 广告音响租赁合同范本
- 托运车辆出售合同范本
- 工程车辆维修合同协议
- 2026年辽宁现代服务职业技术学院单招职业倾向性测试题库附答案
- 2026渤海银行招聘面试题及答案
- 2026年呼和浩特职业学院单招职业适应性测试模拟试题及答案解析
- 北师大博士笔试题目及答案
- 2025年1月浙江省普通高中学业水平考试思想政治试卷(含答案)
- 江苏省新高考基地学校2026届高三上学期第一次大联考政治试卷(含答案)
- 年轻干细胞与再生医学的未来研究方向-洞察及研究
- 行政总厨年终述职课件
- 邵阳市纪委监委所属事业单位公开选调(招聘)工作人员10人考试题库新版
- 自然资源执法考试试题及答案
- 中英文个人贷款借款合同模板
评论
0/150
提交评论