AT89S52单片机
文章平均质量分 52
持智以恒
这个作者很懒,什么都没留下…
展开
-
闪烁灯(1)
一、闪烁灯#include // sbit gate=P2^0;// 定义P2-0口void main(void){unsigned int i,j;while(1){for(i=500;i>0;i--)for(j=500;j>0;j--);// 双重循环,延时约1秒gate=!gate;// 对P-0口取反,控制小灯的亮灭}}转载 2008-09-07 18:44:00 · 407 阅读 · 0 评论 -
液晶显示与串行通信的应用
1、液晶引脚功能如下:编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O原创 2008-09-07 19:57:00 · 832 阅读 · 0 评论 -
软件红外线接收程序
//软件红外线接收程序//该软件是斑竹很久以前做的,差不多已经忘了//采用24MHz晶振unsigned char inf_dat,inf_old,inf_num,inf_time,inf_run,inf_run_time;void int_t1(void) interrupt 3 { TH1=-0x5; time++; s001++; if ((++inf_run_time)>150原创 2008-09-07 20:03:00 · 950 阅读 · 0 评论 -
单片机指令速查表
MCS 51 指令速查表类别 指令格式 功能简述 字节数 周期 数据传送类指令期MOV A, Rn 寄存器送累加器 11MOV Rn,A 累加器送寄存器 11MOV A ,@Ri 内部原创 2008-09-07 20:07:00 · 567 阅读 · 0 评论 -
8路抢答器
#include code unsigned char seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char a=1;unsigned char Z;sbit P2_4=P2^4;//显示数字 void del() {unsigned char原创 2008-09-07 21:25:00 · 1387 阅读 · 0 评论 -
四位方波频率计
#include #define uchar unsigned charcode uchar xianshi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit gw=P2^4;sbit sw=P2^5;sbit bw=P2^6;sbit qw=P2^7;uchar k,pl,m,pl0,k0,m0;void delay(unsi原创 2008-09-07 21:26:00 · 761 阅读 · 0 评论 -
串口扫描两组七段码数据
#include#define uchar unsigned charsbit P3_4=P3^4;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};//code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7原创 2008-09-07 21:32:00 · 629 阅读 · 0 评论 -
单键换屏或按次数切换
#include#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;sbit jian=P2^1;sbit gl=P2^2;sbit hp=P2^3; unsigned char keycnt=0; //code uchar tab[10]={0x40,0x79,0x24,0x30,0x原创 2008-09-07 21:32:00 · 522 阅读 · 0 评论 -
五位十进制计数器
#include#define uchar unsigned charsbit P3_4=P3^4;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};//code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7原创 2008-09-07 21:33:00 · 2140 阅读 · 0 评论 -
按键控制程序
///////////////////////////////////自锁程序/////////////////////////////#include /*P1口输入p0口输出*/sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P0_0=P0^0;del() /*延时0.2秒*/原创 2008-09-07 21:35:00 · 1352 阅读 · 0 评论 -
点阵显示程序
#include "reg52.h" //包函AT89S52 内部资源的定义(注视参看书160页)#define uchar unsigned char //宏定义uchar led [10]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; //数字1~10,字符串uchar led1[6原创 2008-09-07 21:42:00 · 2575 阅读 · 1 评论 -
风扇调速
#includecode unsigned char seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40}; //显示段码 sbit TMDAT =P3^1; //DS18B20 的数据输入/输出脚DQ,根据情况设定 sbit P2_7=P2^7;sbit P2_6=P2^6;原创 2008-09-07 21:43:00 · 968 阅读 · 0 评论 -
步进电机原理及程序
步进电机原理及程序1、电机型号:42SPM-24DCZC 7.5度 110 欧姆 24伏(四相步进电机)或25BY48B 7.5度 36 欧姆 12伏(四相步进电机)六根线分别为(白棕黑)(黄橙红),棕橙为公共端。转动线序为:白红黑黄(逆时针)。2、线序:棕 红 白 黄 绿 白色为公共端。3、原理图: 单驱动:红 棕 绿 黄;双驱动:红+绿,棕+黄。四原创 2008-09-07 21:43:00 · 2607 阅读 · 0 评论 -
PC 机与单片机通信(RS232 协议)
PC 机与单片机通信(RS232 协议)目录:1、单片机串口通信的应用2、PC控制单片机IO口输出3、单片机控制实训指导及综合应用实例4、单片机给计算机发送数据: [实验任务]单片机串口通信的应用,通过串口,我们的个人电脑和单片机系统进行通信。个人电脑作为上位机,向下位机单片机系统发送十六进制或者ASCLL码,单片机系统接收后,用LED显示接收到原创 2008-09-07 21:44:00 · 2925 阅读 · 0 评论 -
DS18B20 构成测温系统
[实验任务]用一片 DS18B20 构成测温系统,测量的温度精度达到 0.1 度,测量的温度的范围在-20度到+50度之间,用4位数码管显示出来。[硬件电路图][实验原理]DS18B20 数字温度计是 DALLAS 公司生产的 1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温原创 2008-09-07 21:45:00 · 1118 阅读 · 0 评论 -
cd4094串口扫描数码管显示
#include#define uchar unsigned charsbit P3_4=P3^4;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};//code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};c原创 2008-09-07 21:54:00 · 1658 阅读 · 1 评论 -
计数器定时器的应用
任务一:1、五个中断要求:2个定时器中断、2个外部中断、1个串行端口中断2、中断控制寄存器(1)IE(中断使能寄存器)EA--ESET1EX1ET0EX0EX0:使能外部/INT0的中断;ET0:使能TIMER0的中断;EX1: 使能外部/INT1的中断;ET1: 使能TIMER1的中断;原创 2008-09-07 19:55:00 · 817 阅读 · 0 评论 -
数码管显示与扫描原理
#includemain(){int i,j,k,l; while(1) {P0=0x00; for(i=0;i {for(l=0;l { for(j=0;j {P0=P0+0x10; for(k=0;k } }原创 2008-09-07 19:52:00 · 643 阅读 · 0 评论 -
DS1820温度测量程序
#include #include #include #include #define uchar unsigned char#define uint unsigned int sbit P3_5=P3^5;uchar TEMP; // 温度值的变量;uchar flag1;原创 2008-09-07 18:55:00 · 1594 阅读 · 0 评论 -
单片机数模输出控制LED亮度的例程
#include#include #define uchar unsigned char#define uint unsigned int#define addatal XBYTE[0xBFFF]#define addatah XBYTE[0xDFFF]uint datal,datah ;uchar data BUFFER[1]={0};原创 2008-09-07 18:56:00 · 989 阅读 · 0 评论 -
单片机音乐播放器制作
相关知识要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计出这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。计数脉冲值与频率的关系公式如下:N=Fi÷2÷Fr N:计数值Fi:内部计数时一次为1us,故其频率为1MHz Fr: 要原创 2008-09-07 19:58:00 · 1031 阅读 · 0 评论 -
用8255使6个数码管显示向左移的“8”
#include "reg52.h" //包函8051 内部资源的定义#include #define PA8255 XBYTE[0XFEA0]#define PB8255 XBYTE[0XFEA1]#define PK8255 XBYTE[0XFEA3]unsigned int i;void delay(void){for(i=0;imain(){P原创 2008-09-07 21:30:00 · 1453 阅读 · 0 评论 -
掉电保护24c02
#include #include #include unsigned char code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40};unsigned char sec; //定义计数值,每过1 秒,sec加1unsigned int tcnt; //定时中断次数bit wr原创 2008-09-07 21:37:00 · 1417 阅读 · 0 评论 -
开发板原理图
转载 2008-09-07 18:38:00 · 1716 阅读 · 6 评论 -
串口的简单测试程序
# include void main(void){ unsigned char astring;/*在11.0592MHz晶振下,设置串行口9600数据传输率,方式3*/TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0xd8;PCON=0x00; /*串口接收字符RI置位,允许串口接收*/ TR1=1;while(1原创 2008-09-07 18:50:00 · 491 阅读 · 0 评论 -
单片机中的多路模拟开关例程
#include #include #include #include #define uchar unsigned char#define uint unsigned int#define adch0 XBYTE[0x0000] sbit P1_3=P1^3;sbit P1_2=P1^2;uint ch0datal,ch0datah,i,light;原创 2008-09-07 18:52:00 · 1686 阅读 · 0 评论 -
单片机控制的数码管显示
#include #include #include #include #define DIGPORT XBYTE [0x8000] /* 定义字位口 */#define WORDPORT XBYTE [0x4000] /* 定义字型口 */#define uchar unsigned char/* 定义共阴极字型编码表(原创 2008-09-07 18:53:00 · 1345 阅读 · 0 评论 -
单片机的数字时钟例程
#include #include #define unit unsigned int#define uchar unsigned char /*定义字型字位口*/#define DIGPORT XBYTE [0x8000]#define WORDPORT XBYTE [0x4000] /*定义P1口各管脚*/sbit K0=P1^0;sbit原创 2008-09-07 18:54:00 · 953 阅读 · 0 评论 -
微型打印机和单片机的接口程序
# include # include # define CW8155 0XEF00# define B8155 0XEF02# define C8155 0XEF03# define uchar unsigned charuchar datap; void pchar(uchar i){XBYTE[B8155]=i;XBYTE[C8155]=原创 2008-09-07 18:55:00 · 1479 阅读 · 0 评论 -
单片机的电流检测程序
#include #include #include #include #define uchar unsigned char#define uint unsigned int#define adch0 XBYTE[0x0000] sbit P1_6=P1^6;sbit P1_7=P1^7;uint ch0datal,ch0datah,i,light;原创 2008-09-07 18:56:00 · 4110 阅读 · 0 评论 -
单片机驱动直流电机的例程
#include #include #define uchar unsigned char#define uint unsigned int bit gate; // 定时标志位bit direct; /*设置电机正反转标志,0-原创 2008-09-07 18:56:00 · 1898 阅读 · 0 评论 -
基于单片机的信号发生器例程
#include#include #define uchar unsigned char#define uint unsigned intvoid delays(void);uchar kbscan(void);sbit A0=P2^1;sbit A1=P2^2;uchar key; void delays(void){uchar i;fo原创 2008-09-07 18:57:00 · 1186 阅读 · 0 评论 -
单片机和PC之间的串行通信程序
单片机和PC之间的串行通信程序 #include#include #include #include #include #define uchar unsigned char#define uint unsigned intuchar FREQ; /*定时器计数变量*/ void ma原创 2008-09-07 18:59:00 · 851 阅读 · 1 评论 -
单片机的无线数据传输例程
单片机的无线数据传输例程 #include #include #include #define uchar unsigned char#define uint unsigned int//sbit EXF2=T2CON^6;#define COMI XBYTE[0x3100] // 定义8253R的控制字寄存器地址#define C0I X原创 2008-09-07 18:59:00 · 1953 阅读 · 0 评论