51单片机程序100例

“51单片机程序100例”相关的资料有哪些?“51单片机程序100例”相关的范文有哪些?怎么写?下面是小编为您精心整理的“51单片机程序100例”相关范文大全或资料大全,欢迎大家分享。

51单片机c语言应用100例

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

目录

目录 (1)

函数的使用和熟悉 (4)

实例3:用单片机控制第一个灯亮 (4)

实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (4)

实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (4)

实例6:使用P3口流水点亮8位LED (5)

实例7:通过对P3口地址的操作流水点亮8位LED (6)

实例8:用不同数据类型控制灯闪烁时间 (7)

实例9:用P0口、P1 口分别显示加法和减法运算结果 (8)

实例10:用P0、P1口显示乘法运算结果 (8)

实例11:用P1、P0口显示除法运算结果 (8)

实例12:用自增运算控制P0口8位LED流水花样 (9)

实例13:用P0口显示逻辑"与"运算结果 (9)

实例14:用P0口显示条件运算结果 (10)

实例15:用P0口显示按位"异或"运算结果 (10)

实例16:用P0显示左移运算结果 (10)

实例17:"万能逻辑电路"实验 (10)

实例18:用右移运算流水点亮P1口8位LED (11)

实例19:用if语句控制P0口8位LED的流水方向 (11)

实例20:用swtich语句的控制P0口8位LED的点亮状态 (12)

实例21:用for语句控制蜂鸣器鸣笛次数 (13)

实例22:用while语句

51单片机仿真100实例

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例

第 01 篇 基础程序设计

01 闪烁的LED

/* 名称:闪烁的LED 说明:LED按设定的时间间隔闪烁 */

#include

#define uchar unsigned char #define uint unsigned int sbit LED=P1^0; //延时

void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } }

//主程序 void main() { while(1) { LED=~LED; DelayMS(150); } }

02 从左到右的流水灯

/* 名称:从左到右的流水灯 说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果 */

#include #include

#define uchar unsigned char #define uint unsigned int

1

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》

//延时

void

51单片机中断程序大全

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

实用文档

//实例42:用定时器T0查询方式P2口8位控制LED闪烁

#include // 包含51单片机寄存器定义的头文件

/************************************************************** 函数功能:主函数

**************************************************************/ void main(void) {

// EA=1; //开总中断

// ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%6; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff;

while(1)//无限循环等待查询 { while(TF0==0)

51单片机学习 - 串口通信程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

#include #include

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long

void Delay1ms(unsigned int count);//延时程序 void init_rs232(void); //串口初始化

/***************************延时子程序start***************************/ void Delay1ms(unsigned int count) {

unsigned int i,j; for(i=0;i

/***************************延时子程序end***************************/ /* 串口通信初始化设置 */ void init_rs232(void) {

SCON=0x50; PCON=0x00;

TH1=0xFD; //波特率 9600 11.0592MHZ 时候 TL1=0XFD; TMOD=0X20; TR1=1; }

/***

51单片机的串行通讯程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

51 单片机的串行通讯

一、简介:

在中颖单片机2009年79F系列单片机的试用活动中,有幸成为一名试用者,在此首先 感谢该公司为电工们举办的此次公益活动,得到了一套79F32评估板和一个JET51 仿真器, 该仿真器能在Keil 下通过JTAG 口联机调试程序和编程,这对程序开发过程中的串行通讯功

能调试非常有用。

先上

评估套件的图片如下:

开发

由于常用的 51 单片机只有一个串行通讯口,且简易仿真器大都是通过串口来完成仿真 时的通讯功能的,还有很多51单片机是通过串口来ISP程序的(比如STC和NXP的51单片 机)。因而遇到有串行通讯的应用时,过去都采用直接把程序烧写到目标系统后然后联机测 试结果,有问题时重新改程序,重新下载测试来实现的(俗称盲调),俺过去都用AT89S52 加一个下载器来调试此类应用,因为它下载程序时,不占用串口,故串口可与目标系统直接 相连。中颖新推的8 位51 单片机具有JTAG 仿真功能,因而对于调试具有串行通讯外设的

应用系统带来了一个新的选择。

“51 单片机串行通讯”,这个话题我想大家初次看到,也许会觉得很简单,但您真的用 好串口的监视和可靠通讯两大主要功能吗?本文将结合本人的工作经验以中颖8 位

51单片机红外遥控解码程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

编者按:以下是网友编写的遥控解码程序!一种用延时等待的解码方法,比较容易理解,但缺点是占用CPU运行时间,第二种方法用定时器和外中断的解码方法,初学不易理解,但优点也很明显,第二种方法如果能解决连发解码就比较完美,更完善的红外遥控解码程序,请参考本站TOPAV-2008,TOP51-2005所配程序。

解码方法一

;//单片机接收红外解读程序\\\\

;硬件结构:8951,P0口数码管段码,P2.0-P2.3为位,P1为8个LED ;P3.2为红外接收头,P2.7蜂鸣器,晶振12M ;适用UPD6121 6122芯片接收

;---------------------------------------------------------

ORG 0000H

AJMP MAIN ;转入主程序

ORG 0003H ;外部中断P3.2脚INT0入口地址 AJMP INT ;转入外部中断服务子程序(解码程序)

;以下为主程序进行CPU中断方式设置 MAIN: SETB EA ;打开CPU总中断请求

SETB IT0 ;设定INT0的触发方式为脉冲下降沿触发 SETB EX0 ;打开INT0中断请求

AJMP $

;以下为进入P

51单片机c语言源程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

51单片机c语言源程序(1)

Led,数码管,点阵部分

------源程序由东流电子编写,文档由本人整理上传

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

* 描述 : 点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 * 创建人 : 东流,2012年2月7日 * 版本号 : 1.0

***********************************************************************/ #include

#define uchar unsigned char //这里用\代替\,\用来定义无符号字符型数。

#define uint unsigned int //\用来定义无符号整型数。 sbit Show_LED = P0^0; //用来声明P1.0口为程序所要控制的端口,\是KEIL专门用来声明某位IO口

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

基于51单片机的闹钟程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

简洁.易懂

#include<reg52.h>
sbit k10=P1^0;
sbit k11=P1^1;
sbit k12=P1^2;
sbit k13=P1^3;
unsigned char shizhong=0,fenzhong=0,miaozhong=0,
shizhong1,fenzhong1,miaozhong1,
shizhong2,fenzhong2,miaozhong2,
shi=0,fen=0,miao=0,
shi1,shi2,fen1,fen2,miao1,miao2,
i=0,xuanze=0;
unsigned char code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int time);
void pingmu();
void naozhong();
void chufa();
void key1();
void key2();
void key3();
void xianshi();
void xianshi1();
//--------------------------------------------------//主函

51单片机奇偶校验C51程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

51单片机奇偶校验C51程序

采用偶校验,单片机串口方式3,9位数据,最后一位是奇偶校验位。

偶校验:就是发送的8位数据中1的个数为偶数时,TB8=0;为奇数时,TB8=1; 奇校验:就是发送的8位数据中1的个数为奇数时,TB8=0;为偶数时,TB8=1; 由于PSW中的P可以表达累加器A中“1”的个数的奇偶性,具体如下: P(PSW.0)奇偶标志位:

P=1,A中“1”的个数为奇数

P=0,A中“1”的个数为偶数

所以要用P和TB8、RB8作为发送与接收的判据,则必须使用偶校验。 C语言程序如下: 发送程序

Void chek_even(uchar data) {

ACC=data; TB8=P; SBUF=data; While(!TI); TI=0; }

接收程序

Void chek_even(uchar data) {

While(!RI); RI=0;

data= SBUF;

ACC=data;

If(RB8==P)chek_flag=0; Else chek_flag=1; }

51单片机PS2键盘程序

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

/*中断程序,帮助了解中断事件*/

#include

51.h>

#include

sbit key_data=P3^0;

sbit key_clk=P3^2;//定义键盘接口的时钟脚

sbit RELAY=P1^0;

bit BF=0;

//code unsigned char tmpdate[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//定义常量做为输出

unsigned char keyv=0;

unsigned int intNum=0;

unsigned char key_up=1;//变量为常量的索引

//计数接收个数

//检测按键按下否

//继电器

void ldedata(unsigned char scandata);//数据处理

void main(void)//入口函数{}EA=1;//首先开启总中断

EX0=1;//开启外部中断0

IT0=1;//设置成下降沿触发方式

P2=0;

1/ 4

do{

}//循环

if(BF)

ldedata(keyv);

else

EA=1;

while

(1);

void key_scan()interrupt 0

{//外部中断0

if((intNum>0)&&(intNum<9)){

keyv=keyv>