基于51單片機和74LS47簡單的數碼管靜態顯示,用51單片機連接四個74LS47模塊,每個模塊連接一個數碼管。調了很長時間,調出來了,很不容易,但是理解了就挺簡單。對自認為有很大幫助。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (13.47 KB, 下載次數: 19)
下載附件
2020-4-16 00:48 上傳
具體程序如下:
- //數碼管動態顯示
- //74LS164(移位寄存器)
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit DAT=P1^6; //數據輸入
- sbit CLK=P1^7; //時鐘使能
- unsigned char disp[4];
- unsigned code dtab[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
- //共陽極接法0~9段碼表(上)
- void disp_164() //一位顯示164移位輸出函數
- {
- uchar x,i,j;
- for(i=0;i<4;i++) //循環4次(4個數碼管)
- {
- x=dtab[disp[i]]; //查表取段碼
- for(j=0;j<8;j++)
- {
- if(x&0x01) //先移出低位
- DAT=1;
- else DAT=0;
- CLK=1; //產生上升沿
- x>>=1;
- CLK=0;
- }
- }
- }
- void main()
- {
- disp[0]=8;
- disp[1]=7;
- disp[2]=6;
- disp[3]=5;
- disp_164();
- while(1);
- }
復制代碼
51hei.png (4.28 KB, 下載次數: 33)
下載附件
2020-4-16 00:50 上傳
全部資料51hei下載地址:
例6-10數碼管.zip
(47.85 KB, 下載次數: 20)
2020-4-15 20:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|