结构体、共用体和位段结构_第1页
结构体、共用体和位段结构_第2页
结构体、共用体和位段结构_第3页
结构体、共用体和位段结构_第4页
结构体、共用体和位段结构_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、结构体、共用体和位段结构0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0

2、0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0

3、 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1

4、 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0

5、0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0

6、 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0

7、1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1

8、 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0

9、 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0

10、0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1

11、 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 智能家电控制技术与实施智能家电控制技术与实施课程团队宋玉宏 牛俊英 李景照 谢志义顺德职业技术学院.主讲:牛俊英主讲:牛俊英结构体、共用体和位段结构结构体、共用体和位段结构结构体、共用体和位段结构结构与共用体类型结构与共用体类型一、什么是结构变量?一、什么是结构变量? 把多个不同类型的变量结合在一起形成的一把多个不同类型的变量结合在一起形成的一个组合型变量,称为结构变量,简称结构。构个组合型变量,称为结构变量,简称结构。构成一个结构的各个变量称为结构元素(或

12、成员)成一个结构的各个变量称为结构元素(或成员)定义规则与变量名一致。定义规则与变量名一致。结构体、共用体和位段结构结构体、共用体和位段结构结构体、共用体和位段结构结构变量的定义方法结构变量的定义方法structstruct 结构体名结构体名 成员表列成员表列;例如:例如:structstruct document document / /* *定义定义documentdocument结构类型结构类型* */ / intint number; number; intint age; age; unsigned char sex; unsigned char sex; ; document do

13、cument student,teacherstudent,teacher; ; / /* *定义结构变量定义结构变量studentstudent和和teacher teacher * */ /结构体、共用体和位段结构结构体、共用体和位段结构结构类型变量的引用结构类型变量的引用对结构变量的引用如下:对结构变量的引用如下:student.number=01;student.number=01;teacher.age=34;teacher.age=34;结构体、共用体和位段结构结构体、共用体和位段结构位段结构位段结构struct struct 位段结构原型名位段结构原型名 整型说明符整型说明符 位

14、段名位段名 :位宽;:位宽; 整型说明符整型说明符 位段名位段名 :位宽;:位宽; 标识符标识符=初始值,初始值,初始值,初始值,; ; 结构体、共用体和位段结构结构体、共用体和位段结构位段结构定义举例位段结构定义举例structstruct byte rmtkey :1; / byte rmtkey :1; /遥控标记遥控标记 byte :1;byte :1; byte beep :1; / byte beep :1; /蜂鸣标记蜂鸣标记 byte scankey :1; /byte scankey :1; /按键扫描标记按键扫描标记 byte secflg :1; /byte secflg

15、 :1; /秒标记秒标记 byte :2;byte :2; byte RoomAd :1; / byte RoomAd :1; /室温室温ADAD采样标记采样标记TimeFlg=0,0,0,0,0; TimeFlg=0,0,0,0,0; 结构体、共用体和位段结构结构体、共用体和位段结构位段结构说明位段结构说明标识符部分是必需的,标识符是位段结构变量名;标识符部分是必需的,标识符是位段结构变量名;位段结构原型名可有可无;位段结构原型名可有可无;位段名可有可无,没有时表示该位段未用;位段名可有可无,没有时表示该位段未用;初始化部分可有可无,赋初值时,由低位开始,各初始化部分可有可无,赋初值时,由低

16、位开始,各位段用逗号分割。位段用逗号分割。结构体、共用体和位段结构结构体、共用体和位段结构对位段结构变量的位引用对位段结构变量的位引用TimeFlg.beep=1; /上电响蜂鸣if(TimeFlg.scankey=1) /2ms扫描按键 TimeFlg.scankey=0; Delay(8); /延时等待片选稳定 ReadKey(); 结构体、共用体和位段结构结构体、共用体和位段结构结构体与共用体二、什么是共用体类型?二、什么是共用体类型? 共用体类型(共用体类型(unionunion)是在内存中定义一段多)是在内存中定义一段多种类型数据所共享的空间,空间的大小以最长的种类型数据所共享的空间

17、,空间的大小以最长的类型为准。共用体类型与结构类型类似,也可以类型为准。共用体类型与结构类型类似,也可以包含多个不同数据类型的元素(成员),但它所包含多个不同数据类型的元素(成员),但它所包含的成员只能共享一个存储空间。包含的成员只能共享一个存储空间。结构体、共用体和位段结构结构体、共用体和位段结构结构体与共用体二、什么是共用体类型?二、什么是共用体类型?typedef union typedef union byte n; byte n; word c; word c; TElemType; TElemType; 结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 1

18、1、请新建一个、请新建一个C C语言工程文件,存在语言工程文件,存在E E盘。命名方法:盘。命名方法: “姓名姓名+ +学号学号”。定义芯片初始化子函数。定义芯片初始化子函数MCU_initMCU_init,要求对要求对PTAPTA、PTBPTB、PTDPTD及定时器(溢出中断间隔为及定时器(溢出中断间隔为125s125s)进行初始化设置并禁止看门狗()进行初始化设置并禁止看门狗(COPCOP)。)。2 2、编写定时器中断函数,实现上电响一声蜂鸣功能。、编写定时器中断函数,实现上电响一声蜂鸣功能。提示:定义一个位段变量提示:定义一个位段变量TimeFlgTimeFlg控制蜂鸣,每次蜂控制蜂鸣,

19、每次蜂鸣时间可控制在鸣时间可控制在250ms250ms左右。数码管显示左右。数码管显示0 0到到9 9每秒换每秒换显示显示附加题:每附加题:每1010秒响蜂鸣,每次响蜂鸣时间为秒响蜂鸣,每次响蜂鸣时间为250ms250ms 结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 3 3、定时器功能练习、定时器功能练习 修改前面编写的定时器中断函数,分别编写修改前面编写的定时器中断函数,分别编写2ms2ms、250ms250ms、1s1s时间平台时间平台, ,修改程序要求实现每修改程序要求实现每1s1s钟钟蜂鸣器响一次(注意:请关闭显示)。蜂鸣器响一次(注意:请关闭显示)。结构

20、体、共用体和位段结构结构体、共用体和位段结构开始清中断溢出标记N要蜂鸣?2ms到?YYN蜂鸣时间到?停止蜂鸣继续计时Y 清2ms计时变量250ms到?NYN清250ms计时变量1s到?YN清计时变量,秒累加,响蜂鸣中断返回结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 4 4、LEDLED显示练习显示练习 请熟悉请熟悉40944094芯片资料,编写芯片资料,编写40944094驱动子函数,驱动子函数,并利用该子函数点亮各并利用该子函数点亮各LEDLED灯。灯。 附加练习题:附加练习题: 请每隔请每隔1 1秒顺序点亮秒顺序点亮SAVERSAVER、 、SWING 、CO

21、OL 、 、FAN 、AUTO 、LOW、 MED、 HI。结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 4 4、 LEDLED显示练习显示练习结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 5 5、 数码管显示练习数码管显示练习 请对照窗机控制板原理图,自己编写数码管段请对照窗机控制板原理图,自己编写数码管段码表,并利用所定义的段码表在两位数码管显示码表,并利用所定义的段码表在两位数码管显示“5656”。(十位。(十位“5 5”,个位,个位“6 6” ,要求,要求: : 显示稳定、显示稳定、清晰。)清晰。) 附加练习题:附加练习题: 请在

22、某一位数码管(个位或十位)顺序显示请在某一位数码管(个位或十位)顺序显示0F0F十六进制数据。十六进制数据。结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 5 5、 数码管显示练习数码管显示练习结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 6 6、 显示综合练习显示综合练习 请利用定时器中断函数的请利用定时器中断函数的2ms2ms平台送显示段码和平台送显示段码和片选信号,实现对片选信号,实现对LEDLED和数码管的显示。并利用该平和数码管的显示。并利用该平台在数码管上显示台在数码管上显示“2525”。(注意:请关闭。(注意:请关闭LEDLE

23、D显示显示, ,附加题相同。)附加题相同。) 附加练习题:附加练习题:1 1、数码管顺序显示、数码管顺序显示099099的十六进制数。的十六进制数。 2 2、数码管顺序显示、数码管顺序显示099099十进制数。十进制数。结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 6 6、 显示综合练习显示综合练习结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 7 7、A/DA/D转换练习转换练习 请编写请编写ADCADC模块初始化程序模块初始化程序(AD(AD通道请选择通道请选择PTD0)PTD0),利用蜂鸣器检测利用蜂鸣器检测A/DA/D转换是否成功,

24、并将转换结果在转换是否成功,并将转换结果在数码管显示(注意:请将转换的数码管显示(注意:请将转换的ADAD值减值减7070后显示)后显示) 。 附加练习题:附加练习题:1 1、将热敏线的、将热敏线的ADAD值转换成温度并显示值转换成温度并显示(AD(AD通道请选通道请选择择PTD1) PTD1) 。 结构体、共用体和位段结构结构体、共用体和位段结构功能模块练习功能模块练习 8 8、读键练习、读键练习 请编写读键程序,当摆页键按下时响一声蜂鸣,请编写读键程序,当摆页键按下时响一声蜂鸣,且点亮摆页灯;当自动键按下时响一声蜂鸣,并且且点亮摆页灯;当自动键按下时响一声蜂鸣,并且点亮自动灯点亮自动灯 。

25、 附加练习题:附加练习题:1 1、编写完整的读键程序,要求按键按下时响一声蜂、编写完整的读键程序,要求按键按下时响一声蜂鸣,并在数码管显示相应键值,有对应鸣,并在数码管显示相应键值,有对应LEDLED灯请点灯请点亮亮 。 结构体、共用体和位段结构结构体、共用体和位段结构结构体、共用体和位段结构0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0

26、0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1

27、1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0

28、0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0

29、0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0

30、1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1

31、 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 00 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1

温馨提示

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

评论

0/150

提交评论