单片机原理与应用技术6.ppt
《单片机原理与应用技术6.ppt》由会员分享,可在线阅读,更多相关《单片机原理与应用技术6.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六讲:C-51程序设计本讲重点:本讲重点:C-51C-51的数据类型和存储类型;的数据类型和存储类型;指针和中断的使用;指针和中断的使用;通过实例消化理解通过实例消化理解C-51C-51的编程方法;的编程方法;尝试将实验课中的尝试将实验课中的ASM-51ASM-51程序转为程序转为C-51C-51程序程序.单片机原理与应用技术单片机原理与应用技术教学课件教学课件C C语言作为一种非常方便的语言而得到广泛的支持,语言作为一种非常方便的语言而得到广泛的支持,C C语言程序本身不依赖于机器硬件系统,基本上不语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。作修改就
2、可将程序从不同的单片机中移植过来。C C提供了很多数学函数并支持浮点运算,开发效率提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护高,故可缩短开发时间,增加程序可读性和可维护性。性。C-51 C-51简介简介单片机原理与应用技术单片机原理与应用技术教学课件教学课件C-51C-51与与ASM-51ASM-51相比,有如下优点:相比,有如下优点:1.1.对单片机的指令系统不要求了解,仅要求对单片机的指令系统不要求了解,仅要求对对8051 8051 的存贮器结构有初步了解;的存贮器结构有初步了解;2.2.寄存器分配、不同存贮器的寻址及数据类寄存器分配、不同存贮器
3、的寻址及数据类型等细节可由编译器管理;型等细节可由编译器管理;3.3.程序有规范的结构,可分成不同的函数,程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;这种方式可使程序结构化;4.4.具有将可变的选择与特殊操作组合在一起具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;的能力,改善了程序的可读性;5.5.提供的库包含许多标准子程序,具有较强提供的库包含许多标准子程序,具有较强的数据处理能力;的数据处理能力;6.6.由于具有方便的模块化编程技术,使已编由于具有方便的模块化编程技术,使已编好程序可容量地植入新程序;好程序可容量地植入新程序;单片机原理与应用技术单片机原理
4、与应用技术教学课件教学课件 C C5151的数据类型的数据类型 常用的数据类型有:常用的数据类型有:C C5151的程序结构的程序结构 与一般与一般C C语言的结构相同,以语言的结构相同,以main()main()函数为程序人函数为程序人口,程序体中包含若干语句还可以包含若干函数。口,程序体中包含若干语句还可以包含若干函数。位型位型 字符型字符型 整型整型 长整型长整型 浮点型浮点型bit bit charchar intint long long intint floatfloat1 1位位 1 1字节字节 2 2字节字节 4 4字节字节 4 4字节字节数组型数组型 指针型指针型单片机原理与
5、应用技术单片机原理与应用技术教学课件教学课件 C-51 C-51数据的存储类型数据的存储类型名名 存储空间位置存储空间位置 长度长度 数据范围数据范围 data data 直接寻址片内直接寻址片内RAM 8RAM 8位位 0 0255 255 bdatabdata 可可位寻址片内位寻址片内RAM 1RAM 1位位 0/10/1idataidata 间接寻址片内间接寻址片内RAM 8RAM 8位位 0 0255255xdataxdata 片外片外RAM 16RAM 16位位 0 06553565535 C-51 C-51的的包含的头文件包含的头文件通常有:reg51.h math.h ctype
6、.h stdio.h stdlib.h absacc.h常用有:reg51.h (定义特殊功能寄存器和位寄存器);math.h (定义常用数学运算);单片机原理与应用技术单片机原理与应用技术教学课件教学课件 C-51 C-51的运算符的运算符与与C C语言基本相同:语言基本相同:+-*/+-*/(加(加 减减 乘乘 除)除)=(位右移(位右移 位左移)位左移)&|&|(按位与按位与 按位或按位或)(按位异或按位异或 按位取反按位取反)单片机原理与应用技术单片机原理与应用技术教学课件教学课件 C-51 C-51的基本语句的基本语句与与标准标准C C语言基本相同:语言基本相同:if if 选择语言
7、选择语言 switch/caseswitch/case 多分支选择语言多分支选择语言 whilewhile 循环语言循环语言 do-while do-while 循环语言循环语言 for for 循环语言循环语言单片机原理与应用技术单片机原理与应用技术教学课件教学课件 实例实例ORG 0000HORG 0000HMOV R0,#0DCH;MOV R0,#0DCH;指向字形口指向字形口MOV A,#80HMOV A,#80H;确定字形代码确定字形代码MOVX MOVX R0,A R0,A ;输出字形代码输出字形代码MOV R1,#0DDH;MOV R1,#0DDH;指向字位口指向字位口MOV A
8、,#20HMOV A,#20H;从最高位开始从最高位开始LEDO:LEDO:MOVX MOVX R1,AR1,A;输出字位代码输出字位代码MOV R2,#18HMOV R2,#18H;确定延时常数确定延时常数ACALL ACALL DEYSDEYS;调延时子程序调延时子程序RL ARL A;右移一位右移一位SJMP SJMP LEDOLEDO;循环演示循环演示;延时子程序延时子程序DEYSDEYS:PUSH 02H:PUSH 02HDEY0:PUSH 02HDEY0:PUSH 02HDEY1:PUSH 02HDEY1:PUSH 02H DJNZ R2,$DJNZ R2,$POP 02H POP
9、 02H DJNZ R2,DEY1 DJNZ R2,DEY1 POP 02H POP 02H DJNZ R2,DEY0 DJNZ R2,DEY0 POP 02H POP 02H DJNZ R2,DEYS DJNZ R2,DEYS RET RET END END例例1.“8”1.“8”字符循环演示字符循环演示 (字形口为(字形口为DCH;DCH;字位口为字位口为DDHDDH)汇编语言程序汇编语言程序单片机原理与应用技术单片机原理与应用技术教学课件教学课件#include#include#include#include#define#define ucharuchar unsigned char
10、unsigned char /*/*字形口字形口 */#define PORTA XBYTE0 xffdc#define PORTA XBYTE0 xffdc /*/*字位口字位口*/#define PORTB XBYTE0 xffdd#define PORTB XBYTE0 xffdd /*/*延时延时 1MS1MS子程序子程序*/void void msce(unsignedmsce(unsigned intint x)x)unsigned char j;unsigned char j;while(x-)!=0)while(x-)!=0)for(j=0;j60;j+);for(j=0;j6
11、0;j+);main()main()ucharuchar rr,irr,i;for(;)for(;)rrrr=0 x01;/*=0 x01;/*从最右一位开始从最右一位开始*/for(i=0;i6;i+)for(i=0;i6;i+)PORTA=0 x80;/*PORTA=0 x80;/*输出字形代码输出字形代码*/PORTB=PORTB=rrrr;/*;/*输出字位代码输出字位代码*/msce(150);/*msce(150);/*调延时子程序调延时子程序*/rrrr=rrrr1;/*1;/*循环左移一位循环左移一位*/“8”“8”字符循环演示字符循环演示的的C C5151程序程序单片机原理与
12、应用技术单片机原理与应用技术教学课件教学课件 C C5151程序程序#include#include main()main()intint i;i;unsigned char unsigned char xdataxdata*p=0 x2000;/*p=0 x2000;/*指针指向指针指向2000H2000H单元单元*/for(i=0;i256;i+)/*for(i=0;i256;i+)/*清零清零2000H-20FFH2000H-20FFH单元单元*/*p=0;p+;*p=0;p+;例例2.2.清零程序清零程序 (将将2000H20FFH2000H20FFH的内容清零的内容清零)汇编语言程序
13、汇编语言程序 ORG 0000HORG 0000HSE01:MOV R0,#00H SE01:MOV R0,#00H MOV DPTR,#2000H ;(0000H)MOV DPTR,#2000H ;(0000H)送送DPTRDPTRLOO1:CLR ALOO1:CLR A MOVX MOVX DPTR,A ;0DPTR,A ;0送送(DPTR)(DPTR)INC DPTR ;DPTR+1 INC DPTR ;DPTR+1 INC R0 ;INC R0 ;字节数加字节数加1 1 CJNE R0,#00H,LOO1 ;CJNE R0,#00H,LOO1 ;不到不到FFFF个字节再清个字节再清LO
14、OP:SJMP LOOPLOOP:SJMP LOOP单片机原理与应用技术单片机原理与应用技术教学课件教学课件例例3.3.拆字程序拆字程序(将(将2000H2000H的内容拆开,高位送的内容拆开,高位送2001H2001H低位,低位送低位,低位送2002H2002H低位)低位)汇编语言程序汇编语言程序 ORG 0000HORG 0000HSE02:MOV DPTR,#2000HSE02:MOV DPTR,#2000H MOVX A,MOVX A,DPTRDPTR MOV B,A ;(2000)AB MOV B,A ;(2000)AB SWAP A ;SWAP A ;交换交换 ANL A,#0FH
15、 ;ANL A,#0FH ;屏敝高位屏敝高位 INC DPTRINC DPTR MOVX MOVX DPTR,A ;DPTR,A ;送送2001H2001H INC DPTR INC DPTR MOV A,B MOV A,B ANL A,#0FH ;(2000)ANL A,#0FH ;(2000)内容屏敝高位内容屏敝高位 MOVX MOVX DPTR,A ;DPTR,A ;送送2002H2002H SJMP$SJMP$单片机原理与应用技术单片机原理与应用技术教学课件教学课件拆字拆字C C5151程序程序#include#include main()main()unsigned char uns
16、igned char xdataxdata*p=0 x2000;/*p=0 x2000;/*指针指向指针指向2000H2000H单元单元*/*2002H/*2002H单元高单元高4 4位清零,低位清零,低4 4位装位装2000H2000H单元低单元低4 4位位*/*(p+2)=(*p)&0 x0f;*(p+2)=(*p)&0 x0f;/*2001H/*2001H单元高单元高4 4位清零,低位清零,低4 4位装位装2000H2000H单元高单元高4 4位位*/*(p+1)=(*p)4;*(p+1)=(*p)4;单片机原理与应用技术单片机原理与应用技术教学课件教学课件 汇编语言程序汇编语言程序 O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用技术
限制150内