資源簡介
八位數碼管顯示程序,兩片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
評論
共有 條評論