導航:首頁 > 操作系統 > 用一用單片機程序

用一用單片機程序

發布時間:2022-08-07 11:24:36

A. 用51單片機寫一個程序

幾個數碼管?學號怎麼定義?對串口發送數據按照什麼格式?不說詳細了這個沒法做啊

B. 用51單片機編寫個小程序

#include <reg52.h>
#include "delay.h"
#include "lcd1602.h"

sbit SCK = P2^0;//sbit定義單片機的特殊功能寄存器變數
sbit SDA = P2^1;
bit ack = 0;//bit定義變數

void iic_start()
{
SDA = 1;
SCK = 1;
delay_us(1);
SDA = 0;
delay_us(1);

SCK = 0;//鉗住匯流排,等待下次使用
}

void icc_stop()
{
SDA = 0;
SCK = 1;
delay_us(1);
SDA = 1;
delay_us(1);

SCK = 0;//鉗住匯流排,等待下次使用
}

void iic_send_byte(unsigned char byte)
{
unsigned char i;
for(i = 0;i<8;i++)
{
SDA = byte & 0x80;//非0為1
SCK = 1;
delay_us(1);
SCK = 0;
byte <<=1;//左移一位
}
SDA = 1;
SCK = 1;
delay_us(1);
if(0 == SDA)//有應答
ack = 0;
else //無應答
ack =1;

SCK = 0;//鉗住匯流排,等待下次使用
}

unsigned char iic_rcv_byte()
{
unsigned char i,temp;
SDA = 1;
for(i = 0;i < 8;i ++)
{
SCK = 0;
delay_us(1);
SCK = 1;
delay_us(1);
temp <<= 1;
if(SDA)
temp = temp+ 1;
}
SCK = 0;
return temp;
}

void iic_ack()
{
SDA = 0;
SCK = 1;
delay_us(1);

SCK = 0;
}
void iic_noack()
{
SDA = 1;
SCK = 1;
delay_us(1);

SCK = 0;
}

void AT_send_str(unsigned char deviceaddr,unsigned char romaddr,unsigned char *s,unsigned char num)
{
unsigned char i;
iic_start();

iic_send_byte(deviceaddr);
if(ack == 1)
return;
iic_send_byte(romaddr);
if(ack == 1)
return;
for(i = 0;i < num; i ++)
{
iic_send_byte(*s);
if(ack == 1)
return;
s++;
}
icc_stop();
}

void AT_rcv_str(unsigned char deviceaddr,unsigned char romaddr,unsigned char *s,unsigned char num )
{
unsigned char i;
//SDA = 1;
iic_start();

iic_send_byte(deviceaddr);
if(ack == 1)
return;
iic_send_byte(romaddr);
if(ack == 1)
return;
iic_start();
iic_send_byte(deviceaddr + 1);
if(ack == 1)
return;
for(i = 0;i < num - 1; i++)
{
*s = iic_rcv_byte();
iic_ack();//
s++;
}
*s = iic_rcv_byte();
iic_noack();
icc_stop();
}

void main()
{
unsigned char i;
unsigned char testbuf[20] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,16,17,18,19};
unsigned char rcvbuf[20];
lcd_init();
AT_send_str(0xae,0,testbuf,10);
delay_ms(200);
AT_rcv_str(0xae,0,rcvbuf,10);
for(i = 0;i < 10; i++)
{
display_lcd_char(i,0,rcvbuf[i]+0x30);
}
while(1);
}

C. 用C語言編寫單片機程序

#include
sbit
csb_SAT=
P1^0;
//定義超聲波發生腳
void
delay(void)
//延時25微秒,12T晶元用12M誤差
0us
{
unsigned
char
a;
for(a=11;a>0;a--);
}
void
csb_fs(int
dat)
{while(dat--){csb_SAT=1;delay();csb_SAT=0;delay();}}
//發射
void
main()
{
EA=1;
while(1)
{
csb_fs(10);
delay();delay();delay();delay();delay();delay();delay();delay();delay();
IE=0x83;
//INT0允許中斷
while(IE);
P1_1=1;delay();P1_1=0;delay();P1_1=1;delay();P1_1=0;delay();P1_1=1;delay();P1_1=0;delay();
}
}
void
int0_chuankou(void)
interrupt
0
using
1
//外部INT0中斷子程序
{
IE=0;//禁止INT0中斷
}

D. 用51單片機寫一個程序,求大神

1、使用定時器0方式二,結合軟體計數器來實現秒信號的產生;
2、定時器必須使用中斷的方式來實現;
3、使用單片機開發板上的左邊四位來掃描顯示時間,顯示格式為「MM.SS」;
4、開機時顯示00.00,最大值顯示到59.59(59分59秒);
5、第一次按電路板上K1(P3.2)鍵啟動走時,K1必須使用中斷方式實現;
6、第二次按K1暫停走時,數碼管顯示按鍵時刻的當前值;
7、第三次按K1時,在上一次停止的時刻繼續走時;第四次按時暫停,如此反復;
8、任何時候按電路板上K2(P3.3)時,顯示內容清零,重新顯示「00.00」,時間停止。K2鍵必須使用中斷方式實現。
大神加油啊!!

E. 求一個單片機程序用C++寫

單片機程序C兩個+寫這不懂啊,是屬於外行。

閱讀全文

與用一用單片機程序相關的資料

熱點內容
浪潮伺服器如何做系統 瀏覽:109
冒險島img格式加密 瀏覽:572
我的世界手游如何復制命令 瀏覽:657
天刀自動彈琴腳本源碼 瀏覽:968
打開其它app微信怎麼收不到 瀏覽:447
安卓游戲耳機怎麼戴 瀏覽:18
不越獄怎麼去除app廣告 瀏覽:178
ipadminipdf閱讀 瀏覽:506
文件夾無限制壓縮會不會降低內存 瀏覽:412
榮耀怎樣創建文件夾 瀏覽:631
如何用本機登陸遠程伺服器地址 瀏覽:682
黃小鴨解壓文具盒 瀏覽:672
女程序員的轉行方法 瀏覽:884
東風啟辰車聯網安裝文件夾 瀏覽:526
華為怎麼設置app時間鎖 瀏覽:662
後宮app視頻怎麼下載 瀏覽:527
如何把圖片轉換從PDF格式 瀏覽:261
重寫和重載的區別java 瀏覽:236
expressvpnandroid 瀏覽:86
儲存卡被加密怎麼解除 瀏覽:171