研究生单片机应用

上传人:宝路 文档编号:47936445 上传时间:2018-07-06 格式:PPT 页数:47 大小:493.14KB
返回 下载 相关 举报
研究生单片机应用_第1页
第1页 / 共47页
研究生单片机应用_第2页
第2页 / 共47页
研究生单片机应用_第3页
第3页 / 共47页
研究生单片机应用_第4页
第4页 / 共47页
研究生单片机应用_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《研究生单片机应用》由会员分享,可在线阅读,更多相关《研究生单片机应用(47页珍藏版)》请在金锄头文库上搜索。

1、单片机C语言构造数据类型 数组(也可以理解为矢量)下标从0开始 一维数组 int a3=0, 1, 2 二维数组 int a23=1, 2, 3, 2, 4, 6 字符数组 char g8=E, A 数组与储存空间,过大数组产生编译错字符/整型/长整或浮点数组元素:1/2/4字节, 注意Target选项卡中Memory Model的设定单片机C语言构造数据类型 指针,把变量的地址放到另一个变量 (称作指针)中,通过对这个特殊的 变量进行操作,实现特殊的操作。 变量的指针该变量的地址 指向变量的指针变量存放别的变 量的地址的专门变量,简称指针变量 3. 指针变量的定义例5.2 指针变量基类型变化

2、的影响 P1单片机C语言构造数据类型 例5.3 指针变量基类型变化的影响 P2 4. 指针变量的引用只存放地址例5.4 通过指针变量访问整型变量 Point1 int *Point1, *Point2 定义整型指针变量 Point1= Point2= 指定指针变量地址 (*Point1)+相当于a+ *Point1+ 相当于指向下一地址单片机C语言构造数据类型 例5.5 区分热启动和冷启动。热启动,内 部RAM数据值不变,将保存内存特定区域 数据,回存相应的变量中;冷启动,内部 RAM数据是随机值,要从外部EEPROM 读取上次断电时保存的数据,回存相应变 量中。 STARTUP . A51

3、(略)单片机C语言构造数据类型 Keil C51指针a.基于存储器,由C语言代码中存储 器类型决定,以存储器的类型为参量, 编译时才被确定,高效地访问对象,只 需12字节。idata*, data*, pdata* 1字节xdata*, code* 2字节单片机C语言构造数据类型 b. 一般指针 3个字节地址012内容存储器类型偏移量高位偏移量低位1idata 2xdata 3pdata 4data 5code单片机C语言构造数据类型 例,指向地址1678H的xdata数据类型的 一般指针地址012内容0x020x16ox78单片机C语言构造数据类型 存储器地址00x007f RAM前 128

4、B00x0ff RAM256B0x200x2f RAM前128B 中位寻址0x1000 0x1fff 64K外存dataidatabdataxdata pdata25 6B单片机C语言构造数据类型 结构不同类型的数据组成整体例,公交票价3个分量,起点、终点和价格struct buspriceunsigned char begin;unsigned char end;unsigned int price;定义结构的类型单片机C语言构造数据类型 先定义结构类型,再定义变 量 定义结构类型同时定义变量 直接定义结构类型变量定义结构类型变量单片机C语言构造数据类型 结构不能作为整体赋值、存取 、运算函

5、数的参数和返回值。 可以“或enum daySun, Mon, Tue, Wed, Thu, Fri, Sat;enum day d1, d2;枚举的定义单片机C语言构造数据类型 枚举列表中每项代表一个整数,默认第1项 为0,然后按自然数递增,也可人为初始 化某项为一整数,其后依然自然数递增。enum wuxinggold, wood, water=6, fire, clay;例5.7 红、绿、蓝3色球全排列。 Enum枚举变量取值单片机C语言构造数据类型 设置参数,定义共用体变量,当中分量 用枚举先到取值,同时表达清楚含义 ,方便编程和调试。 union Para unsigned int

6、Par6;unsigned char WrPar12;Set, Coun;enumT1, T2, R1, R2, R3, C1Par; 单片机C语言构造数据类型 Typedef 定义类型,声明新类型代替已 有类型名。类型换名而已。仅声明,不定义变量;在编译时处理,define编译前处理;有利于程序通用和移植。单片机内部资源的编程 中断,5个源,4个控制寄存器,2个优 先级 定时器,T0和T1,定时/计时,2个控 制寄存器,4工作方式,初值 串行口,2个独立全双工,SBUF地址 99H,2个控制寄存器单片机内部资源的编程 中断源(外部)/INT0, /INT1,由TCON寄存器低4位确定下降沿触

7、发电平保持12振荡周期以上 1机器周期12振荡周期D3D2D1D0IE1IT1IE0IT0中断置位0,低电平中断置位0,低电平响应后复位1,下降沿响应后复位1,下降沿单片机内部资源的编程 中断源(内部) TF0/TF1:定时器T0/T1溢出,响应后硬 件清零 TI:串行口发送,响应后软件清零 RI:串行口接收,响应后软件清零单片机内部资源的编程 中断优先级源INT0T0INT1T1串口同级内 部最高最低入口地 址0003H000BH0013H001BH0023H单片机内部资源的编程 中断控制寄存器(1)中断允许IEIEEAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H1

8、,开放中 断1,串口中 断1,T1中断1,外部中 断11,T0中断1,外部中 断00,禁止中 断0,禁串口 中断0,禁T1中 断0,禁外部 中断10,禁T0中 断0,禁外部 中断0单片机内部资源的编程 中断控制寄存器(2)中断优先级IPIP75PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8H1,高优先1,串口高优 先1,T1高优 先1,外部1高优 先1,T0高优 先1,外部0高优 先0,低优先0,串口低优 先0,T1低优 先0,外部1低优 先0,T0低优 先0,外部0低优 先单片机内部资源的编程 中断控制寄存器(3)外部源及触发 TCON(低4位)IE1 IT1 IE0 IT0

9、 中断控制寄存器(4)串口收发SCON( 低2位TI RI)单片机内部资源的编程 中断程序返回类型 函数名(参数) 模式再入interrupt n using n031 04,第n组工作寄存器例6.1 按下k1, P1.0引脚LED亮/灭 int0单片机内部资源的编程 定时器,T0/T1/, TMOD和TCON进行控 制,由1到0负跳变,计数加1直至溢出 ,不占用CPU,与之并行工作单片机内部资源的编程 定时器方式控制寄存器TMODTMOD只能字节寻址,8位整体写入。位D7D6D5D4D3D2D1D0含义GATEC/TM1M0GATEC/TM1M0=0,TR1置1 可启动=0,定时00,方式0

10、01,方式1=1,INT1高 TR1置1才 启动=1,计数10,方式211,方式3单片机内部资源的编程 定时器方式控制寄存器TCON, 低四位外部 中断,高4位含义如下:D7D6D5D4TF1TR1TF0TR0T1溢出标志位=1,启动T1T0溢出标志位=1,启动T0=0,关闭T1=0,关闭T0单片机内部资源的编程 定时/计数器工作方式 方式0, 13位定时/计数器 8+低5 方式1, 16位定时/计数器 双8 方式2, 自动再装入预置8位 方式3, T0独立2个8位, T1关闭 T/C2, 看门狗, 16位自动再装入单片机内部资源的编程 定时/计数器初值:最大待计 方式0,最大21389128

11、K 方式1,初值216待计 方式2/3,初值256待计 定时预置初值换算:定时(us)晶振(MHz)/12单片机内部资源的编程 定时器编程,初始化 例6.2 P1.0引脚LED亮灭/60ms晶振12MHz t1 查询 60000*12/12=60000 例6.3 中断方式例6.2, 60ms t2中断 例6.4 定时器长定时,闪/1S t3 例6.5 2个LED同时闪 t4软件定时,定义静态变量,公约数单片机内部资源的编程 计数器编程,显示、输出信号 例6.6 T0计数显示 c1例6.7 计数报警 c2单片机内部资源的编程 串行口, 2个控制寄存器、1个地址、1个缓冲 SBUF 、 4种方式

12、寄存器SCONSCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998含义4种方式多机通 信接收 控制第9位收发/停 止位发中 断收中断单片机内部资源的编程 串行口电源控制寄存器PCON,最高 位SMOD1波特率提高1倍 串行口工作方式0,同步移位寄存器输 入/出,扩展并行I/O。RXD引脚I/O, TXD输出同步移位时钟 ,发送/接收前 须软件清RI为0。波特率系统时钟 /12单片机内部资源的编程 串行口工作方式1,10位通用异步,1 低为始、8数(低在前)、1高则止。发,写SBUF由TXD输出;收, REN=1, 确认有效: RI=0 收,REN1, RX

13、D负跳变开 始,RI=0 & SM2=0/第9位=1确认有效装 RB8,置RI=1单片机内部资源的编程 串行口工作方式3,波特率可变之方式2版 。 波特率(方式1/3),由定时/计数器T1溢出率 和SMOD决定: (SMOD=0/1) 波特率=2SMOD溢出率/32 溢出率=fosc/(12(2k-初值) 初值= 2k- 2SMOD fosc/(384波特率) k=13/16/8, 视T1工作方式0/1/2、3单片机内部资源的编程 例6.8 PC机控制P1口,显示在8个LED,按下 K1K2发送数字到PC机。T1工作于方式2(8位自 动重装)发生波特率19200,串口工作于方式1, 晶振11.

14、0592MHz, TMOD=0x20, T1工作于定时 器方式2, SCON=0x40, 串口工作方式1, PCON的SMOD位1 T1初值=28-211059200/384/19200 =256-3=0xfd s1 单片机接口C编程 数码管接口 分共阴/阳两大 类,字形码编码 共阴/阳对应段 管 脚为高/低则亮单片机接口C编程共阳,“0”对应“FEDCBA”段亮,则对应的地址引脚为低,其他为高,从 高位到低位(HA)得字形码:11000000C0H,单片机接口C编程共阴,“0”对应“FEDCBA”段亮,则对应的地址引脚为高,其他为低,从 高位到低位为:001111113fH 另外,可以借助小

15、玩意来帮忙。单片机接口C编程 多位数码管 节省引脚数目,用共阴/阳极来选 位。 假设不知 引脚,怎 样用万用 表来测?单片机接口C编程 静态显示数码管相应段恒定亮/灭直至显示另一符号。亮度高,编程简单,占用较多I/O端口资源,不常用。74HC595与单片机串口组成静态 数码管显示接口。单片机接口C编程 图84,“CNT”应改为“RCK” 一起看例8.1程序,串口初始化, 定义显示缓冲和字形码(共阳),传 送1字节数据函数,显示函数,主函 数。单片机接口C编程 动态显示数码管 利用人眼视觉暂留,各位数码管的 ah并联构成“字段口”,公共阴/阳 接受I/O控制构成“位扫描口”。循环 扫描分时轮流选通各位公共极,超 过人眼25/秒就感觉同时发光。单片机接口C编程 看图85,6位共阳数码管,P0 段控制,P2.7-P2.2通过三极管驱 动位扫描各位的公共端。 例8.2 动态显示程序,定时中断15 位始终为0,第6位09循环 dled单片机接口C编程 键盘接口 软件置输入引脚为高,硬件上拉电 阻拉高,按下为低,软件判键。 软件去抖动,延时10ms/更长再检测 例8.3 键控流水灯 key1实践练习 Proteus设计动态扫描驱动电路 Keil编辑、编译程序,生成.hex文档 Pro

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号