51单片机数码管显示19
时间: 2023-07-02 08:18:17 浏览: 137
下面是使用51单片机实现数码管显示19的代码:
```c
#include <reg52.h>
// 数码管位选和段选控制端口定义
sbit DIGIT1 = P2^0;
sbit DIGIT2 = P2^1;
sbit SEG_A = P1^0;
sbit SEG_B = P1^1;
sbit SEG_C = P1^2;
sbit SEG_D = P1^3;
sbit SEG_E = P1^4;
sbit SEG_F = P1^5;
sbit SEG_G = P1^6;
sbit SEG_DP = P1^7;
// 数码管显示的数据和位选控制
unsigned char digit_code[2] = {0xC0, 0xF9}; // 显示1和9的编码
unsigned char digit_select[2] = {0x01, 0x02}; // 数码管位选控制
// 数码管显示函数
void display(unsigned char digit, unsigned char num) {
P1 = digit_code[num];
switch (digit) {
case 1: DIGIT1 = 0; DIGIT2 = 1; break;
case 2: DIGIT1 = 1; DIGIT2 = 0; break;
default: DIGIT1 = 1; DIGIT2 = 1; break;
}
}
// 主函数
void main() {
while (1) {
display(1, 1); // 显示1
display(2, 9); // 显示9
}
}
```
在上面的代码中,通过将数码管的位选和段选控制端口连接到51单片机的对应引脚,实现了数码管的显示。数码管的显示采用了共阴数码管,通过位选和段选实现了显示数字1和9的效果。
阅读全文