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

一,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  波特率发送器完毕
自行编写字节发送,字符串函数,注意软件清零

 

 

你可能感兴趣的:(蓝桥杯大赛单片机组学习笔记,基于stc15f2k61s2转接板)