- 博客(11)
- 收藏
- 关注
原创 IIC通信协议基于AT24C02应用
假如:图一中屏幕的设备地址是0x80,24C02的设备地址是0x90。主机再次发送从机设备地址,比如发送0x80,那边就会和屏幕建立通讯,其他从设备不受影响。首先,由主机向从设备发从起始信号,即上图起始位。起始位信号是在时钟信号线(SCL)为高电平的时候,数据信号线产生下降沿(即由高电平转向低电平),就完成了起始信号。2、数据产生:在SCL时钟信号线为低电平的时候,SDA数据线可以进行高点电平的转换。结束信号是在SCL为高电平的时候,SDA数据线完成由低到高的跳变(上升沿)。
2024-08-02 14:04:38
193
原创 行列式扫描矩阵键盘控制数码管基于STC89C51
这个代码折磨了我很多天,看的懂也能自己打出来了。就是实验老是不对,直到今天才发现,一是我用的延时函数时间有些长,再者就是我的矩阵键盘并不是很好用。
2023-08-21 20:58:38
272
1
原创 动态数码管2
/case后面需要一个空格,Y8亮。//段选,别忘了段选后需要赋值给P0口。//消影 ,在这个程序中,归零对消影起作用,很明显。void smg()//location位选,用到P2口,段选需要用到数组。别忘了参数的类型需要定义。switch(i)//位选。
2023-08-17 23:03:07
60
1
原创 动态数码管
void smg(unsigned char location,digit)//location位选,用到P2口,段选需要用到数组。别忘了参数的类型需要定义。//P0=0x00;//这个P0口清零,作用是消影,但是使用这一行代码后,单片机数码管的亮度很低。//case后面需要一个空格,Y8亮。//应用延时函数进行消影,但是在我的开发板上用与不用几乎没有作用。//别忘了段选后需要赋值给P0口。
2023-08-17 22:08:20
125
1
原创 静态数码管,利用Switch和数组,将数码管单独列为一个子函数
void smg(unsigned char location,digit)//location位选,用到P2口,段选需要用到数组。别忘了参数的类型需要定义。//case后面需要一个空格,Y8亮。//别忘了段选后需要赋值给P0口。
2023-08-17 21:18:09
108
1
原创 简单静态数码管
我曾对P2口位选的高低位定位不清楚,然后经过代码测试,发现P2口,P2-2是低位,P2_3是次低位,P2_4是高位。对于P0口的高低位也怀疑高低位的判断。高低位是通过P0口的位的大小来确定的嘛?P2_4口也是如此。//111对应十进制是7,就是给Y7赋低电平,即第八位数码管。//P2_2是低位,p2_3是次低位,P2_4是高位。//P0口进行段选,因为是共阴极数码管,阴极通过位选赋予了低电平,段选通过P0口赋予高电平。//位选,通过P2 2,3,4确定给哪个数码管赋低电平,只要确定,不需要自己赋低电平。
2023-08-17 19:59:46
68
1
原创 利用左右循环_cror和_crol_实现led的循环。(按下k1led左移一位,按下K2led右移一位)
1111 1110,0111 1111, 1011 1111,1101 1111,1110 1111, 1111 0111, 1111 1011, 1111 1101,1111 1110下面对应相应的P2口。//此函数虽然实现了led的右移,但是有时会跳过一个led灯。//加个延时函数,不然在松开的时候抖动,程序可能误判按键下了两次甚至多次,出现跳过一个led灯的现象。if(P3_1==0) //实现led左移,虽然是右移函数库,看下面的注释,二进制低电位右移,led灯左移。//判断k2是否松开。
2023-08-15 22:00:06
1445
2
原创 关于二进制LED等的亮灭问题,一是=号和==号,而是关于if条件语句的判断执行问题。
第二个问题就是主函数中的if条件语句,刚开始把下面的花括号省略了,程序没有实现想象中的功能,加上花括号就好了。//二进制加法 0000 0001 ,0000 0010 , 0000 0011 ,0000 0100 ,看出led亮灭高低电平刚好相反。{ //曾将if条件语句下面的花括号省略了,结果功能不能正常执行,加上就没有问题,还没有想明白这是因为什么,这个程序到底怎么执行的。if(P3_1==0)//该条件语句是判断k1是否按下,判断应该用==号,而我用成了=号。
2023-08-14 22:51:09
85
2
原创 51单片机在led闪烁程序中,使用延时函数,如果不传递参数就可以正常亮灭,一旦传递参数就无法实现。有大神指导一下嘛?
但是我用烧录软件直接生产100毫秒的延时函数直接替换掉,不传递参数,就可以完成闪烁。有大神能帮我看一下吗?这个程序是用STC-ISP直接生产的100毫秒的延时函数,LED灯可以正常亮灭。用烧录软件生成了一个1毫秒的延时函数,然后传递了一个参数,led完全没反应。
2023-08-13 23:27:50
118
3
原创 C Primer Plus十章10.7
#include<stdio.h>#define YEARS 5#define MONTHS 12int main(void){ const float rain[YEARS][MONTHS] =//const限定一個變量可讀,不可被改變。雖然被限定了,但是仍然是變量,不可當做常量 { {4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6},//每年每個月降雨量 {8.5...
2022-04-04 10:31:49
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人