/* 名称:8 只 LED 左右来回点亮说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uin[详细]
/* 名称:外部 INT0 中断控制 LED说明:每次按键都会触发 INT0 中断,中断发生时将 LED 状态取反,产生 LED 状态由按键控制的效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit L[详细]
/* 名称:LED 模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁 5 次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁 5 此后变红灯,东西向变绿灯,如此重复。*/#include<reg51.h>#define uchar unsigned char#define u[详细]
/* 名称:甲机发送控制命令字符说明:甲单片机负责向外发送控制命令字符“A”、“B”、“C”,或者停止发送,乙机根据所接收到的字符完成 LED1 闪烁、LED2 闪烁、双闪烁、或停止闪烁。*/#include<reg51.h>#define uchar unsigned char#define uint unsign[详细]
1、EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。格式: 符号名 EQU 表达式符号名 EQU 寄存器名表达式必须是一个简单再定位表达式。用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。比如:s equ bx+simov cx,[s]那么上面两句代码相当于如下指[详细]
程序 :/*** 读IO, 用按钮控制点灯.*/#include #include // 10个LEDsbit P10 = P1^0;sbit P11 = P1^1;sbit P12 = P1^2;sbit P13 = P1^3;sbit P14 = P1^4;sbit P15 = P1^5;sbit P16 = P1^6;sbit P17 = P1^7;// 定义开关. 低电平有效.sbit K1 = P3^2;sbit K2 = P3^5;void main( void ){while([详细]
1、EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。格式: 符号名 EQU 表达式符号名 EQU 寄存器名表达式必须是一个简单再定位表达式。用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。比如:s equ bx+simov cx,[s]那么上面两句代码相当于如下指令:mov[详细]
在单片机中,常用到数字与字符的方法,在C中都是使用itoa函数,C51也有这个函数,但是,8051的RAM是很有限的,所以尽量避免使用int型,常用的是unsigned char。当需要转换成字符串时用itoa的话,还是有点浪费。还是自力更生,自己写了一个,代码如下:typedef unsigned char BYTE;BYTE * ByteToStr(BYTE n){BYT[详细]
应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这[详细]
AVR端口是真正的双向端口,不像51伪双向。这也是AVR的一项优势,只是操作时大家注意DDRn就可以了。真正双向端口在模拟时序方面不如伪双向的方便。DDRn PORTn PINn 解释:n为端口号:ABCDEDDRn:控制端口是输入还是输出,0为输入,1为输出。个人记忆方法:一比零大所以往外挤,即1为输出,0为输入。PORTn:从[详细]

扫码关注我们
0755-82591179
邮箱:ivy@yingtexin.net
地址:深圳市南山区桃源街道平山社区平山一路2号南山云谷创业园二期11栋410-411

Copyright © 2014-2026 颖特新科技有限公司 All Rights Reserved. 粤ICP备14043402号-4