HCS12学习笔记-从IO口道其他模块.docVIP

  • 3
  • 0
  • 约9.43千字
  • 约 13页
  • 2017-03-05 发布于重庆
  • 举报
HCS12学习笔记-从IO口道其他模块

HCS12?中断向量表 中断向量表是HCS12编程时时常需要查阅和用到的,在此优先贴出来~ ? ? 从IO口讲起__HCS12学习笔记(1) (IO口都有复用功能,在一开始,我只对输入输出做了解,以完成键盘和显示的功能,使用的实验板DP256的DEMO,显示是LED小灯,键盘是开关。 A、B、E、K可以通过寄存器控制是否上拉电阻,他们共用一个使能位PUCR。 H、J、M、P、S、T也可做普通IO口,基本与A口类似。 1.1 输出 程序用到了,PORTB口的输出,控制小灯的亮和暗,设置DDRB都为高位,就可以使得B口输出,也就是IO口的初始化,PORTB的值用来控制小灯的初始亮和灭。 通过软件就可以控制小灯的亮的顺序等等功能。 1.2 输入 同上,DDR变成低位就是输入,这里为了实现键盘,IO口设置其上拉,在空接时为高电平。IO口还可以设置中断,这里没有用到,也没有查到相关资料,先空着。 ? 通用寄存器表,以H口为例: ? 数据方向寄存器?? DDRH IO口寄存器?????? PTH 输入寄存器?????? PTIH 引脚为输入时,值为对应电平,输出时,监视引脚是否超载或短路,是为1. 低功耗驱动寄存器 RDRH 上拉下拉使能寄存器 PERH 上拉下拉选择寄存器 PPSH?0为上拉,1为下拉 ? 初始对于嵌入式的了解也需要从最简单的例子开始,比如小灯和键盘,我使用的开发板是摩托罗拉公司的HCS12dp256b的demo板子,键盘只有H口对应的八位开关,LED灯也是最简单的,对应了B口,一开始容易弄错的是硬件上,灯是1亮还是0亮,或者开关方向开的时候是1还是关的时候是1.我的板子,开关是闭合为0,一开始总没有弄对,也是这方面没有搞清楚,最后将开关口(H)上拉后,问题迎刃而解。 串行通信口SCI__HCS12学习笔记(2) (基本概念: SCI采用NRZ数据格式,用负电平表示一种二进制值,正电平表示另一种二进制值,不使用零电平。空闲状态为1,发送器通过发送一个0表示一字节传输开始随后是数据位,最后发送1~2位的停止位,表示一字节的传送结束。一个开始位到一个停止位,为1帧Frame。 ??? 波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400。随着波特率的提高,信号受干扰的程度也越大,因此,串行口的传输速率有限。 ? 寄存器: 对于编程者来说,直接面对的就是寄存器,因此对于寄存器的介绍是非常重要的。 这里只列举,详细各个位的介绍参照数据手册: 波特率寄存器 SCIBDH SCIBDL H的高3位无效,因此一种13位1~8191 控制寄存器?? SCICR1 SCICR2 传输格式,中断使能 状态寄存器?? SCISR1 SCISR2 中断标志,发送与接收状态 数据寄存器?? 收发的数据 ? 初始化、收、发子函数: ? //串行通信需要用到的头文件 #include mc9s12dg128.h??? //MCU映像寄存器名 #include Type.h?????????? //类型别名定义 //串行通信寄存器及标志位定义 #define ReSendStatusR SCI0SR1? ??? //SCI状态寄存器 #define ReTestBit???? 5??????? ??? //接收缓冲区满标志位 #define SendTestBit?? 7??????? ??? //发送缓冲区空标志位 #define ReSendDataR?? SCI0DRL? ??? //数据寄存器 //串行通信相关函数声明 void SCIInit(void);??????????? ?????? //串行口初始化函数声明 void SCISend1(INT8U o);????????? ?? //串行发送1个字节 void SCISendN(INT8U n,INT8U ch[]);??? //串行发送n个字节 INT8U SCIRe1(INT8U *p);?????????????? //串行接收1个字节 INT8U SCIReN(INT8U n,INT8U ch[]);???? //串行接收n个字节 ? //特别声明,这里的INT8U表示8位无符号数 //[SCI.c]串行通信* //本文件包含:????????????????????????????????????????????????????????????? * //??? (1)SCIInit:串行口初始化????????????????????????????????????????????? * //??? (2)SCISend1:串行发送1个字节???????????????????????????????????????

文档评论(0)

1亿VIP精品文档

相关文档