51单片机学习
1.18
芯片缺口对应基座上的字母.
仿真器usb口朝向数码管方向
1.19
led灯
P2_x值为0时亮.
工作原理:
二极管一头接电源,一头接IO口.当IO口输出电平为0时二极管单向导通
独立按键P3_x值为0时表示按键.
工作原理:独立按键一头接地,一头接IO口.当IO口的输出电平为0时表示独立按键被按下.
注意:独立按键按下时弹片会震动10ms左右,留足时间.
数码管
数码管可以分成74HC138译码器模块和动态数码管模块.
74HC138译码器
由于译码器出口的8个口仅能有一位为1,因此可以用3个IO口控制
74HC245
数码管在74HC245会反过来
数码管不能在同一时刻显示多个数字,一次只能控制一个,多了会串线.
如:abc(1110 0000)代表P0=0x07(0000 0111)

表示数码管第几位函数如下(仅对该单片机有效)
1 | void led_turn(int x) |
对于数码管的abcdef
切记先将P0初始化
1 | void led_num_turn(char x) |
模块化编程
1 | //a.h |
1.27
矩阵键盘
编写了MatrixKey.c
了解了unsigned char 和int 相互转换可能出问题
2.6
lcd1602
通过输入指令在显示器上显示.

将字母由点阵形式表示.
常用字符代号存储在CGROM中,可在DDRAM写入字符代号,即可.
若字符未被存储在CGROM中,可进行自定义.

其中LCD WR ,LCD RS , LCD EN 处于P2_5,P2_6,P2_7
LCD D01234567 位于P0口
1 | sbit LCD_RS = P2^6; |
写入数据到DDRAM
1 | void LCD_WriteData(unsigned char Data) |
中断
通过向中断寄存器写入数据,来进行操作.

1 | // 定时器0中断 |

1 | //定时器0中断 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.