一、目标
二、原理
数码管按段数可分为七段数码管和八段数码管;按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到VCC,当某一字段发光二极管的阴极为低电平时,对应字段就点亮,当某一字段的阴极为高电平时,对应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。按照数字或者字母的特定可以进行数码管显示字段组合进而显示数字或者字母。
三、硬件
打开GW1N-4K-LQFP144-16原理图,可以看到开发板上使用的是共阳极显示方式。从原理图上看,D1、D6、D16、D21四个PNP管,构成四位数码管的公共端,控制四个PNP导通就能控制显示哪个数码管亮,即LED_DIS_SEL4、LED_DIS_SEL3、LED_DIS_SEL2、LED_DIS_SEL1为位选信号端口。数码管的段选端口为LED_DIS_A、LED_DIS_B、LED_DIS_C、LED_DIS_D、LED_DIS_E、LED_DIS_F、LED_DIS_G、LED_DIS_DP。
四、软件
编写数码管驱动程序。
1、产生1Hz时钟
`define UD #1 //在引用已定义的宏名时,必须在宏名的前面加上符号“`”,表示该名字是一个经过宏定义的名字.
//宏定义不是Verilog HDL语句,不必在行末加分号。如果加了分号会连分号一起进行置换
//宏名和宏内容必须在同一行中进行声明。如果在宏内容中包含有注释行,注释行不会作为被置换的内容
module div_clk(
input sys_clk,//系统时钟 50Mhz
output clk_1hz //1Hz时钟
);
reg [25:0] time_cnt = 0;//用于保存分频计数保存
always @(posedge sys_clk)
begin
if(time_cnt == 26'h2faf080-1'b1)
time_cnt <= `UD 26'd0;
else
time_cnt <= `UD time_cnt + 1'b1;
end
reg flag = 0;//用于产生正负信号标志
//分频,产生1Hz时钟
always @(posedge sys_clk)
begin
if(time_cnt == 26'h2faf080/2-1'b1)
flag <= `UD 1'b1;
else if(time_cnt == 26'h2faf080-1'b1)
flag <= `UD 1'b0;
end
assign clk_1hz = flag;
endmodule
2、数码管驱动显示。
/*
数码管显示实验,进行每秒显示不同的数字
4个数码管
*/
`define UD #1 //延时1个时间单位
module SEG(
input sys_clk,//系统时钟
output [3:0]dig,//位选
output reg[7:0]smg//数码管段码
);
wire clk_1hz; //变量
div_clk u_div_clk
(
.sys_clk(sys_clk),
.clk_1hz(clk_1hz)
);
reg [3:0]counter = 0;
always @(posedge clk_1hz)
begin
if(counter == 4'd15)
counter <= `UD 4'd0;
else
counter <= `UD counter + 1'b1;
end
//共阳极
assign dig = 4'b1110; //显示一位
//0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80,0x90
//显示部分 共阳极,为0有效
always @(*)
begin
case(counter)
4'd0:smg = 8'hc0;//数字0
4'd1:smg = 8'hf9;//数字1
4'd2:smg = 8'ha4;//数字2
4'd3:smg = 8'hb0;//数字3
4'd4:smg = 8'h99;//数字4
4'd5:smg = 8'h92;//数字5
4'd6:smg = 8'h82;//数字6
4'd7:smg = 8'hf8;//数字7
4'd8:smg = 8'h80;//数字8
4'd9:smg = 8'h90;//数字9
default:smg = 8'hc0;//数字0
endcase
end
endmodule
五、实验现象
见附件
引用: 怀揣少年梦 发表于 2021-12-14 17:19 附件上传与此。
视频可以上传到大学堂:https://training.eeworld.com.cn/,然后直接嵌入
引用: nmg 发表于 2021-12-15 09:42 视频可以上传到大学堂:https://training.eeworld.com.cn/,然后直接嵌入
多谢指教