數碼管的51例程,大家想要的拿走
單片機源程序如下:
- /*------------------------------------------------------------------------------------
- * 項目名稱:
- 1位74HC595數碼管顯示模塊測試程序
- * 功能描述:
- 1、動態顯示各個數字
- * 版權信息:
- (c) 飛翼電子, 2014.
- * 歷史版本:
-
- 2014-11-1:
- - 初始版本 V1.0.0;
- * 配置說明:
- - 編譯前,請根據硬件連接配置MCU與模塊的通訊接口
- -------------------------------------------------------------------------------------*/
- /************************包含頭文件***************************************************/
- #include<reg52.h>
- #include "display.h"
- #include "74hc595.h"
- #define ARRLEN 8 //定義數組長度常量
- /**************************全局數組***************************************************/
- extern unsigned char code Number_arr[10]; //引用在Display.c文件中定義的數組
- extern unsigned char code Seg_test[8]; //引用在Display.c文件中定義的數組
- /*************************************************************************************
- *函數名:Delay(unsigned char time)
- *功 能:延時函數
- **************************************************************************************/
- void Delay(unsigned char time)
- {
- int i,j,k;
- for(i=0;i<time;i++)
- for(j=0;j<50;j++)
- for(k=0;k<90;k++)
- {
- ;
- }
- }
- /*************************************************************************************
- *函數名:DelayMs(unsigned char time)
- *功 能:延時函數
- **************************************************************************************/
- void DelayMs(unsigned char time)
- {
- int i,j;
- for(i=0;i<time;i++)
- for(j=0;j<25;j++)
- {
- ;
- }
- }
- /************************主程序*******************************************************/
- void main()
- {
- unsigned char i,j;
- unsigned char dis[ARRLEN]={0,0,0,0,0,0,0,0}; //要顯示的數組
- unsigned char disDecode[ARRLEN]={0}; //保存譯碼后的數組
-
- DisplayInterfaceInit(); //初始化接口
-
- //上電清屏
- for(i=0;i<ARRLEN;i++) //把要顯示的數組賦值為0
- { //為下一步清屏用
- disDecode[i]=0x00;
- }
- DisplayOneArray(disDecode,ARRLEN); //上電清屏作用
-
- //打開顯示
- DisplayOn();
- Delay(30);
- //點亮所有位的所有段
- for(i=0;i<ARRLEN;i++) //把要顯示的數組賦值為0xFF
- {
- disDecode[i]=0xFF;
- }
- DisplayOneArray(disDecode,ARRLEN); //讓所有段都亮
- Delay(50);
- //循環顯示
- while(1)
- {
- //循環單獨顯示每一段
- for(i=0;i<8;i++) //控制顯示每一段
- {
- for(j=0;j<ARRLEN;j++)
- {
- disDecode[j]=Seg_test[i]; //對i譯碼為每一段,賦值顯示數組
- }
- DisplayOneArray(disDecode,ARRLEN); //賦值完成后開始顯示
- Delay(10); //顯示延時
- }
-
- //循環顯示0-9數字
- for(i=0;i<10;i++) //控制從0顯示到數字9
- {
- for(j=0;j<ARRLEN;j++)
- {
- disDecode[j]=Number_arr[i]; //對i進行譯碼,賦值顯示數組
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
03-例程.zip
(66.66 KB, 下載次數: 4)
2018-5-9 10:52 上傳
點擊文件名下載附件
|