久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于STC12C5A60S2單片機的點陣屏完工

作者:huqin   來源:本站原創   點擊數:  更新時間:2013年12月16日   【字體:








通過幾天的工作點陣屏終于完工,不過因為缺少元件只能算完成了一半。。。。。。
不想多說直接上C51程序代碼
//行掃1#74hc154芯片對應數據輸入口:P0^0->P0^3數據輸入控制口:P0^4低電平有效;行掃輸出為互斥低電平輸出;
//列掃1#74hc595芯片對應數據輸入口:P0^5移位寄存器時鐘信號;P0^6存儲寄存器數據更新時鐘;P0^7數據輸出使能,低電平時輸出有效;
//P2^0串行數據輸入
#include<reg52.h>//包函頭文件
#include<intrins.h>//包函_nop_延時函數的頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int//宏定義
////////////////////////////////////////////////////////////////////////////////
uchar code ZM000[]=
{
  //源文件 / 文字: 祝
  0x00,0x00,0x20,0x00,0x11,0xF8,0x01,0x08,
  0x79,0x08,0x09,0x08,0x11,0x08,0x11,0xF8,
  0x38,0x90,0x54,0x90,0x10,0x90,0x10,0x90,
  0x11,0x14,0x11,0x14,0x12,0x0C,0x00,0x00,
};
uchar code ZM001[]=
{
  //源文件 / 文字: 榮
  0x00,0x00,0x08,0x20,0x7F,0xFC,0x08,0x20,
  0x00,0x00,0x7F,0xFC,0x40,0x04,0x01,0x00,
  0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,
  0x19,0x30,0x61,0x0C,0x01,0x00,0x00,0x00,
};
////////////////////////////////////////////////////////////////////////////////
sbit HC154_A=P0^0;//HC154數據輸入口
sbit HC154_B=P0^1;//HC154數據輸入口
sbit HC154_C=P0^2;//HC154數據輸入口
sbit HC154_D=P0^3;//HC154數據輸入口
sbit G1=P0^4;//HC154使能端控制
sbit SH=P0^5;//HC595移位控制
sbit ST=P0^6;//HC595鎖存更新顯示
sbit OE=P0^7;//HC595使能端控制
sbit DS=P2^0;//HC595串行數據輸入
////////////////////////////////////////////////////////////////////////////////
void chushihua()       //硬件初始化
{
     OE=1;   //關閉HC595輸出
     G1=1;   //關閉HC154輸出
 }
////////////////////////////////////////////////////////////////////////////////
void delay(uint ms)//延時子程序
{
 uint x,y;
 for(x=ms;x>0;x--)
  for(y=0;y<240;y++);
}
////////////////////////////////////////////////////////////////////////////////
//低位先入
void sendbyte(uchar Rdate)//HC595串口輸入一個字節
{
 uchar a;
    uchar date=Rdate;
 for(a=0;a<8;a++)
 {
  SH=0;
  if(date&0x01)//先將最低位移入
  {
  DS=1;
        SH=1;
  }
  else
  {
  DS=0;
  SH=1;
  }
  date=date>>1;//輸入的字節位右移
 }
}
////////////////////////////////////////////////////////////////////////////////
void HC595_GX()     //HC595鎖存數據更新并輸出
{
    ST=0;
 _nop_();
 _nop_();
 ST=1;    //HC595鎖存數據更新
 _nop_();
 _nop_();
 OE=0;    //HC595輸出  
 }
////////////////////////////////////////////////////////////////////////////////
void HC154_HS(uint x)//X行低電平輸出
{
    G1=0;
    switch(x)
   {
    case 1:
      HC154_A=0;
      HC154_B=0;
      HC154_C=0;
      HC154_D=0;
      break;
     case 2:
      HC154_A=1;
      HC154_B=0;
      HC154_C=0;
      HC154_D=0;
      break;
     case 3:
      HC154_A=0;
      HC154_B=1;
      HC154_C=0;
      HC154_D=0;
      break;
     case 4:
      HC154_A=1;
      HC154_B=1;
      HC154_C=0;
      HC154_D=0;
      break;
     case 5:
      HC154_A=0;
      HC154_B=0;
      HC154_C=1;
      HC154_D=0;
      break;
     case 6:
      HC154_A=1;
      HC154_B=0;
      HC154_C=1;
      HC154_D=0;
      break;
     case 7:
      HC154_A=0;
      HC154_B=1;
      HC154_C=1;
      HC154_D=0;
      break;
     case 8:
      HC154_A=1;
      HC154_B=1;
      HC154_C=1;
      HC154_D=0;
      break;
     case 9:
      HC154_A=0;
      HC154_B=0;
      HC154_C=0;
      HC154_D=1;
      break;
     case 10:
      HC154_A=1;
      HC154_B=0;
      HC154_C=0;
      HC154_D=1;
      break;
     case 11:
      HC154_A=0;
      HC154_B=1;
      HC154_C=0;
      HC154_D=1;
      break;
     case 12:
      HC154_A=1;
      HC154_B=1;
      HC154_C=0;
      HC154_D=1;
      break;
     case 13:
      HC154_A=0;
      HC154_B=0;
      HC154_C=1;
      HC154_D=1;
      break;
     case 14:
      HC154_A=1;
      HC154_B=0;
      HC154_C=1;
      HC154_D=1;
      break;
     case 15:
      HC154_A=0;
      HC154_B=1;
      HC154_C=1;
      HC154_D=1;
      break;
     case 16:
      HC154_A=1;
      HC154_B=1;
      HC154_C=1;
      HC154_D=1;
      break;
    default:
      break;
  }
 }
////////////////////////////////////////////////////////////////////////////////
void OUT16x16(uchar code ZM[31])//輸出一個16x16點陣字模子程序
{
     uint y;//行掃數據控制
     uint x_H;//列高位數據控制
     uint x_L;//列低位數據控制
     for(y=1,x_H=0,x_L=1;y<=16;y++)
     {
       sendbyte(ZM[x_L]);
       sendbyte(ZM[x_H]);
       HC595_GX();
       HC154_HS(y);
       x_H+=2;
       x_L+=2;
       delay(1); 
     }
}
////////////////////////////////////////////////////////////////////////////////
void main()       //主函數
{
   uint x;
   while(1)
 {
       //輸出祝字
       for(x=0;x<5000;x++)
       {
       OUT16x16(ZM000);
       }
       //輸出榮字
        for(x=0;x<5000;x++)
       {
       OUT16x16(ZM001);
       }    
    }
   
 }
 

關閉窗口

相關文章

主站蜘蛛池模板: 四虎成人av| 欧美日韩精品一区二区三区蜜桃 | 精品久久久久久久久久久久久久久久久 | 欧美区日韩区 | 午夜精品| 午夜99 | 中文字幕一区二区三区在线乱码 | 这里只有精品999 | 成年人免费在线视频 | 欧美成人一区二区 | 国产一级毛片视频 | 狠狠久 | 欧美在线网站 | 又黑又粗又长的欧美一区 | 精品久 | 久草视 | 亚洲国产在 | 亚洲国产精品久久久久秋霞不卡 | 亚洲精品久久久久久久久久久 | 国内精品一区二区三区 | 中文字幕亚洲区一区二 | 一区二区三区国产精品 | 成人黄色在线观看 | 免费在线黄色av | 你懂的在线视频播放 | 精品国产一区二区三区久久久蜜月 | 日韩精品一区二区三区在线播放 | 成人免费精品视频 | 久久小视频 | 成人深夜福利 | 欧美精品久久久久 | 黄色大片在线 | 国产视频不卡一区 | 久久精品福利视频 | 国产在线精品区 | 欧美日韩亚洲系列 | 在线观看欧美日韩视频 | 成年人黄色一级毛片 | 韩日视频在线观看 | 一区二区三区高清不卡 | 欧美一区精品 |