51單片機程序匯總(三)

2020-08-27 無卒小輩

/*********************************************

** 普中科技 **

** 點陣實驗 **

** 說明:P0控制行,輸出低電平有效; **

** 595輸出控制列,輸出高點平有效。 **

*********************************************/

34;reg51.h&include<intrins.h>

sbit SRCLK=P3^6;

sbit RCLK=P3^5;

sbit SER=P3^4;

/*******************************************************************************

* 函數名 : Hc595SendByte(unsigned char dat)

* 函數功能 : 想74H595發送一個字節的數據

* 輸入 : 無

* 輸出 : 無

*******************************************************************************/

void Hc595SendByte(unsigned char dat)

{

unsigned char a;

SRCLK=0;

RCLK=0;

for(a=0;a<8;a++)

{

SER=dat>>7;

dat<<=1;

SRCLK=1;

_nop_();

_nop_();

SRCLK=0;

}

RCLK=1;

_nop_();

_nop_();

RCLK=0;

}

void main(void)

{

Hc595SendByte(0x00);

while(1)

{

P0=0xdf;

Hc595SendByte(0x80);

}

}

注意:在做這項實驗時候,需要將JOEGND短接。這樣做的目的是將OE端電平拉為低電平。

/**************************************************************************************

* 8*8LED點陣———顯示數字實驗 *

實現現象:下載程序後點陣上顯示數字0

注意事項:一定要將JOE短接片短接到GND端,如果不需要595後面的小燈點亮可以拔掉JP595短接片。

***************************************************************************************/

34;reg51.h&include<intrins.h>

typedef unsigned int u16; //對數據類型進行聲明定義

typedef unsigned char u8;

sbit SRCLK=P3^6;

sbit RCLK=P3^5;

sbit SER=P3^4;

u8 ledduan[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};

u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

/*******************************************************************************

* 函 數 名 : delay

* 函數功能 : 延時函數,i=1時,大約延時10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}

/*******************************************************************************

* 函數名 : Hc595SendByte(u8 dat)

* 函數功能 : 向74HC595發送一個字節的數據

* 輸入 : 無

* 輸出 : 無

*******************************************************************************/

void Hc595SendByte(u8 dat)

{

u8 a;

SRCLK=0;

RCLK=0;

for(a=0;a<8;a++)

{

SER=dat>>7;

dat<<=1;

SRCLK=1;

_nop_();

_nop_();

SRCLK=0;

}

RCLK=1;

_nop_();

_nop_();

RCLK=0;

}

/*******************************************************************************

* 函 數 名 : main

* 函數功能 : 主函數

* 輸 入 : 無

* 輸 出 : 無

*******************************************************************************/

void main()

{

u8 i;

while(1)

{

P0=0x7f;

for(i=0;i<8;i++)

{

P0=ledwei[i]; //位選

Hc595SendByte(ledduan[i]); //發送段選數據

delay(100); //延時

Hc595SendByte(0x00); //消隱

}

}

}

相關焦點

  • 51單片機程序匯總(四)
    /*************************************************************************************** 外部中斷0實驗 *實現現象:下載程序後按下K3按鍵可以對D1小燈狀態取反。
  • 51單片機程序匯總(一)
    /*************************************************************************************** 點亮第一個LED實驗 *實現現象:下載程序後D1指示燈點亮注意事項:無 ***********
  • 51單片機程序匯總(二)
    /*************************************************************************************** 靜態數碼管顯示實驗 *實現現象:下載程序後數碼管靜態顯示0。
  • 51單片機程序存儲器擴展
    在單片機的擴展中,要分別考慮程序存儲器及數據存儲器的擴展。存儲器是單片機系統中使用最多的外擴晶片,對80C51系列單片機而言,由於程序存儲器與數據存儲器的空間在物理空間上的各自獨立性,使得兩者的擴展方法略有不同。
  • 帶詳細注釋的51單片機CS1237電子秤源程序
    工程硬體平臺:    1,51Core-V1.0(51單片機最小系統板)                2,差分ADC模塊-CS1237                3,稱重傳感器模塊                4,OLED顯示器0.96寸,4PIN工程程序版本:51單片機廚房(藥房)秤方案 V1.0.0.0
  • 51單片機程序下載、ISP及串口基礎知識
    本文詳細介紹了串口、51單片機的ISP下載等基礎知識,已經學過單片機的也可以看看,加強一下對這方面的了解。 串口 串行接口簡稱串口,也稱串行通信接口,是採用串行通信方式的擴展接口。一方面USB接口負責給單片機供電,另一方面,USB轉TTL或RS232轉TTL已經集成的學習板上。 51單片機程序的燒寫 我們最常見的51單片機是美國Atmel公司生產的AT系列單片機和中國宏晶公司生產的STC系列單片機。
  • 基於proteus的51單片機開發實例24-矩陣鍵盤(行列式鍵盤)
    基於proteus的51單片機開發實例24-矩陣鍵盤1.1.)的電路設計、編程實現。我們知道,51單片機總共只有4個8位I/O口,如果外部電路功能較多,I/O口就會不夠用,例如如果電路中接了一個8位數碼管,又接了16個按鍵,那麼即使數碼管採用動態掃描法 也需要佔用16個I/O口(8位I/O口用於連接數碼管8個段,另8位I/O口用於控制8位數碼管的每一位),這時如果按鍵還是採用獨立按鍵的接法
  • 學習單片機,為什麼我建議你從51單片機開始
    因此經過我的教學經驗,如果想開始學習單片機,最好從51單片機開始學起,我都推薦STC系列的51單片機學習。原因就是一句話,因為51系列單片機簡單,學習起來也簡單。但是簡單不代表它功能少,51單片機雖然簡單,但體系是完備的。所以當你學會51單片機,會非常快速入門其它單片機學習。
  • 51單片機下載程序的(RXD TXD)連線方式
    首先我們在下載程序自己我們需要安裝開發板USB轉串口CH340驅動,安裝成功後我們還需要下載STC程序燒錄工具,下載完成後打開目錄如下所示以上的準備工作做好之後我們就來連線,把51單片機和USB轉串口工具(下載線)連接起來。可能你們會好奇,51開發版需要接線嗎?不是集成好的嗎?
  • 51單片機基礎(5)
    256位元組而沒有更高位的地址線需要給定;(3)程序存儲空間,地址範圍0~65535,(僅可)使用MOVC指令配合作為基地址的存於DPTR中的16位地址或當前PC中的16位地址和事先傳送到累加器A中的8位變地址進行基址變址方式的只讀訪問;2、內部和外部數據存儲器的區分不在於數據存儲器位於單片機內部或外部,而是在於數據存儲器與
  • 圖形化編程玩51單片機(十五)模擬工廠裡的產品掃描計數器實驗二
    【使用說明】:選用51單片機實驗板上的S2和S3鍵。其中S2用於模擬代替掃描開關,當有產品經過時,會使S2送出低電平(本程序中是用手按下S2來模擬)S2每按一下,便會使數碼管上的計數器加一,達到一億的時候全部清零,重新計數。S3用於對計數手動清零。
  • 51單片機之計時器與計數器
    CPU時序的有關知識 振蕩周期:為單片機提供定時信號的振蕩源的周期(晶振周期或外加振蕩周期) 狀態周期:2個振蕩周期為1個狀態周期,用S表示。振蕩周期又稱S周期或時鐘周期。例如:外接晶振為12MHz時,51單片機相關周期的具體值為:振蕩周期=1/12us;狀態周期=1/6us;機器周期=1us;指令周期=1~4us;初始化程序應完成如下工作:對TMOD賦值,以確定T0和T1的工作方式。
  • 51單片機軟體程序復位
    51單片機軟體復位彙編代碼 POP ACC ; pop return address本文引用地址:http://www.eepw.com.cn/article/201611/318163.htm POP
  • 51單片機程序進行軟體加密和硬體解密的方法
    由於固化在片外EPROM 裡的單片機程序容易複製,所以,如不在技術上採取保護措施,則程序中所採用的處理方法易被他人分析仿製。
  • MCS-51單片機的結構和工作原理
    3.1.3 片內ROM存儲器的配置形式及應用環境:① MCS-51單片機內程序存儲器的配置形式有三種:掩模ROM型   (由廠家一次寫入,成本低)EPROM型      (由用戶可反覆寫入,成本較高)無ROM型       (需在片外擴展)
  • 基於proteus的51單片機開發實例30-模塊化程序設計
    基於proteus的51單片機開發實例30-模塊化程序設計1.1.設計思路本實例的設計思路是:將《基於proteus的51單片機開發實例29-單總線DS18B20的讀寫》中的程序代碼按照延時功能、LCD1602液晶顯示功能、DS18B20的讀寫控制功能這三個部分,使用模塊化程序設計的方法,將這三個部分分別封裝為三個.c和.h文件
  • 單片機初學者輕鬆入門之(十一):定時器製作流水燈
    在單片機的定時/計數器不夠用時,可以考慮進行擴展。一、MCS-51單片機定時器結構(一)MCS-51單片機定時器結構MCS-51單片機內部有兩個16位的可編程定時/計數器,由TH1、TL1、TH0、TL0、TCON、TMOD等6個特殊功能寄存器組成,如圖所示。
  • 51單片機、STM32單片機、PIC單片機性能對比
    51單片機 應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由Intel推出,由於其典型的結構和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統,堪稱為一代「經典」,為以後的其它單片機的發展奠定了基礎。
  • 51單片機—步進電機程序
    4相5線的步進電機,在51hei單片機開發板上用uln2003驅動,此程序可實現正反轉和加減速功能。c語言源程序#include sbit p10=P1^0;sbit p11=P1^1;sbit p12=P1^2;sbit p13=P1^3;sbit p32=P3^2;//減速sbit p33=P3^3
  • 51單片機C語言延時函數
    以某晶振為12MHz的單片機為例,晶振為12MHz即一個機器周期為1us。子程序調用 2us + 子程序返回 2us + R7賦值 1us = 5us延時總時間 = 三層循環 + 循環外 = 499995+5 = 500000us =500ms計算公式:延時時間=[(2*R5+3)*R6+3]*R7+5二. 200ms延時子程序程序:void delay200ms(void){