您的位置:首页 > 其它

蓝桥杯大赛单片机组学习笔记,基于stc15f2k61s2转接板

2015-04-10 22:52 344 查看
一,DS1302写时间 读出来的时间是十六进制,需转换成十进制

写进去也应该是十六进制

WP写保护位,寄存器写地址0X8E,1为写保护,禁止写。0解除

CH(clock halt) 时钟停止位,寄存器写地址0x80,1为停止,0为正常。

(年寄存器只能是00-99,注意20需自己写)

年月日时分秒写寄存器 都需将十进制转为十六进制。

最好按年月日时分秒顺序操作,最后写秒,同时修改秒寄存器的CH位 开启时钟

重新打开写保护

二,读时间

不需更改读写地址,在操作时序中已更改,只需放入一个地址即可。

与写时间大致相同,不需暂停和写保护, 最后需要十六进制转十进制

二 18B20时序操作问题

(温度显示不正常,一般是时序,延迟,返回值不对)

1.调用官方库,将官方自带延时函数修改为STC延时计算器生成15!微秒代码替换,18b20正常!!!!!!切记 15μs

2.自行编写温度转换流程函数,

(1)初始化init18b20(调用库)

(2)写字节(调用库)write_18b20(0xcc) skip ROM

(3)写字节 write_18b20(0x44) convert T

(4)(可稍作延时)

(5)写字节write_18b20(0xcc) skip ROM

(6)写字节write_18b20(0xbe) 读数据命令

(7)读数据命令之后,马上发回来的第一 第二个字节,分别是低位LSB 高位MSB

Read_DS18B20(调用库)马上读取 转换就OK!

IIC器件通信

AT2401 刚写入不能马上读取,需间隔(100ms)

(编写有子地址器件读取程序)期间地址,存储地址

写入!

1.启动IIC总线

2.写入期间地址,根据不同的A0 A1 A2接法确定 地址。

3.等待器件发来应答、

4.写入存储地址

5.等待器件发来应答

6.可(连续)写入数据到EEPROM中。格式为,写一个数据,等待应答,写下一个数据,等待应答。。。。

7.停止总线

读取!Random Read

1.启动IIC总线

2.写入期间地址,根据不同的A0 A1 A2接法确定 地址。

3.等待器件发来应答、

4.写入存储地址

5.等待器件发来应答 (此处已设置好读取指针)

6.重新启动IIC总线

7.发送器件地址(+1)将写改为读状态。

8.可(连续)读取EEPROM中数据。格式为,读一个数据,发送主动应答位表示要求继续读取数据,读下一个数据,发送主动应答位。。。。

9.读完最后一个数据,发送非应答,告诉器件不需要读取数据了。

10.停止总线

PCF8591

ADC!

1.启动IIC总线

2.写入器件地址。写状态

3.等待器件应答。

4.写入控制字。一定要允许模拟输出,选择通道。0x40|ANx !!!!!!

5.等待器件应答 (此处已配置好ADC)

6.重新启动IIC总线

7.写入器件地址(+1)读状态

8.等待器件应答

9.读取ADC数据,

10.主动发送非应答位,表示不需要在读数据

11.停止IIC总线。

DAC!

1.启动IIC总线

2.写入器件地址,写状态

3.等待器件应答

4.写入控制字,允许模拟输出0x40

5.等待器件应答

6.继续写入数据,表示,将该数据送带DAC中转换。

7.等待应答位。

8.停止总线。

数码管的动态显示!

设置定时器0 TH0=(65536-2000)/256; TL0=(65536-2000)%256; 2ms 刷新一次

display函数中,设置静态变量static i

P0送值消隐 打开段锁存 关闭段锁存 XBYTE[0XE000]=0XFF;

P0送位码[i] 打开位锁存 关闭位锁存 XBYTE[0XC000]=SEG_wei[i];

P0送段码[i] 打开段锁存 关闭段锁存 XBYTE[0XE000]=SEG_duan[i];

i++

i==8清零

矩阵键盘扫描! P44 P42 P35 P34 P33 P32 P31 P30

1.将高四位置高。 oxf0 注意将P44 P42也要同时变化

2、if(P3!=0XF0|P42!=1|P44!=1)检测是否有按键按下。

3。延时消抖 检测 (以上过程证明有按键按下了)

4、开始逐行扫描,oxfe oxfd oxfb,oxf7,分别对四行进行扫描

5.判断该行有按键按下时,获取键值 temp=((((P4<<3))|0X7F)&((P4<<4)|0XBF))&P3

6,等待按键松手,

7.返回键值

SCI串口通信

使用ISP波特率计算器 串口1 计数器1 8位自动重装载 12T速度 生成代码 SFR AUXR=OX8E 波特率发送器完毕

自行编写字节发送,字符串函数,注意软件清零
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: