资源简介
八位数码管显示程序,两片74HC595级联,数码管显示程序
代码片段和文件信息
// 两片74HC595级联,数码管显示程序。
// 一片用与传送8位数据信号,一片用于传送8个数码管的位选信号(低电平选中)。
// ary_disp_buf[8]:显示缓冲区
// 中断定时2ms 刷新数码管。
void timer1_interrupt() interrupt 3
{
static uchar scan_no = 0; // 定义显示序号
uchar key_temp;
uchar i;
TF1 = 0;
TH1 = 0xf8; // 定时 2ms
TL1 = 0xcd;
switch (scan_no)
{
case 0:
serial_to_parallel(0xfe ary_disp_buf[0]);
break;
case 1:
serial_to_parallel(0xfd ary_disp_buf[1]);
break;
case 2:
serial_to_parallel(0xfb ary_disp_buf[2]);
break;
case 3:
serial_to_parallel(0xf7 ary_disp_buf[3]);
break;
case 4:
serial_to_parallel(0xef ary_disp_buf[4]);
break;
case 5:
serial_to_parallel(0xdf ary_disp_buf[5]);
break;
case 6:
serial_to_parallel(0xbf ary_disp_buf[6]);
break;
case 7:
serial_to_parallel(0x7f ary_disp_buf[7]);
break;
default:
break;
}
if (scan_no++ >=7)
{
scan_no = 0;
}
}
void serial_to_parallel(high_byte low_byte)
{
uchar i;
uint value_word;
value_word = ((uint)high_byte << 8) + low_byte;
b_st_cp = 0;
for (i=0; i<16; i++)
{
b_sh_cp = 0;
b_de = value_word & 0x8000;
value_word = value_word << 1;
b_sh_cp = 1;
}
b_st_cp = 1; // 并行输出
} // 转换16位串行数据到并口
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1342 2009-06-17 13:56 74HC595_led.c
文件 66425 2014-04-24 12:06 74HC595_led.cPreview
----------- --------- ---------- ----- ----
67767 2
- 上一篇:Cmake从入门到精通pdf教程
- 下一篇:ad采样 Verilog
评论
共有 条评论