標(biāo)題: 單片機(jī)16*16點(diǎn)陣 源程序 注釋詳細(xì) 原理圖與Proteus仿真 字模工具VB6工程源代碼 [打印本頁]

作者: 51黑電子迷    時間: 2017-5-7 21:20
標(biāo)題: 單片機(jī)16*16點(diǎn)陣 源程序 注釋詳細(xì) 原理圖與Proteus仿真 字模工具VB6工程源代碼
下面是單片機(jī)16*16點(diǎn)陣的proteus仿真原理圖(工程文件可到本帖附件中下載):


仿LED點(diǎn)陣字模的VB6工程源代碼:


單片機(jī)16*16點(diǎn)陣源程序如下:
  1. #include <reg51.h>                  // 預(yù)處理命令
  2. #include <stdio.h>
  3. #define uint unsigned int
  4. #define u8 unsigned char
  5. //u8                Lsd[16]={0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
  6. u8                j=0;  //行變量
  7. //32字節(jié)的字模
  8. u8        code        zmdata[]=
  9.                                         {0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,
  10. 0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04};
  11. sbit        sd        =        P1^6;        // 行信號串行輸入線
  12. sbit        clk        =        P1^7;  //  串行時鐘線
  13. sbit        stbd=        P1^5;        // 鎖存輸出脈沖線
  14. main() {                              // 主函數(shù)
  15.                 u8        i;
  16.         SCON=0x00;        //移位方式
  17.                 TMOD=0x01;        //T0初始化為16位定時
  18.                 TH0=0xf8;        //定時2000us
  19.                 TL0=0x30;  //初值=65536-2000
  20.                 ET0=1;           //開定時器1中斷
  21.                 EA=1;          //開總中斷

  22.                 //初始化位選,讓16個行輸出是高電平,
  23.                 sd=1;         //         初始化串行輸入數(shù)據(jù)線為高電平
  24.                 clk=1;        //        初始化時鐘線為高電平
  25.                 stbd=0;        //        初始化鎖存線為低電平
  26.                 for(i=0;i<16;i++)  //移位16次,使移位寄存器輸出全部為高電平
  27.                 {
  28.                         clk=0;
  29.                         clk=1;

  30.                 }
  31.                 clk=0;                //使時鐘線為低電平
  32.                 //把移位寄存器的16位進(jìn)行輸出鎖存
  33.                 stbd=1;
  34.                 stbd=0;

  35.                 TR0=1; //開啟T0定時器
  36.                 while(1);

  37.      }                                            // 主程序結(jié)束

  38. void  T0str() interrupt  1
  39.   {
  40.                   TL0=0x30;
  41.                 TH0=0xf8;        //定時器初值2ms
  42.                 j++;                //行加1
  43.                 if(j==16)
  44.                 {
  45.                         j=0;  //行范圍是0--15
  46.                         sd=0;
  47.                 }
  48.                 else
  49.                 {
  50.                         sd=1;
  51.                 }
  52.                 TI=0;                   //串行通信發(fā)送標(biāo)志置0
  53.                 SBUF=zmdata[2*j+1];         //移位輸出高位
  54.                 while(!TI);
  55.                 //移位輸出完成
  56.                 TI=0;
  57.                 SBUF=zmdata[2*j];          //移位輸出低位
  58.                 while(!TI);
  59.                 //移位輸出完成
  60.                 //sd=Lsd[j];        //
  61.                 clk=1;                //發(fā)移位脈沖
  62.                 clk=0;
  63.                 stbd=1;                ////發(fā)脈沖點(diǎn)亮當(dāng)前行
  64.                 stbd=0;


  65.    }                                            // max函數(shù)結(jié)束
  66.    // 中
  67. //0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x41,0x04,0x41,0x04,0x41,0x04,0

  68. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼



給大家分享一些我們老師給的一些經(jīng)典的單片機(jī)程序源碼, 一共有十多個.都有詳細(xì)的注釋,然大家快速的理解每一行代碼的意思。而且有proteus仿真原理圖。大家可以直接驗(yàn)證程序的對錯.


本系列所有源碼打包下載地址(含proteus仿真工程文件和源程序):
http://www.torrancerestoration.com/bbs/dpj-82474-1.html

本例程下載:
點(diǎn)陣.rar (271.37 KB, 下載次數(shù): 32)







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