第讲C语言基本结构及单片机存储器介绍_第1页
第讲C语言基本结构及单片机存储器介绍_第2页
第讲C语言基本结构及单片机存储器介绍_第3页
第讲C语言基本结构及单片机存储器介绍_第4页
第讲C语言基本结构及单片机存储器介绍_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子与通信工程学院 汤旭慧汤旭慧 第第3讲讲 C语言循环结构及存储器介绍语言循环结构及存储器介绍 主讲:汤旭慧主讲:汤旭慧Addr:行政楼:行政楼509第二工业中心第二工业中心418Tel26731194QQ:2232360300电子与通信工程学院 汤旭慧汤旭慧单片机内部结构时钟电路CPUROMRAMT0 T1中断系统串行接口并行接口P0 P1 P2 P3TXD RXDINT0 INT1定时计数器电子与通信工程学院 汤旭慧汤旭慧数据存储器数据存储器程序存储器程序存储器CPU电子与通信工程学院 汤旭慧汤旭慧STC90C516RD+单片机的存储器单片机的存储器 STC90

2、C516RD+单片机的程序存储器和数据存储器是各单片机的程序存储器和数据存储器是各自独立编址的。除了可以访问片上自独立编址的。除了可以访问片上Flash存储器外,还可存储器外,还可以以访问访问64KB的外部程序存储器的外部程序存储器。 STC90C516RD+单片单片机机内部内部 1280字节的数据存储器字节的数据存储器,其在物理和逻辑上都分,其在物理和逻辑上都分为两个地址空间:为两个地址空间:内部内部RAM(256字节)和内部扩展字节)和内部扩展RAM(1024字节)字节)。电子与通信工程学院 汤旭慧汤旭慧电子与通信工程学院 汤旭慧汤旭慧程序程序存储器存储器内部外部0000H0FFFH(4K

3、)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位位0FFFH0FFEHEA=1 EA=0EA=1 EA=0程序程序存储器资源分布存储器资源分布中断入口地址电子与通信工程学院 汤旭慧汤旭慧电子与通信工程学院 汤旭慧汤旭慧0000HFFFFH(64K)内部外部数据数据存储器存储器00HFFH7FH80H(高128B)(低128B)RAM专

4、用寄存器0000H H07H07H0808H H0FH0FH1010H H17H17H1818H H1FH1FH0区区R0R0R7R7R0R0R7R7R0R0R7R7R0R0R7R71区区2区区3区区工作寄存器区工作寄存器区可位寻址区可位寻址区20H2FH7F 7807 0030H7FH数据缓冲区数据缓冲区/堆栈区堆栈区内部内部RAMRAM存储器存储器 工作寄存器区工作寄存器区选择位选择位RS0RS0、RS1RS1电子与通信工程学院 汤旭慧汤旭慧注意注意: : 一个单元地址对应有一个单元地址对应有8 8个位地址个位地址MSBMSBMost Significant Bit Most Signif

5、icant Bit (最高有效位)(最高有效位)LSB LSB Least Significant Bit Least Significant Bit (最低有效位)(最低有效位)单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F7F77776F6F67675F5F57574F4F47473F3F37372F2F27271F1F17170F0F0707 MSB 位地址 LSB7E7E76766E6E66665E5E56564E4E46463E3E36362E2E26261E1E16160E0E06067D7D75756D6D65655D

6、5D55554D4D45453D3D35352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C44443C3C34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B43433B3B33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A42423A3A32322A2A22221A1A12120A0A020279797171696961615959515149494141393931312929212119191111090901

7、017878707068686060585850504848404038383030282820201818101008080000RAM位寻址区位地址表位寻址区位地址表电子与通信工程学院 汤旭慧汤旭慧离散分布有离散分布有2121个个特殊功能寄存器特殊功能寄存器SFRSFR(是用来对片内各功能是用来对片内各功能模块进行管理、控制、模块进行管理、控制、监视的控制寄存器和状监视的控制寄存器和状态寄存器。态寄存器。) 1111个可以进行个可以进行位寻址。位寻址。特别提示:对特别提示:对SFRSFR只能使用只能使用直接直接寻址方式寻址方式,书写时,书写时可使用寄存器符号,可使用寄存器符号,也可用寄存器

8、单元也可用寄存器单元地址。地址。电子与通信工程学院 汤旭慧汤旭慧电子与通信工程学院 汤旭慧汤旭慧电子与通信工程学院 汤旭慧汤旭慧1.程序计数器(程序计数器(PCProgram Counter) PC是一个是一个16位的计数器,它的作用是控制程序的位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围执行顺序。其内容为将要执行指令的地址,寻址范围达达64KB。 PC没有地址,是不可寻址的。因此用户无法对它没有地址,是不可寻址的。因此用户无法对它进行读写。进行读写。2. 累加器(累加器(ACCAccumulator)累加器为累加器为8位寄存器,是最常用的专用寄存器,它既可用

9、位寄存器,是最常用的专用寄存器,它既可用于存放操作数,也可用来存放运算的中间结果。于存放操作数,也可用来存放运算的中间结果。3. B寄存器寄存器B寄存器是一个寄存器是一个8位寄存器,主要用于乘除运算。位寄存器,主要用于乘除运算。电子与通信工程学院 汤旭慧汤旭慧4. 程序状态字(PSWProgram Status Word)程序状态字是一个8位寄存器,用于存程序运行中的各种状态信息。PSW的各位定义如下:D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVF1PCY(PSW.7)进位借位标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果最高位

10、有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。AC(PSW.6)辅助进位标志位。在进行加减运算中,当有低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。F0(PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。电子与通信工程学院 汤旭慧汤旭慧D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVF1PRS1和RS0(PSW.4,PSW.3)寄存器组选择位。用于选择CPU当前工作的通用寄存器组。通用寄存器共有四组,其对应

11、关系为:RS1 RS0 寄存器组 片内RAM地址0 0第0组00H07H0 1第1组08H0FH 1 0第2组10H17H 1 1第3组18H1FHOV(PSW.2)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128 +127),即产生了溢出,因此运算结果是错误;否则,OV=0表示运算正确,即无溢出产生。P(PSW.0)奇偶标志位。表明累加器A内容的奇偶性,如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。电子与通信工程学院 汤旭慧汤旭慧12345678910111213142827262524

12、232221 201918171615EPROM276412345678910111213142827262524232221 201918171615EPROM27641234567891011121314151617181920403938373635343332313029282726252424222112345678910111213142827262524232221 201918171615RAM6264 12345678910111213142827262524232221 201918171615RAM6264 80318751805189C51256B(字节)4K64K64

13、K电子与通信工程学院 汤旭慧汤旭慧实战演练实战演练 请按照本课堂的教学,建立开发环境,调试软件代请按照本课堂的教学,建立开发环境,调试软件代码,并下载;分别用顺序结构和循环结构实现如下实训:码,并下载;分别用顺序结构和循环结构实现如下实训:实现实现8个灯从上到下逐一点亮的流水灯效果。如:个灯从上到下逐一点亮的流水灯效果。如:电子与通信工程学院 汤旭慧汤旭慧需要用到的软件及工具需要用到的软件及工具1. C编译软件编译软件Keil4 软件软件2. 编程下载软件:编程下载软件:PZISP自动下载软件自动下载软件3. ISP下载器下载器4. 实验电路板实验电路板HC6800EM3 v20电子与通信工程

14、学院 汤旭慧汤旭慧工作环境建立步骤工作环境建立步骤1.1. 安装安装Keil4软件(版本:软件(版本:cavr1.259cavr1.259)2.安装安装PZISP自动下载软件自动下载软件3.3. 安装安装USB驱动程序。驱动程序。4.4. 到到“设备管理器设备管理器”的的“端口端口”中查看虚拟的串口端口中查看虚拟的串口端口号。号。5.5. 启动启动C C编译软件编译软件Keil4Keil4,进行编辑编译生成,进行编辑编译生成.hex文件。文件。6.6. 打开目标板电源,打开目标板电源,尝试启动尝试启动PZISP自动下载软件自动下载软件建立建立通信连接,实现在线下载。通信连接,实现在线下载。电子

15、与通信工程学院 汤旭慧汤旭慧C C程序的三种基本结构程序的三种基本结构 C C程序采用结构化的程序设计方法,程序由若干程序采用结构化的程序设计方法,程序由若干个基本结构组成。每一个基本结构可以包含一个或若个基本结构组成。每一个基本结构可以包含一个或若干个语句。主要有三种结构:干个语句。主要有三种结构:1.1. 顺序结构顺序结构:程序按照语句顺序进行执行。:程序按照语句顺序进行执行。2.2. 循环结构循环结构:当型循环结构:当型循环结构:“先判断,再操作先判断,再操作”直到型循环结构:直到型循环结构:“先操作,再判断先操作,再判断”3.3. 选择(分支)结构:选择(分支)结构:电子与通信工程学院

16、 汤旭慧汤旭慧运算符与表达式运算符与表达式u运算符:用来表示各种不同运算的符号。运算符:用来表示各种不同运算的符号。u表达式:用运算符把运算对象连接起来的式子。表达式:用运算符把运算对象连接起来的式子。电子与通信工程学院 汤旭慧汤旭慧关系运算符关系运算符 优先级 = = !=低低高高电子与通信工程学院 汤旭慧汤旭慧关系表达式p 用用关系运算符关系运算符将两个表达式(可以是算术表达式、关将两个表达式(可以是算术表达式、关系表达式、赋值表达式或逻辑表达式系表达式、赋值表达式或逻辑表达式)连接起来的式子,连接起来的式子,称为称为关系表达式关系表达式。p 关系表达式的值为关系表达式的值为逻辑值逻辑值“

17、真真”或或“假假”,以,以1代表代表“真真”,以,以0代表代表“假假”。 例如:例如: (1)关系表达式关系表达式“8=4”的值为的值为 。 (2) 关系表达式关系表达式“50”的值为的值为 。 电子与通信工程学院 汤旭慧汤旭慧当型循环:当型循环:while语句语句whilewhile语句用来实现语句用来实现“当型当型”循环,循环,执行过程:首先判断表达式,执行过程:首先判断表达式, 当表达式的值为真(非当表达式的值为真(非0 0)时,)时,反复执行循环体。为假(反复执行循环体。为假(0 0)时)时执行循环体外面的语句。执行循环体外面的语句。循环体循环体循环继续的条循环继续的条件表达式件表达式

18、下一条语句下一条语句非非0(真)(真)0(假)(假)循环体语句组循环体语句组while执行过程执行过程格式:格式:while(循环继续的条件表达式)(循环继续的条件表达式) 语句组语句组; 花括号不花括号不能丢掉!能丢掉!请问:下述程序实现了什么功能?请问:下述程序实现了什么功能?main( )main( ) int int i=0,sum=0 i=0,sum=0; ; while(i=10) while(i=10) sum=sum+i; sum=sum+i; i+; i+; 电子与通信工程学院 汤旭慧汤旭慧直到型循环:直到型循环:do-while语句语句do-while语句用来实现语句用来实

19、现“直到型直到型”循环循环执行过程:先执行过程:先无条件无条件执行一次循环体,执行一次循环体,然后判断条件表达式,当表达式的值然后判断条件表达式,当表达式的值为真(非为真(非0)时,返回执行循环体直)时,返回执行循环体直到条件表达式为假(到条件表达式为假(0)为止。)为止。绝对不能少分号!绝对不能少分号!循环体循环体格式:格式:dodo 循环体语句组;循环体语句组; while( while(循环继续条件循环继续条件) );花括号不花括号不能丢掉!能丢掉!循环继续的条循环继续的条件表达式件表达式下一条语句下一条语句非非0(真)(真)0(假)(假)循环体语句组循环体语句组请问:下述程序实现了什么

20、功能?请问:下述程序实现了什么功能?main( )main( ) int int i=0,sum=0; i=0,sum=0; do do sum=sum+i; sum=sum+i; i+; i+; while(i=100); while(i=100); 电子与通信工程学院 汤旭慧汤旭慧循环语句循环语句 nwhile(1);等同于等同于 while(1);无限次执行空语句,原地踏步语句,停机无限次执行空语句,原地踏步语句,停机nwhile(1) 循环体;循环体;无限次执行循环体无限次执行循环体电子与通信工程学院 汤旭慧汤旭慧C C语言的数据类型语言的数据类型C语言提供的数据结构,是以数据类型形式

21、出现的。分类如语言提供的数据结构,是以数据类型形式出现的。分类如下:下:指针类型基本类型字符型整型空类型构造类型枚举类型单精度型数组类型双精度型实型(浮点型) 结构体类型共用体类型数据类型 C程序中用到的每一个变量都要指定它们所属的数据类型。程序中用到的每一个变量都要指定它们所属的数据类型。 其其原因原因在于:不同类型的数据在内存中占据在于:不同类型的数据在内存中占据不同长度的存储区不同长度的存储区,而且采用而且采用不同的表示方式不同的表示方式。一个数据类型。一个数据类型对应着一个值的范围对应着一个值的范围并且并且对应一组允许的操作对应一组允许的操作。 电子与通信工程学院 汤旭慧汤旭慧表达式语

22、句表达式语句p表达式:用运算符把运算对象连接起来的式子。表达式:用运算符把运算对象连接起来的式子。 p表达式语句表达式语句由表达式加上分号由表达式加上分号“;”组成组成,其一般形,其一般形式如下:式如下: 表达式;表达式; 执行表达式语句就是计算表达式的值执行表达式语句就是计算表达式的值。p 空语句中只有一个分号空语句中只有一个分号“;”,程序执行空语句时,程序执行空语句时需要占用一条指令的执行时间,但是什么也不做。需要占用一条指令的执行时间,但是什么也不做。p 在在C51程序中常常把程序中常常把空语句空语句作为循环体,用于消耗作为循环体,用于消耗CPU时间等待事件发生的场合。时间等待事件发生

23、的场合。 电子与通信工程学院 汤旭慧汤旭慧算术运算符和表达式算术运算符和表达式u运算符:用来表示各种不同运算的符号。运算符:用来表示各种不同运算的符号。u表达式:用运算符把运算对象连接起来的式子。表达式:用运算符把运算对象连接起来的式子。u基本算术运算符:、基本算术运算符:、*、/、% 注意:两个整数相除的结果仍为整数。注意:两个整数相除的结果仍为整数。 %运算符两侧必须为整型数据。运算符两侧必须为整型数据。u强制类型转换运算符强制类型转换运算符: (类型名)(表达式)(类型名)(表达式) 注意:此运算并不改变数据原来的类型。注意:此运算并不改变数据原来的类型。u自增自减运算符:自增自减运算符

24、:u算术表达式:算术表达式:main() float num1=2.5; int result; result=(int)num1+4;电子与通信工程学院 汤旭慧汤旭慧算术运算符算术运算符 C语言提供了如下算术运算符:语言提供了如下算术运算符: (加法运算)、(加法运算)、 (减法运算)(减法运算) * *(乘法运算符)、(除法运算符)(乘法运算符)、(除法运算符) % % (求余运算符,或称模运算符)(求余运算符,或称模运算符) 如:如: 4 % 24 % 20 0说明:说明: 两个整数相除结果为整数,如两个整数相除结果为整数,如8/5的结果为的结果为1,舍去小,舍去小数部分。数部分。 如果

25、参加运算的两个数中有一个数为实数,则结果是如果参加运算的两个数中有一个数为实数,则结果是实型。实型。 求余运算要求求余运算要求%两侧都是整型数据。两侧都是整型数据。电子与通信工程学院 汤旭慧汤旭慧温故而知新温故而知新请阅读如下程序:说明程序有什么问题?修改并说明其功能。请阅读如下程序:说明程序有什么问题?修改并说明其功能。main( ) int num1,num2,num3=80; num1=12; num2=57.23; unsigned char sum, mux; sum=num1*num3+num3; mux=num1*num2*num3;main( ) int num1,num2,n

26、um3=80; unsigned char sum, mux; num1=12; num2=57.23; sum=num1*num3+num3; mux=num1*num2*num3;main( ) unsigned char num1, num3=80; float num2, mux; unsigned int sum; num1=12; num2=57.23; sum=num1*num3+num3; mux=num1*num2*num3; 电子与通信工程学院 汤旭慧汤旭慧自增(自增(+)、自减()、自减(-)运算)运算1. 自增、自减运算符都有两种用法:自增、自减运算符都有两种用法: (

27、1)前置运算前置运算变量、变量变量、变量 即先增减、后运算。即先增减、后运算。 (2)后置运算后置运算变量、变量变量、变量 即先运算、后增减。即先运算、后增减。 2. 2. 说明说明(1)自增、自减运算,常用于循环语句中。)自增、自减运算,常用于循环语句中。(2)自增、自减运算符,不能用于常量和表达式。自增、自减运算符,不能用于常量和表达式。(3)严禁连续使同一变量进行自增或自减运算。严禁连续使同一变量进行自增或自减运算。电子与通信工程学院 汤旭慧汤旭慧课堂实训课堂实训请说明如下程序运行结束后,请说明如下程序运行结束后,num和和result的执行结果?的执行结果?main() int num

28、=6,result; result=+num; result=num-;实训实训要求:编制程序尝试将此程序的计算结果显示在发光要求:编制程序尝试将此程序的计算结果显示在发光二极管上。要求在二极管上。要求在P1口输出口输出result的值,在的值,在P0口输出口输出num的值。的值。电子与通信工程学院 汤旭慧汤旭慧实战演练实战演练 实训实训2:如图所示电路,要求按照如下所示的方式:如图所示电路,要求按照如下所示的方式1点亮,每点亮,每次点亮两只灯,间隔一段时间后,再换成方式次点亮两只灯,间隔一段时间后,再换成方式2点亮相邻的两点亮相邻的两只,依此类推,四次后,再回到第一次,只,依此类推,四次后,

29、再回到第一次,周而复始循环周而复始循环20次次后停机后停机。(要求分别用。(要求分别用while、do-while语句完成)语句完成) 方式方式1: 方式方式2: 方式方式3: 方式方式4:电子与通信工程学院 汤旭慧汤旭慧实战演练实战演练 请按照本课堂的教学,建立开发环境,模拟仿真调试请按照本课堂的教学,建立开发环境,模拟仿真调试软件代码,并下载实现如下实训:实现软件代码,并下载实现如下实训:实现8个灯左右个灯左右循环滚动循环滚动逐一点亮的流水灯效果逐一点亮的流水灯效果 。(要求。(要求周而复始循环周而复始循环20次后停机。次后停机。请分别用请分别用while、do-while语句完成)语句完

30、成)电子与通信工程学院 汤旭慧汤旭慧跑马灯设计跑马灯设计设计任务:设计任务: 指示灯指示灯LED1LED1LED8LED8分别接在分别接在P2P2口的口的P2.0P2.0P2.7P2.7管脚上,低管脚上,低电平灯亮,高电平灯灭。电平灯亮,高电平灯灭。初始状态灯间隔点亮。初始状态灯间隔点亮。 1.1.保持保持PAPA口其余灯的状态不变的条件下,只关闭口其余灯的状态不变的条件下,只关闭LED0LED0指示指示灯的跑马灯设计。灯的跑马灯设计。 2.2.保持保持PAPA口其余灯的状态不变,只打开口其余灯的状态不变,只打开LED7LED7指示灯的跑马指示灯的跑马灯设计。灯设计。 3.3.保持保持PAPA

31、口其余灯的状态不变口其余灯的状态不变, ,只关闭只关闭LED0LED0LED3LED3灯的跑灯的跑马灯设计。马灯设计。 4.4.尝试将当前尝试将当前PAPA端口所有指示灯输出状态相反的端口所有指示灯输出状态相反的C C程序设程序设计。计。 即亮灯改为灭灯,灭灯改为亮灯。即亮灯改为灭灯,灭灯改为亮灯。 电子与通信工程学院 汤旭慧汤旭慧综合实战演练综合实战演练 实训实训1:如图所示电路设计跑马灯。首先按一定的时间间隔:如图所示电路设计跑马灯。首先按一定的时间间隔从左到右依次轮流点亮从左到右依次轮流点亮1盏灯,轮完盏灯,轮完8只灯后;进入第二轮只灯后;进入第二轮显示方式:从左到右依次轮流同时点亮显示

32、方式:从左到右依次轮流同时点亮2盏灯,轮完盏灯,轮完8只灯只灯后;进入第三轮显示方式:从左到右依次轮流同时点亮后;进入第三轮显示方式:从左到右依次轮流同时点亮3盏盏灯;进入第四轮显示方式:从左到右轮流同时点亮灯;进入第四轮显示方式:从左到右轮流同时点亮4盏灯。盏灯。四轮方式结束后,再回到第一轮,周而复始。四轮方式结束后,再回到第一轮,周而复始。电子与通信工程学院 汤旭慧汤旭慧综合实战演练综合实战演练 方式方式1: 方式方式2: 方式方式3: 方式方式4: 方式方式5: 方式方式6: 方式方式7:实训实训2:如图所示电路,要求从最上端到下端的灯轮流点亮:如图所示电路,要求从最上端到下端的灯轮流点亮。首先如下所示的方式。首先如下所示的方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论