任务:单片机连接8位共阳极数码管,编程显示8个相同的数字。
数字显示:数码管(7-8个led)最便宜,点阵led(64 8*8),液晶
七段数码管一共8个发光二极管,顺时针a-->g ,最右边的点是dp。
两种数码管(共阳与共阴)用法不同:数码管都可以显示数字以及个别英文字母,通用性比较好,但交叉的字母不可以。
共阴:1.公共端接地(前提)com--->0 2.字段:亮-->1 灭-->0 正逻辑控制
共阳:1.公共端接高电位,一般为5v(前提)com--->1 2.字段:亮-->0 灭-->1 反逻辑控制
我们还要说到多位数码管的结构特点:字段共用,公共端独立,可以节省接口线。有几位数码管就有几个公共端。注意公共端起到位选的作用,即哪一个灯亮。字段(segment)起到显示字形的作用。
在proteus中输入7seg找数码管,后面的数字代表位数。CA是共阳,CC时共阴。common公共,Anode阳极,Cathode阴极。
我们还需要接入三极管放大器,达到放大电流的作用提高数码管亮度,因为直接接单片机上太暗了,仿真软件看不出来,实际操作会有影响。输入not找到三极管。
注意接线时P2.7接高位,P2.0接低位。在公共端左-->右 高位-->低位(左边是高位)。
如果线路不好错开,因为线是按格子走的,所以可以修改格子大小,方法如下:
但需要注意我们选择的数码管是共阳,所以公共端需要是高电位1,又因为三极管非门,起到取反作用,所以应为0算控制字
/*************************
项目名称:项目二简易电子表
任务名称:任务2-1数码管静态显示
任务描述:单片机连接8位共阳极数码管,编程显示8个相同的数字
*************************/
#include<reg51.h>
//51单片机寄存器定义头文件
void main(){
P2=0x00;0000 0000==>1111 1111全选中
P0=0xf8;//显示7
}
/*****************************************************************************/
再来实现两头显示两个五
/*************************
项目名称:项目二简易电子表
任务名称:任务2-1数码管静态显示
任务描述:单片机连接8位共阳极数码管,编程显示8个相同的数字
*************************/
#include<reg51.h>
//两头两个显示5
//51单片机寄存器定义头文件
void main(){
P2=0x3c;
P0=0x92;
}
/*****************************************************************************/
奇数位显示2:
/*************************
项目名称:项目二简易电子表
任务名称:任务2-1数码管静态显示
任务描述:单片机连接8位共阳极数码管,编程显示8个相同的数字
*************************/
#include<reg51.h>
//奇数位显示2
//51单片机寄存器定义头文件
void main(){
P2=0x55;
P0=0xa4;
}
注意:如何修改proteus的格子大小呢?
点击view视图
选择任何一个snap,就可以修改格子大小了