導航:首頁 > 源碼編譯 > 警示燈源碼程序

警示燈源碼程序

發布時間:2022-10-10 04:16:56

單片機led燈循環點亮程序

有個電路,才好設計。

㈡ 急求單片機紅綠燈的匯編語言程序設計

去買一本書吧!單片機原理與應用,你可能還不雜個會吧,這個你得慢慢來,只要你把那本書學會了差不多你能看會了,你可能還很年輕吧,要慢慢來,別人給你說沒的意思的,年輕嘛慢慢來,我也是這樣來的,我看過你這個還是簡單的,我是搞儀表的,你看看我的程序吧!!! 十分之一
文件名:*******.ASM
;* 型號 : M603-VA
;* 產品名稱:4位三相電流/電壓表
;* PCB硬體:M603-3P-VA-01(01)/M603-3P-VA-03(01)
;* 實現功能:(1)可測三相三線電壓/電流
;(2)對輸入電流/電壓值做任意刻度顯示
;* 版本號: 第1.0版
;* 起草日期:2006.3.30 最後修改日期: 2006.8.16
;* 修改日誌:
;* V1.1 解決測量漂移問題
;* 完善1:LiuQK-2007.1.1
;* 1、增加RS485通訊功能
;* 2、增加變送功能
;* 3、增加上下限報警
;//////////////////////////////////////////////////////////////
ORG 0000
AJMP MAIN

ORG 0003H;INT0中斷入口地址停電保存
;ljmp irq_int0
NOP
NOP
LJMP Err;程序飛跑,轉到處理程序,重新啟動.
ORG 000BH;T0中斷入口, 用於顯示定時
LJMP IRQ_t0
NOP
NOP
LJMP Err;程序飛跑,轉到處理程序,重新啟動.
ORG 0013H;INT1中斷口地址
LJMP IRQ_int1
NOP
NOP
LJMP Err;程序飛跑,轉到處理程序,重新啟動.
ORG 001BH;T1中斷入口 用於A/D轉換
ljmp irq_t1
NOP
NOP
LJMP Err;程序飛跑,轉到處理程序,重新啟動.
ORG 23H
LJMP IRQ_UART;用於RS-485通訊
NOP
NOP
LJMP Err
org 002bh ;D/A
ljmp irq_t2
nop
nop
LJMP Err

;////////////////////////////////////////////////
;主程序從MAIN開始 執行
;////////////////////////////////////////////////
;////////////////////////////////////////////////
;STC單片機附加功能宏定義
P4 DATA 0e8h;P4口地址
WDT_CONTR DATA 0E1H;看門狗控制地址
AUXR DATA 8EH ;只寫寄存器,只能用MOV AUXR,#DATA 命令. 用於控制擴展RAM和使能ALE.
AUXR1 DATA 0A2H;本寄存器用於數據指針選擇://=0 選擇DPTR0 , =1 選擇DPTR1 //
XICON DATA 0C0H;特殊功能寄存器申明
;89C52定時器T2
;T2CON DATA 0C8H
;TH2 DATA 0CDH
;TL2 DATA 0CCH
;RCAP2H DATA 0CBH
;RCAP2L DATA 0CAH
;RL2 BIT 0C8H.0
;CT2 BIT 0C8H.1
;TR2 BIT 0C8H.2
;EXEN2 BIT 0C8H.3
;TCLK BIT 0C8H.4
;RCLK BIT 0C8H.5
;EXF2 BIT 0C8H.6
;TF2 BIT 0C8H.7
;ET2 BIT 0A8H.5
;PT2 BIT 0B8H.5
ORG 35h

MAIN: mov r0,#0Ffh
FILL: clr a
MOV @R0,A
DJNZ R0,FILL;(填充)初始化RAM內的數據全部為00H。
mov psw,#0
MOV SP,#80H;堆棧指針
MOV AUXR,#00
MOV CHECK_CODE,#0AAH
ACALL DATA_CHECK;數據校驗
; setb 21h.0;置儀表起動標志
;EA中斷允許,ET1中斷允許,ET0中斷允許
SETb ea ;EA中斷允許

setb IT1;INT1中斷方式是負邊沿觸發方式
setb it0;INT0中斷方式是負邊沿觸發方式

mov pcon,#00h;
SETB PT0

CLR PX0
CLR PT1
CLR PX1
;SETB PX1
setb et0;T0中斷允許
setb ET2
JNB 25H.2,IE_1
LCALL R_LOAD;載入波特率
mov t2con,#34h
setb p1.0;將485置為接收狀態
mov scon,#0D0h;初始化並啟動串口
SETB ES;開中斷
SETB PS;串口中斷優先
CLR PS
sjmp ie_OK

ie_1: JNB 25H.1,IE_OK
mov RCAP2H,#0ffh
mov RCAP2L,#0ffh
mov t2con,#04h
SETB PT2

IE_OK: SETB 20H.0 ;儀表啟動標志
mov 2fh,#0;
lcall ie_ch;啟動通道
;clr p1.2
;clr p1.3

;/////////////////////////////////////////////////
;/顯示程序/
main2: ;啟動看門狗以及定時時間為4S
MOV WDT_CONTR,#34H
setb et0
setb tr0
main20: JB 20H.7,MAIN3;查看A/D是否運行
lCALL IE_SET ;啟動測量初始化
SETB 20H.7 ;測量啟動標記
main3: ;A.數據校驗
ACALL DATA_CHECK;數據校驗
;B.測量頻率計算
ACALL CY_HZ;計算
;C.顯示比例值計算
acall dis_scale
;D:計算平均值
acall Hz_av
;E:上下限報警
ACALL ALARM_OUTPUT
;F:RS485通訊/變送輸出
LCALL COMMUNICATION

;g:按鍵處理
LCALL SETKEY
LCALL SHIFTKEY
LCALL DOWKEY
LCALL ATKEY

;h:BCD碼轉換
ACALL bcdCode;bcd碼轉換

AJMP MAIN2;重新回到MAIN2

;//////////////////////////////////////
;A/D轉換采樣啟動程序
IE_SET: MOV 1eH,#4;INT1不中斷等待次數
MOV 1fH,#0;T0定時循環次數
MOV 1cH,#0;采樣脈沖個數緩沖器
MOV 1dH,#0
MOV TMOD,#00010001B;T1,T0為16位定時器.
;再次初始化T1;int1
setb ea;再次啟動中斷
setb et1
clr tr1
mov tl1,#0
mov th1,#0
setb tr1
CLR IE1; 清除int1中斷標志
SETB EX1;開啟INT1中斷
RET

;********************
;測量通道設置
ie_ch: push dpl
push dph

ie_ch1: mov a,2fh
ie_ch2: rl a;左移
cjne a,#7,ie_ch20;A/D轉換共5次循環
ie_ch20: jc ie_ch21
clr a
ie_ch21: mov dptr,#ie_ch3
jmp @a+dptr
nop
nop
;通道循環表
ie_ch3: sjmp ie_offset ;零點偏移測量;0
sjmp ie_pa;A相過程值1
sjmp ie_pb;B相過程值2
sjmp ie_pc;C相過程值3
nop
nop

;4051 地址引腳排列 (9) (10 ) (11) 為地址 A2(c) A1(b) A0(a).
;CPU控制引腳: (Gnd) (p1.6) (p1.7)
;地址對應關系:000-- 0 0 0------PC通道(13PIN)
;001---0 0 1-----PB通道(14PIN)
;002---0 1 0-----PA通道(15PIN)
;003---0 1 1-----offset通道(12PIN)
;004---0-----GND
;005---0-----GND
;006---0-----GND
;007---0-----GND

;PA測量
ie_pa: nop
;功能檢查
setb p1.6
clr p1.7
ie_ch_com: pop dph
pop dpl
ret
nop

;PB測量
ie_pb: setb p1.7
clr p1.6
sjmp ie_ch_com
;PC測量
ie_pc: CLR p1.7
clr p1.6
sjmp ie_ch_com

;零點偏移OFFSET測量0通道,硬體連接4051 的13引腳
ie_offset: SETB p1.7
SETB p1.6
sjmp ie_ch_com
nop
nop

;**************************
;頻率計算
NOSWAP:
RET
nop
CY_HZ: JNB 3EH,NOSWAP;無采樣結束標志
CLR 20H.7;清除測量掛起標記
CLR 3EH;清除測量結束標記

;T0中斷次數浮點數轉換

cy_hz_1: CLR 3CH
MOV R2,#0
MOV R3,1fh
MOV R1,#08H
LCALL INTF;浮點數存儲08H 09H 0AH

;T0中斷次數計算成時間周期;每中斷1次時間為65536uS
MOV 0BH,#17;65536
MOV 0CH,#80H
MOV 0DH,#00H
MOV R0,#0BH
LCALL FMUL;
mov r1,#08h
LCALL FSTR;存儲08H 09H 0AH
;T0剩餘時間浮點數轉換
MOV R3,1Bh
MOV R2,1Ah
MOV R1,#0BH
LCALL INTF;T0內檢測到的時間轉換浮點數存入0BH
;計算超出定時60mS以外的時間周期
MOV R0,#08H
CLR 3AH
LCALL FABP;T0+08H內時間和
LCALL FSTR;存儲0BH,0CH 0DH
;計數總時間周期
MOV 08H,#18;65.535*2mS
MOV 09H,#80H
MOV 0AH,#0h
CLR 3AH
LCALL FABP;定時時間+T0+30H得到檢測總時間
LCALL FSTR;存儲0BH 0CH 0DH

;---------------------------------------
;在定時周期內采樣到的脈沖個數轉換成浮點數
MOV R2,1ch;測量周期個數轉換浮點數
MOV R3,1dH
mov r1,#08h
Lcall intf;數據存放在08H 09H AH
;計算頻率值
MOV R0,#08H
MOV R1,#0bH
LCALL Fdiv;頻率
LCALL FSTR;存儲0b 0c 0d
mov 08h,#20
mov 09h,#0f4h
mov 0ah,#24h
Lcall fmul
; Lcall fstr

mov a,2fh
jnz time_1
;(零點測量)
; mov 10h,0bh
; mov 11h,0ch
; mov 12h,0dh
MOV R1,#10H
; lcall fstr
sjmp TIME_4
nop
nop
time_1: ; mov r0,#0bh
; mov r1,#10h
; setb 3ah
; Lcall fabp
mov a,2fh
cjne a,#1,time_2
;第二次采樣值存放到30H 31H 32H 地址(PA過程值測量)
; mov 36h,0bh
; mov 37h,0ch
; mov 38h,0dh

mov r1,#30h
; Lcall fstr
sjmp time_4
; nop
; nop

time_2: cjne a,#2,time_3
;第3次采樣值存放33H 34H 35H (PB過程值測量)
; mov 33h,0bh
; mov 34h,0ch
; mov 35h,0dh
mov r1,#33H
; Lcall fstr
Sjmp time_4
;第4次采樣值存放36H 37H 38H (PC過程值測量)
time_3: MOV R1,#36H
setb 20h.6;置A/D轉換結束標志,用於過程值計算
INC 0EH;A/D轉換計數器,用於延遲報警/數據刷新
; mov 30h,0bh
; mov 31h,0ch
; mov 32h,0dh
TIME_4: LCALL FSTR

;通道切換
TIME_COM: INC 2FH
mov a,2fh
cjne a,#4,time_COM0
time_COM0: jc time_COM1
mov 2fh,#0
time_COM1: acall ie_ch
ret

㈢ vivado編譯LED燈程序總是報錯

AR# 53028
2012.x Vivado - "ERROR: [Common 17-39] 'launch_xsim' failed e to earlier errors"

Description
Solution
Linked Answer Records

Description
I have a design in the Vivado tool which I want to run a behavioral simulation with different parameters. For this task, I have created some simulation runs with different names as follows:
"sim1 model_PCIe"
"sim2"
"sim3(model_GTX)"
However, when I attempt to run the simulation, the following error appears:
"ERROR: [Common 17-39] 'launch_xsim' failed e to earlier errors"
Why does this occur?
Solution
This is a known issue that occurs in Vivado when a simulation run that contains blank or empty spaces in the name is executed.
In this case, for the run "sim1 model_PCIe"
To avoid this problem, remove the spaces as follows: "sim1_model_PCIe".
This issue is fixed in the Vivado 2013.1 tool.

㈣ 單片機plc霓虹燈程序設計

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

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/*****************************************************************************/
void delay(unsigned int a)
{
unsigned int i;
while(--a!=0)
{
for(i=0;i<600;i++);
}
}
void Main()
{
uint i,j,a=0xff,b=0xff;

// while(1)
{
for(i=0;i<8;i++)
{
a>>=1;
P0=a;

delay(100);
}
for(j=8;j>0;j--)
{
b<<=1;
P0=~b;

delay(100);
}

}
}

㈤ 設計一個具有8個LED燈,要求從右向左依次點亮一秒後熄滅,循環往復的單片機程序。跪求

#include"reg52.h"//此文件中定義了單片機的一些特殊功能寄存器

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

typedef unsigned char u8;

//LED燈命名

sbit leda=P0;

sbit led1=P0^0;

sbit led2=P0^1;

sbit led3=P0^2;

sbit led4=P0^3;

sbit led5=P0^4;

sbit led6=P0^5;

sbit led7=P0^6;

sbit led8=P0^7;

void delay(u16 i)

{

while(i--);

}

void main()

{

while(1)

{

leda=1;//全部燈亮

//從左到右依次熄滅

led1=0;

delay(50000);//大約延時450ms

led2=0;

delay(50000);//大約延時450ms

led3=0;

delay(50000);//大約延時450ms

led4=0;

delay(50000);//大約延時450ms

led5=0;

delay(50000);//大約延時450ms

led6=0;

delay(50000);//大約延時450ms

led7=0;

delay(50000);//大約延時450ms

led8=0;

delay(100000);//大約延時900ms

//從右到左依次點亮

led8=1;

delay(50000);//大約延時450ms

led7=1;

delay(50000);//大約延時450ms

led6=1;

delay(50000);//大約延時450ms

led5=1;

delay(50000);//大約延時450ms

led4=1;

delay(50000);//大約延時450ms

led3=1;

delay(50000);//大約延時450ms

led2=1;

delay(50000);//大約延時450ms

led1=1;

delay(50000);//大約延時450ms

leda=1;//全部燈亮

}

}

(5)警示燈源碼程序擴展閱讀:

main()應用:

1、C++中的main函數

C++繼承了C語言的大部分特性,因此保留了「程序總是從main函數開始執行,且總是默認從main函數的return語句或結尾處結束運行」這一傳統,

但是要注意,C++中的main函數要想作為程序執行的出入口,必須寫在全局(Global)范圍,不能寫成某個結構體或某個類的成員。

雖然main函數可以作為結構體或者類的成員函數,但相應地會失去作為程序出入口的功能。

C++中全局main函數的書寫格式與C語言完全相同,功能也完全相同,且同一C++程序同樣只能有一個全局main函數。

2、java中的main函數

Java同樣是以main函數作為程序執行出入口的,但Java作為「更純潔」的面向對象語言,它的main函數與C/C++有很大的不同。

首先,返回值的概念淡化,在Java Application中main不允許返回值,因此int main是被禁止的,必須使用void main,int main僅限在JavaBean中使用。

其次,Java中所有的函數必須屬於類,沒有什麼全局函數一說,因此main函數不能是全局成員,必須是某個類的成員。

第三,由於main函數變成了類的成員函數,因此要想直接被系統調用,還必須使用public static使其成為靜態函數並具有公開許可權。

第四,main函數的參數被簡化,只需要提供字元串數組即可,不需要提供參數個數(這是由於Java的數組具有下標檢查功能的原因)

Java Application中的main函數一般格式如下(類名可以自定義,但保存為Java源碼時,主文件名必須與類名相同,否則可能無法運行)

public class MainDemo{

public static void main(String[]args){

//TODO:在此處寫入主函數的內容

}

}

Java Applet的運行機制與Java Application完全不同,因此不需要main函數

3、C#中的main函數

C#中的main函數與Java大同小異,同樣必須是類成員,同樣使用字元串數組作唯一參數,同樣是靜態函數,同樣的void main,

與之不同的是:main的首字母變成了大寫,即"Main函數「,且是否限定為public級別已經無所謂了(默認沒有public,但某些場合可能還是需要public)

另外,需要注意的是,C#中不再有」類名必須與主文件名同名「的限制,即使類名不和主文件名相同,程序照樣可以運行。

C#應用程序中的main函數默認是這樣的(注意main的首字母已是大寫)

C#和C/C++、java不同的是C#不在拘泥於必須從main()函數開始執行,C#是屬於事件觸發。

class Program{

static void Main(string[]args){

//TODO:在此處寫入主函數的內容

}

}

㈥ 使用Java做一個走馬燈,源代碼

importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.Font;
importjava.awt.HeadlessException;
importjava.awt.Point;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.ComponentAdapter;
importjava.awt.event.ComponentEvent;

importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JViewport;
importjavax.swing.Timer;

{
privateTimertimer;
privateJLabelview;
privateJViewportwindow;

publicstaticvoidmain(String[]args)
{
JFramefrm=newTest84("跑馬燈");
frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}

publicTest84(Stringtitle)throwsHeadlessException
{
super(title);

initComponents();

addComponentListener(newComponentAdapter(){
publicvoidcomponentResized(ComponentEvente)
{
anchor=newPoint();
anchor.x=-window.getExtentSize().width;
timer.start();
}
});

timer=newTimer(100,newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
animate();
}
});
timer.setInitialDelay(0);
}

privatevoidinitComponents()
{
Strings=JOptionPane.showInputDialog(null,"請輸入要實現效果的文字:");
view=newJLabel(s);
view.setFont(Font.decode("Dialog-BOLD-36"));
view.setForeground(Color.BLUE);

window=newJViewport();
window.setView(view);
getContentPane().add(window);
}

Pointanchor;
privatevoidanimate()
{
DimensionextSize=window.getExtentSize();
DimensionviewSize=view.getPreferredSize();
anchor.x+=5;//設置移動的速度
window.setViewPosition(anchor);
if(anchor.x>viewSize.width)
anchor.x=-extSize.width;
}
}

㈦ 單片機流水燈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++);

}

(7)警示燈源碼程序擴展閱讀

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);

}

}

}

閱讀全文

與警示燈源碼程序相關的資料

熱點內容
pythonshell清屏命令 瀏覽:276
檢測到加密狗注冊伺服器失敗 瀏覽:201
解壓後手機如何安裝 瀏覽:518
極客學院app為什麼下架 瀏覽:13
圖片批量壓縮綠色版 瀏覽:651
東北程序員帥哥 瀏覽:707
加密封條風噪小 瀏覽:974
安陽少兒編程市場 瀏覽:499
雲伺服器建設原理 瀏覽:259
javajunit4for 瀏覽:847
華為伺服器如何進陣列卡配置 瀏覽:435
apache伺服器ip地址訪問 瀏覽:719
如何買到安卓手機預裝軟體 瀏覽:537
冤罪百度雲不要壓縮 瀏覽:88
蘇州雲存儲伺服器 瀏覽:177
解壓收納原聲 瀏覽:386
java注冊驗證 瀏覽:377
火花app怎麼上推薦 瀏覽:981
什麼app能游戲投屏到電視上 瀏覽:455
伺服器託管到雲端是什麼意思 瀏覽:836