當前位置:首頁 » 編程語言 » 試用c51語言編寫程序實現
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

試用c51語言編寫程序實現

發布時間: 2023-03-19 08:05:48

⑴ 設單片機系統如何編寫一個完整的C51程序使P1.6和P1

設單片機系統編寫一個完整的C51程序使P1.6和P1,可以使用正確編碼加上解壓即可。

⑵ 使用C51編寫程序實現如下功能,將40H~4FH共16個RAM單元的信息初始化為30H,要求

char * pRam; /毀李空/定義一個指針

pRam = 0x40; //賦地址給一個指纖瞎針
然擾鉛後
for(i=0;i<0x10;i++)
( *(pRam+i) = 0x30;}
就是了

⑶ 單片機C51語言中用switch語句來實現,怎麼寫這個功能

switch((left<蠢宏帶<4)|right)

{

case 0x00:led_left=1;led_right=1;break;

帶蘆絕遲 case 0x01:led_left=0;led_right=1;break;

case 0x10:led_left=1;led_right=0;break;

case 0x11:led_left=1;led_right=1;break;

}

⑷ 試用C51及匯編語言編程序,實現將50H至5FH共16個RAM單元初始化為「a8」的功能

匯編程序如下:
MOV50H,#0A8H
MOV51H,#0A8H
MOV52H,#0A8H
。。。 。。。共 16 行,你補齊即可。
MOV5FH,#0A8H
END

⑸ 怎麼用c語言/C51程序實現單片機按鍵長按開機與長按關機

1.
首先需要硬體支持,也就是單片機某個引腳可以控制斷電和維持上電
2.
按鍵的的作用也可以給單片機供電,並且還要有個專門的引腳檢激咐測按鍵狀態逗鉛仿。
3.
軟體:首先是長按判斷。這個最好用按鍵掃描。就是檢測按鍵按下時候,定時器計時,如果松開就立即清零。在設置一個功能函數檢測定時值,大於兩秒後,就表示長按。
4.
按鍵按下單片機供電開始計時,如果達到長按標准,就輸出引腳控制持續供電,這時候按鍵鬆了也不會斷電。
5.
運行期間,按鍵再次按下並符合長按,那木引腳輸出停止供電,這時候如果按鍵松開,那就徹底沒電關山纖機。

⑹ 試用51單片機C51編寫一電腦鍾程序,定時器用方式2中斷處理實現

第一問比較簡單,拓展功能比較繁瑣,要考慮閏年的影響,計算復雜一些。
以下是簡單的時鍾:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a=0;//中斷次數

uchar sec=0,min=0,hour=0;//時分秒
uchar date=1,mon=1, year=19;//年月日,年只計算後2 位,如2019,只考慮19
uchar tablemon[12]={31,28,31,30,31,30,31,31,30,31,30,31};//每月有多少握臘臘天,2月按28天考慮
void main(void )//主程序
{
TMOD=0x01;// 定時器0工作方式一,方式2一次只能定時256us,中斷太頻繁 ,不建議段滑使用
ET0=1;
EA=1;
TH0=(65536-50000)/256;//定時50ms
TL0=(65536-50000)%256;
TR0=1;
while(1)
{ dislpay();}//顯示子程序,與硬體連接有關
}
//中斷局好子程序
void Timer0(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20) {a=0;sec++;}//20次是1秒
if(sec==60) {sec=0;min++;}
if(min==60) {min=0;hour++;}
if(hour==24){hour=0;date++;}
if(date>tablemon[ mon-1]){date=1;mon++;}
if(mon==13){mon=1;year++;}
}

⑺ 單片機,c51匯編語言編寫程序

SUBDATA:
CLRC
MOVA,41H
SUBBA,43H
MOVA,40H
SUBBA,42H
JCSUBD1
MOV44H,40H
MOV45H,41H
MOV46H,42H
MOV47H,43H
RET
SUBD1:
MOV44H,42H
MOV45H,43H
MOV46H,40H
MOV47H,41H
RET

⑻ C51單片機怎麼用C語言實現數值的開方和平方運算

C51是基於標準的C語言擴展而來的,所以,標准C語言能做的東西,C51也可以。

平方運算,自不必說,就是兩個數相模歲乘:

例如:float a,b,c; c = a*b;

開方,則需要用到庫函數:

標准c語言里用的如碼虧是 sqrt()函數,這個函數包含在math.h文件中。

所以:

#include <math.h>

c = sqrt(a);

就渣神可以了

⑼ 用C51語言寫一個完整的程序,實現將內部RAM地址40H和50H單元相加,保存到60H存儲單元!~

#include<陸森臘悔reg51.h>早局畝
sfr xda=0x40;
sfr yda=0x50;
sfr rel=0x60;
main()
{
rel=xda+yda;
while(1){};
}

⑽ 試用C51語言編寫將0-9,A-F轉換成相應的ASII碼程序,求大神解答,最好能有點注釋,謝謝!!

轉換ASCII沒什麼東西ASCII碼中0對應值0x301對應0x31依次
直接算就行了所以這個程序寫成來是沒什麼注釋寫的

//1位16進制值轉ASCII
unsignedcharhextoASCII(unsigned型沖chara)
{
if(a<9)
{
returna+0x30;
}
else
{
租租謹弊基returna+0x41;
}
}