久久久久久久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);
       }    
    }
   
 }
 

關閉窗口

相關文章

主站蜘蛛池模板: 午夜视频在线观看一区二区 | 国产精品一区二区久久久久 | 欧美在线一二三 | 成人网视频| 亚州春色| 日韩免费视频一区二区 | 日韩成人一区 | 欧美综合视频在线 | 综合久久久久久久 | 午夜影院在线视频 | 91免费在线视频 | 一级一片在线观看 | 91亚洲精品久久久电影 | 久久99国产精品 | 亚洲va欧美va天堂v国产综合 | 国产精品久久久久久久一区二区 | 日韩精品成人免费观看视频 | 久操av在线 | 久久99深爱久久99精品 | 国产乱码精品一区二区三区av | 中文字幕一区二区三区在线乱码 | 激情五月激情综合网 | 国产福利在线视频 | 高清黄色网址 | 亚洲色图综合 | 视频1区| 日韩高清国产一区在线 | 精品国产一区二区国模嫣然 | 成人精品一区二区三区 | 日韩第一夜 | 亚洲精品中文字幕中文字幕 | 亚洲精品在线观看视频 | 亚洲成人久久久 | 国产精品亚洲第一区在线暖暖韩国 | av一区二区三区四区 | 欧美成人免费在线视频 | 日本在线网站 | 成人1区2区 | 性色综合 | 久久久蜜桃 | 自拍中文字幕 |