導航:首頁 > 操作系統 > ms8單片機

ms8單片機

發布時間:2023-05-28 01:51:54

『壹』 stm8s單片機編程

文件:main.c
用途:
注意:內部8M晶振
************************************************/

#include <iom128v.h>

unsigned char LED_table[]={0xFF,0x00,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0x00,0xFF,0x7E,0xBD,0xDB,0xE7,0xFF,0x00,0xE7,0xDB,0xBD,0x7E,0xFF,0x00};

用途:延時函數
注意:系統時鍾8M
************************************************/

void delay_1us(void) //1us延時函數
{
asm("nop");
}

void delay_nus(unsigned int n) //N us延時函數
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1us();
}

void delay_1ms(void) //1ms延時函數
{
unsigned int i;
for (i=0;i<1140;i++);
}

void delay_nms(unsigned int n) //N ms延時函數
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1ms();
}

void main(void)
{
unsigned char i=0;
PORTA = 0xFF;
DDRA = 0xFF;
DDRE=0XFF;
PORTE=0XFF;
while(1)
{
if(i==36) i=0;
PORTA = LED_table[i++];
delay_nms(80);
}
}

『貳』 請問單片機中的delay()的單位時間是什麼

單片機中的delay()的單位時間不是系統提供的,而是用戶自己編制的。

如果用循環語句實現的循環,沒法計算,但是可以通過軟體模擬看到具體時間,但是一般精精確延時是沒法用循環語句實現的。

如果想精確延時,一般需要用到定時器,延時時間與晶振有關系,單片機系統一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,後兩種的一個機器周期分別為1 μs和2 μs,便於精確延時。本程序中假設使用頻率為12 MHz的晶振。

最長的延時時間可達216=65 536 μs。若定時器工作在方式2,則可實現極短時間的精確延時;如使用其他定時方式,則要考慮重裝定時初值的時間(重裝定時器初值佔用2個機器周期)。

(2)ms8單片機擴展閱讀

單片機C語言程序中延時函數delay的原理是:僅僅執行一些,沒有實質性影響的所謂「無意義指令」,比如做比大小啊,做某個int的自加運算啊之類的。

單片機的有些程序需要調用延時程序,合理的安排循環次數以及空操作的個數方法:用匯編的話就根據你的當前晶振頻率去推算你的指令周期,然後結合需要延遲的時間。

編寫延遲程序,用C的話還是要看最後生成的匯編碼是什麼樣的了。最簡單的方法就是寫好程序以後再編譯器里軟模擬看時間。

單片機C語言延時需注意的問題:

標準的C語言中沒有空語句。但在單片機的C語言編程中,經常需要用幾個空指令產生短延時的效果。這在匯編語言中很容易實現,寫幾個nop就行了。

在keil C51中,直接調用庫函數:

#include // 聲明了void _nop_(void);

_nop_(); // 產生一條NOP指令

作用:對於延時很短的,要求在us級的,採用「_nop_」函數,這個函數相當匯編NOP指令,延時幾微秒。NOP指令為單周期指令,可由晶振頻率算出延時時間,對於12M晶振,延時1uS。對於延時比較長的,要求在大於10us,採用C51中的循環語句來實現。

『叄』 對於8M單片機,0.5ms約可以執行多少條指令

如果是MCS-51單片機,8M晶冊賀振的話,機器周期為1.5us,0.5ms等於50us
1、如果執行單周期指令,那麼可以執行33條
2、如果執行雙周期指令的話,那麼和森可以執行16條。
3、如果執行4周期的話喚姿畝,那麼可以執行8條。

『肆』 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)

單片機流水燈C語言程序的源代碼如下:

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8個流水燈依次全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp>>=1;

}

void delay(uint t) //定義延時函數

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(4)ms8單片機擴展閱讀

51單片機流水燈的源代碼如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

『伍』 在單片機中如何用8個發光管演示出8位二進制數字自減過程(用c語言)

#include"reg51.h"

voiddelay(unsignedintms)

{

unsignedchari;

while(ms--)for(i=110;i--;i>0);

}

//-------------------------

voidmain()

{

unsignedcharabc=0;

while(1){

P1=abc;//在P1口外接8個LED,低電平發光.

abc++;//加,負邏輯將顯示為自減.

delay(500);//延時,供觀察現象.

}}

=============================================

要求由最高位P0^0作為二進制的最高位。

這個新要求,可以在焊接LED器件的時候進行調整。

更改一下程序,也不難,如下:

#include"reg51.h"

unsignedcharbdataabc=0,bbb;

sbita0=abc^0;

sbita1=abc^1;

sbita2=abc^2;

sbita3=abc^3;

sbita4=abc^4;

sbita5=abc^5;

sbita6=abc^6;

sbita7=abc^7;

sbitb0=bbb^0;

sbitb1=bbb^1;

sbitb2=bbb^2;

sbitb3=bbb^3;

sbitb4=bbb^4;

sbitb5=bbb^5;

sbitb6=bbb^6;

sbitb7=bbb^7;

voiddelay(unsignedintms)

{

unsignedchari;

while(ms--)for(i=110;i--;i>0);

}

voidmain()

{

while(1){

b0=a7;

b1=a6;

b2=a5;

b3=a4;

b4=a3;

b5=a2;

b6=a1;

b7=a0;

P1=bbb;

//P1=abc;//在P1口外接8個LED,低電平發光.

abc++;//加,負邏輯將顯示為自減.

delay(500);//延時,供觀察現象.

}}

『陸』 單片機程序 8個發光二極體間隔500ms由上至下,再由下至上,再重復一次,然後全部熄滅再以800ms間隔全部閃

循環7次,使如耐P1口分別為0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe也就是LED循環由高到低流水燈芹稿顯示渣首春。

閱讀全文

與ms8單片機相關的資料

熱點內容
陽光車險的app叫什麼名字 瀏覽:461
購買單片機的器件時需要給商家啥 瀏覽:534
並行編譯技術的發展 瀏覽:547
阿里雲伺服器安裝管理 瀏覽:548
java手機開發教程 瀏覽:672
我的世界怎麼刪除伺服器數據 瀏覽:669
linux內存子系統 瀏覽:971
加密思維幣 瀏覽:690
魅族訪客文件夾 瀏覽:52
添加的文件夾怎麼找 瀏覽:617
程序員涉黃 瀏覽:700
maven編譯resources下的js 瀏覽:521
ubuntu文件移動命令 瀏覽:229
安卓i怎麼查找蘋果手機 瀏覽:951
雲伺服器宕機概率 瀏覽:232
在線買葯用什麼app知乎 瀏覽:815
ubuntu解壓xz文件 瀏覽:676
宏傑加密時電腦關機 瀏覽:390
自己寫單片機編譯器 瀏覽:600
單片機按鍵閃爍 瀏覽:382