单片机程序求注释

作者&投稿:扶帖 (若有异议请与网页底部的电邮联系)
单片机程序求完整注释,会注释的帮我一下,谢谢~

给你一个更加完整的程序


SECOND1 EQU 30H ;东西路口计时寄存器
SECOND2 EQU 31H ;南北路口计时寄存器
LED_G1 BIT P2.2 ;东西路口绿灯
LED_Y1 BIT P2.3 ;东西路口黄灯
LED_R1 BIT P2.4 ;东西路口红灯
LED_G2 BIT P2.5 ;南北路口绿灯
LED_Y2 BIT P2.6 ;南北路口黄灯
LED_R2 BIT P2.7 ;南北路口红灯
ORG 0000H
LJMP START
ORG 0100H
START: MOV TMOD,#01H ;置T0为工作方式1
MOV TH0,#3CH ;置T0定时初值50ms
MOV TL0,#0B0H
CLR TF0
SETB TR0 ;启动T0
CLR A
MOV P1,A ;关闭不相关的LED
LOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s
MOV R3,#20 ;红灯亮20s
MOV SECOND1,#25 ;东西路口计时初值25s
MOV SECOND2,#25 ;南北路口计时初值25s
LCALL DISPLAY
LCALL STATE1 ;调用状态1
WAIT1: JNB TF0,WAIT1 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,WAIT1 ;判断1s到否?未到继续状态1
MOV R2,#20 ;置50ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT1 ;状态1维持20s
MOV R2,#5 ;置50ms计数初值 5*4=20
MOV R3,#3 ;绿灯闪3s
MOV R4,#4 ;闪烁间隔200ms
MOV SECOND1,#5 ;东西路口计时初值5s
MOV SECOND2,#5 ;南北路口计时初值5s
LCALL DISPLAY
WAIT2: LCALL STATE2 ;调用状态2
JNB TF0,WAIT2 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R4,WAIT2 ;判断200ms到否?未到继续状态2
CPL LED_G1 ;东西绿灯闪
MOV R4,#4 ;闪烁间隔200ms
DJNZ R2,WAIT2 ;判1s到否?未到继续状态2
MOV R2,#5 ;置50ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT2 ;状态2维持3s
MOV R2,#20 ;置50ms计数初值
MOV R3,#2 ;黄灯闪2s
MOV SECOND1,#2 ;东西路口计时初值2s
MOV SECOND2,#2 ;南北路口计时显示2s
LCALL DISPLAY
WAIT3: LCALL STATE3 ;调用状态3
JNB TF0,WAIT3 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,WAIT3 ;判断1s到否?未到继续状态3
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT3 ;状态3维持2s
MOV R2,#20 ;置50ms计数初值
MOV R3,#20 ;红灯闪20s
MOV SECOND1,#25 ;东西路口计时初值25s
MOV SECOND2,#25 ;南北路口计时初值25s
LCALL DISPLAY
WAIT4: LCALL STATE4 ;调用状态4
JNB TF0,WAIT4 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,WAIT4 ;判断1s到否?未到继续状态4
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT4 ;状态4维持20s
MOV R2,#5 ;置50ms计数初值
MOV R4,#4 ;红灯闪20ms
MOV R3,#3 ;绿灯闪3s
MOV SECOND1,#5 ;东西路口计时初值5s
MOV SECOND2,#5 ;南北路口计时初值5s
LCALL DISPLAY
WAIT5: LCALL STATE5 ;调用状态5
JNB TF0,WAIT5 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R4,WAIT5 ;判断200ms到否?未到继续状态5
CPL LED_G2 ;南北绿灯闪
MOV R4,#4 ;闪烁200ms
DJNZ R2,WAIT5 ;判断1s到否?未到继续状态5
MOV R2,#5 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT5 ;状态5维持3s
MOV R2,#20 ;置50ms计数初值
MOV R3,#2 ;红灯闪2s
MOV SECOND1,#2 ;东西路口计时初值2s
MOV SECOND2,#2 ;南北路口计时初值2s
LCALL DISPLAY
WAIT6: LCALL STATE6 ;调用状态6
JNB TF0,WAIT6 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,WAIT6 ;判断1s到否?未到继续状态6
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT6 ;状态6维持2s
LJMP LOOP ;大循环
STATE1: ;状态1
SETB LED_G1 ;东西路口绿灯亮
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
RET
STATE2: ;状态2
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
RET
STATE3: ;状态3
CLR LED_G1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
SETB LED_Y1 ;东西路口绿灯亮
RET
STATE4: ;状态4
CLR LED_G1
CLR LED_Y1
SETB LED_R1 ;东西路口红灯亮
SETB LED_G2 ;南北路口绿灯亮
CLR LED_Y2
CLR LED_R2
RET
STATE5: ;状态5
CLR LED_G1
CLR LED_Y1
SETB LED_R1 ;东西路口红灯亮
CLR LED_Y2
CLR LED_R2
RET
STATE6: ;状态6
CLR LED_G1
CLR LED_Y1
SETB LED_R1 ;东西路口红灯亮
CLR LED_G2
CLR LED_R2
SETB LED_Y2 ;南北路口红灯亮
RET
LEDMAP:
DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5
DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B
DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, ,-
END

呵呵 俺帮你吧
CNT EQU 30H ;使用片内数据存储器30H 为用户定义一个软件计数器
ORG 0000H ;单片机起始地址
SJMP STA ;跳转到主程序STA
ORG 000BH ;定时计数器0的中断入口地址
LJMP T0ISR ;转定时计数器0的中断
ORG 0050H ;主程序起始地址
STA:
MOV TMOD,#01H ;设置模式寄存器 规定定时器0 定时 工作在方式1 为16位的定时计数器
MOV TH0,#3CH ;送时间常数
MOV TL0,#0B0H ; 定时时间=50ms
MOV P1,#0FEH ;送LED指示灯的亮灭初值即: 灭灭灭灭灭灭灭亮
MOV CNT,#20 ;送软件计数器的计数初值为20 即软件定时=1秒
SETB ET0 ;允许定时器0中断
SETB TR0 ; 启动定时器0定时
SETB EA ;开中断
SJMP $ ;等待定时器中断
T0ISR: ;定时器0中断服务程序
CLR TR0
MOV TH0,#3CH ;重新送时间常数
MOV TL0,#0B0H;50ms
SETB TR0
DEC CNT ;软件计数器减1
MOV A,CNT
JNZ T0ISRE ;等于0 表明定时时间=20*50ms=1秒
MOV CNT,#20 ;重新送初值
MOV A,P1
RL A ; LED指示灯的亮灯左移一位
MOV P1,A
T0ISRE:
RETI ;中断返回
END ;汇编结束

呵呵 满意就选满意回阿

单片机程序求注释#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include <intrins.h>// 有了他下面这些关键字随便用
/* _crol_ 字符循环左移
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
_nop_ 空操作8051 NOP 指令

0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0x28,0xe1,0x32,0xa2,0x54,0xa1,0x21,0xea,0x20,0xa0,
a b c d e f g //数组有code存在ROM没code保存在内存
0x60,0x25,0x39,0x26,0x31,0x71,0xff}; //数码管段选定义
uchar code smg_we[]={0xef,0xdf,0xbf,0x7f};//数码管位选定义
uchar dis_smg[8] = {0};
uchar smg_i = 4; //显示数码管的个位数
sbit beep = P2^3; //蜂鸣器IO口定义

bit flag_lj_en; //按键连加使能
bit flag_lj_3_en; //按键连3次连加后使能 加的数就越大了
uchar key_time,key_value; //用做连加的中间变量
bit key_500ms ;

bit flag_300ms ;
uchar menu_1; //菜单设计的变量
uint t_high = 20; //上限报警值

sbit hx711_dout=P2^7;
sbit hx711_sck=P2^6; //hx711模块端口选择

long weight;

unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0;

uint temp,qi_weight;
bit chaozhong_flag;
bit leiji_flag;
uchar flag_200ms ;

#define GapValue 437.0

uint temp,qi_weight;
bit chaozhong_flag;
bit leiji_flag;

/***********************1ms延时函数*****************************/
void delay_1ms(uint q)//无符号整形参数q
{
uint i,j; //定义无符号整形变量i和j
for(i=0;i<q;i++) //变量i从0加到q
for(j=0;j<120;j++); //变量j从0加到120
}

/***********************数码显示函数*****************************/
void display()
{
static uchar i; //申请无符号字符变量i
i++;
if(i >= smg_i)//如果大于等于smg i向下执行
i = 0; 变量i清0
P1 = 0xff; //消隐 单片机p1口发送11111111
P3 = smg_we[i]; //位选 数组i送入单片机P3口
P1 = dis_smg[i]; //段选 数组i的内容送到p1口
}

/*************定时器0初始化程序***************/
void t


单片机实验数码转换实验代码如何补充,补充过程及注释解释
(1)输入程序,检查无误后,编译、链接程序,首先给系统复位,然后点击命令进入 调试状态;(2)修改20H、21H、22H 单元的内容,如:00H,05H,08H;(3)在SJMP MAIN 语句行设置断点,然后运行程序;(4)程序遇到断点后停止程序运行,此时查看寄存器R4 的内容,应为3AH;(5)重新修改20H、21H、2...

滕王阁序翻译及注释逐字逐句是什么?
鹤汀凫渚,穷岛屿之萦回;桂殿兰宫,即冈峦之体势。 译文:时值九月深秋,积水消尽,潭水清澈,云烟凝结在暮霭中,山峦呈现一片紫色。在高高的山路上驾着马车,在崇山峻岭中访求风景,来到昔日帝子的长洲,找到仙人居住过的宫殿,这里山峦重叠,山峰耸入云霄。凌空的楼阁,红色的阁道犹如飞翔在天空,从阁上看深不见底、白鹤...

单片机初学者,求大神帮帮忙解决这几题
指出下列各条指令中源操作数的寻址方式并注释指令功能。MOV 50H,@R0 --寄存器间接寻址,片内数据传送 MOVX A,@R1 --寄存器间接寻址,片外RAM数据传送 --- 写出下列指令的机器码,并指出指令字节数和执行所需的机器周期表。MOV 20H,30H ---自己查书吧 MOV DPYR,#1000H -自己查书...

c语言程序 帮我把没一句注释写上,越清楚奖分越多。最好按格式写(第一句...
\/*这个程序就是根据P2中得到的值,对P1的值进行修改,猜测如果动态修改P2的值和修改P1的值之后的影响应该在包含的那个头文件中*\/ }

如何给图片加版权信息标注内容-Word如何给图片加标注?怎么给word图片加...
3..为图片添加注释,点击“题注”弹窗里的“新建标签”按钮,然后输入我们的图片注释内容。4.输入完成后,点击“题注”弹窗下方的“确定”按钮返回到word文档中,此时在图片的下方就插入了一个编号或注释。5.如果对插入的“题注”的格式不满意,可以选中题注,点击右键,选择右键菜单中的“设置形状格式”,...

电脑键盘按钮功能注释及快捷键有哪些-搜狗输入法
lusrmgr.msc---本机用户和组 logoff---注销命令 main.cpl---鼠标 mem.exe---显示内存使用情况 migwiz---文件转移向导 mlcfg32.cpl---邮件 mplayer2---简易widnowsmediaplayer mspaint---画图板 msconfig.exe---系统配置实用程序 mstsc---远程桌面连接 magnify---放大镜实用程序 mmc---打开控制台 mmsys....

桃花源记注释
(5)行:行走这里指划船。(6)远近:偏义复词,仅指远。(7)忽逢:忽然遇到。逢,遇见。(8)夹岸:两岸。(9)杂:别的,其他的。(10)鲜美:鲜艳美丽。(11)落英:落花。一说,初开的花。(12)缤纷:繁多而纷乱的样子。(13)异之:以之为异,即对此感到诧异。异,意动用法,形作动,以……为...

谁有C8051F320的片内温度传感器的程序,越简单越好!大家帮帮忙!不是很...
\/\/F320片上AD采样芯片自身温度,转换值通过UART发送到上位机,并在LCD上显示. \/\/实验时短接J7的1,2引脚(LCD背光控制引脚) ***\/ \/\/--- \/\/ Includes \/\/---

有关幻灯片的注释,说法不正确的是
有关幻灯片的注释,说法不正确的是注释信息可出现在幻灯片浏览视图中。幻灯片又称作正片,是一种底片或菲林。常见的规格有135和120两种。通常是彩色,但特殊目的也有黑白的正片。也可用来印相或放大相片。现在通常说的幻灯片多指电子幻灯片(演示文稿)。电子幻灯片:亦称演示文稿、简报,是一种由文字,...

叶非夜的专属相册注释,相册影集怎么制作
叶非夜的专属相册注释:如何把相册里的多个照片合并成一个影集 使用一个制作软件来制作就可以了。我一直都是用《数码》将自己的照片做成影集的。你可以用这个软件做很多种影集,它可以做本机相册,锁屏相册,礼品包相册,相册,还有网页相册。制作的时候,还可以为自己的相册添加背景音乐,添加相框,注释...

诸城市15392324430: 求大神为我的单片机代码注释下 -
漆骂那特: 先说下,你的程序格式写的太占用空间了,而且看着也不够整洁 已经帮你都注释了,格式也做了调整,部分没有调整,方便添加注释 /***************************************************************************/ #include#define uchar unsigned char #define...

诸城市15392324430: 求单片机代码注释 -
漆骂那特: 象这一段和紧接下面两段很好理解 ,分别是按键调秒分时 { if(P0_0==0) //判断按键有无按下 {for(i=10;i>0;i--) //延时 消抖 for(j=248;j>0;j--);if(P0_0==0) //再次判断按键有无按下{second++; //秒增加1 if(second==60) //够60秒回0{second=0; ...

诸城市15392324430: 一个简单的单片机程序,帮忙注释几行.我是初学者,谢谢! -
漆骂那特: #include<reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char uchar temp,num,num1; sbit beep=P2^3;//将beep赋值给P2.3,程序中凡有P2.3的都用beep代替 void delay(uint); void main() { temp=0xfe; while(1) { for(...

诸城市15392324430: 注释一下 单片机程序 -
漆骂那特: #include #define uchar unsigned char #define uint unsigned int uchar code table[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //8个数码管的位选择信号表 uchar code display[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; //1-8的共阴字码表 sbit wei=...

诸城市15392324430: 单片机程序求注释......以下是一个2位8段数码管 0 - 99显示的汇编程序,求高手注释一下,要完整点 -
漆骂那特: ORG 0000H ; 上电 与 复位 向量 LJMP MAIN ; 转移指令 转至 MAIN 处 ORG 0040H ; 定义 MAIN 程序 起始地址 MAIN: MOV SP,#5FH ; 设置 堆栈 起始地址 MOV DPTR,#TABLE ; 数据指针 = TABLE(为显示码 数据表地址) MOV R0,#0 ; R...

诸城市15392324430: 求大神帮忙,逐句注释一下单片机c程序. 重谢 -
漆骂那特: #include<reg52.h> '引用头文件 sbit IN1=P1^0; '定义P1^0口为IN1 sbit IN2=P1^1; '定义P1^1口为IN2 sbit ENA=P1^2; '定义P1^2口为ENA void delay(unsigned int z); '定义一个延迟函数,参数为z void delay_us (unsigned int aa); '定义一个微...

诸城市15392324430: 单片机 新唐 下面求注释.void I2C - Ctrl(uint8 - t start,uint8 - t stop,uint8 - t intFlag,uint8 - t ack){ - _IO uint32 - t Reg = 0; //前面的 - _IO if (start)Reg |= I2C - STA;if (... -
漆骂那特:[答案] 那个"__IO"是采用的宏定义,其原型是 #define __IO volatilevolatile 的英语原意思是“易变”的,用来修饰变量,表示这个变量是要时时从内存中读取的,避免编译器做程序优化的时候,从寄存器中读取Reg变量,而不是从内存中...

诸城市15392324430: 帮忙注释一下这个程序(单片机),谢谢 -
漆骂那特: #include //包含头文件#define uchar unsigned char #define uint unsigned int #define DAdata P1 //宏定义 sbit cs=P3^0; //定义单片机P3.0引脚为cs(读写使能引脚) sbit wr=P3^1; //定义单片机P3.1引脚为wr(读写引脚) sbit key0 = P3^5;//定...

诸城市15392324430: 单片机上断程序求注释 -
漆骂那特: #include unsigned char timer1; sbit PWM=P1^1;void system_Ini()//定时器初始化{ TMOD|= 0x11; //PWM TH1 = 0xfe; //11.0592 TL1 = 0x33; TR1...

诸城市15392324430: 求个 51单片机 计数器 程序 注解 -
漆骂那特: #include "reg52.h"#define u8 unsigned char#define u16 unsigned int sbit sw1=P3^4; sbit sw2=P3^5; sbit sw3=P3^6; sbit e0=P2^0; sbit e1=P2^1; sbit e2=P2^2; sbit e3=P2^3; u8 ds[4]={0,0,0,0}; u16 num=0; u8 code table[]={0X3F,0X06,0X5B,0X...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网