欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機電梯keil文件 [打印本頁]

作者: 正直士真正    時間: 2018-12-25 08:54
標題: 單片機電梯keil文件
/*******************************************************************************
* 文件名:    MAX7219_Drive_Matrix.c
* 作  者:    Robbie
* 日  期:    13-September-2017
* 摘  要:    本程序實現MAX7219點亮點陣二極管功能      
********************************************************************************/
#include <REG51.H>
#include <intrins.h>
//宏定義
#define uchar unsigned char
#define uint unsigned int
//位變量定義
sbit DIN = P2^0;
sbit LOAD = P2^1;
sbit CLK = P2^2;
/*********************全局變量定義************************/
//定義位碼數組,掃描位碼寄存器:數字0~數字7
uint code DIG_Array[]=      
{0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700,0x0800};
//定義顯示數字‘1’段碼數組
uchar code Seg1_Array[]=
{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08};
//定義顯示數字‘2’段碼數組
uchar idata Seg2_Array[]=          //片內256字節區域存儲數據,code區域只能存放常量,data區域存儲空間太小
{0x00,0x3C,0x42,0x04,0x08,0x10,0x20,0x7E};
/********************函數聲明********************/
void Send_LED(uint);      //向MAX7219發送數據
void MAX7219_Init(void);  //MAX7219初始化
void Clr(void);           //MAX7219清空
void Matrix_Scroll(uint*,uchar*); //向右顯示滾動字符
void DelayMS(uint);        //延時以毫秒計
/********************函數定義********************/
void main()
{
MAX7219_Init(); //初始化
Clr(); //清空數字寄存器
//顯示滾動文字
while(1)
{
  Matrix_Scroll(DIG_Array,Seg2_Array);
}
}
/***************************************************************************
**函 數 名:MAX7219發送函數
**函數功能:向MAX7219串行發送命令或數據,先發送高位,再發送低位
**輸    入:待發送16位數據
**輸    出: 無
**硬件連接:P2.0->DIN,P2.1->LOAD,P2.2->CLK
****************************************************************************/
void Send_LED(uint n)
{
   uint i;
   LOAD = 0;   //載入數據引腳復位
   //向DIN引腳傳送16位數據,傳送數據先送高位
   for(i=0x8000; i>=0x0001; i>>=1)
   {
     CLK = 0;
  if((n&i)==0){DIN = 0;}
  else{DIN = 1;}
  CLK = 1;
   }
   
   LOAD = 1;   //載入數據引腳上升沿,將16位數據鎖存
}
/***************************************************************************
**函 數 名:MAX7219初始化函數
**函數功能:MAX7219進行初始化配置
**輸    入:無
**輸    出: 無
**硬件連接:P2.0->DIN,P2.1->LOAD,P2.2->CLK
****************************************************************************/
void MAX7219_Init()
{
Send_LED(0x0c01);  //停機寄存器正常
Send_LED(0x0A0f);  //設置亮度
Send_LED(0x0b07);  //設置LED掃描范圍,DIG0~7
Send_LED(0x0900);  //設置為不譯碼方式
}
/***************************************************************************
**函 數 名:MAX7219清空函數
**函數功能:將MAX7219數字0~7寄存器的段碼值清空
**輸    入:無
**輸    出: 無
**硬件連接:P2.0->DIN,P2.1->LOAD,P2.2->CLK
****************************************************************************/
void Clr()
{
uint i;
for(i=0x0800; i>=0x0100; i-=0x0100)
{
  Send_LED(i);
}
}
/***************************************************************************
**函 數 名:點陣滾動函數
**函數功能:在點陣屏上向右滾動顯示指定段碼
**輸    入:段碼數組
**輸    出: 無
**硬件連接:P2.0->DIN,P2.1->LOAD,P2.2->CLK
****************************************************************************/
void Matrix_Scroll(uint* dig_array,uchar* seg_array)
{
uchar i,j;
for(j=0; j<8; j++)
{
  for(i=0; i<8; i++)
  {
   Send_LED(dig_array|seg_array);
   seg_array=_cror_(seg_array,1);  //段碼數組循環右移1位
  }
  DelayMS(150);  //延時200ms  
}
}         
/***************************************************************************
**函 數 名:延時函數
**函數功能:延時指定毫秒數
**輸    入:待延時毫秒數
**輸    出: 無
**硬件連接:無
****************************************************************************/
void DelayMS(uint ms)  [url=]//@11.0592MHz[/url]
{
uint i=0,j=0;

for(i=0; i<ms; i++)
  for(j=0;j<123;j++);
}




作者: admin    時間: 2018-12-25 12:47
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1