推荐阅读最新更新时间:2024-11-06 15:00
C51单片机编程规范
1单片机C51编程规范- 前言 为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。 2 单片机C51编程规范-范围 本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对C51编程语言和keil编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。 3 单片机C51编程规范-总则 l 格式清晰 l 注释简明扼要 l 命名规范易懂 l 函数模块化 l 程序易读易维护 l 功能准确实现 l 代码空间效率和时间效率高 l 适度的可扩展性 4 单片机C51编程规范-数据类型定义 编程时统一采用下述新类型名的方式定义数据类型。 建立一个datatype.h文件
[单片机]
51单片机课程设计:基于TCS230/3200的颜色复制显示器
本程序将从颜色识别模块读取到的数据显示在LCD1602上,同时生成对应的PWM波操作三色灯显示不同颜色,以此来实现颜色的复制显示,关于各模块的接线方法在源码都有详细介绍,同时,相关工程文件以及资料可在文章最下方下载。 关于粘贴复制乱码的问题:如果程序复制到Keil编译器上出现注释乱码,可以先建一个.c文件,也就是说不在keil里面编辑,然后用记事本打开.c文件,将源码复制进去,再在keil中添加文件即可。 /************************************************************************************** 基于TCS3
[单片机]
Atmega16的串口通信使用
//以下程序经验正可以用,MCU:M16,晶振:8M,直接用USB转串口线上的公头(针头), //第2针(RXD)接M16上的PD1口(15脚 TXD),第3针(TXD)接M16上的PD0口(14脚 RXD), //第5针接地,此时若板上有MAX232,则需把MAX232芯片去掉,这样才能正常工作 #include avr/io.h #include avr/interrupt.h #define uchar unsigned char #define uint unsigned int #define fosc 8000000//晶振频率 #define BAUD 9600 //波特率 void USART_send(ucha
[单片机]
C51单片机 定时器模拟单路输出PWM
前言 本博文基于STC89C52RC和Keil5 C51环境开发; 如有不足之处还请多多指教; 需要的东西 定时器0; 管脚P1.0; 代码如下: #include STC89C5xRC.H #define ENABLE 1 #define DISENABLE 0 typedef unsigned char uchar8; sbit P1_0 = P1^0; bit Flag = 0; /* 占空比的时间计算: 占空比 = 高电平时间 /(高电平时间+低电平时间); */ //高电平时间(初始值为:0x02EE,即十进制750) uchar8 Timer0_TH0_High_Level_Time = 0
[单片机]
51单片机学习:ADC模数转换实验--外部通道电压采集
实验名称:ADC模数转换实验--外部通道电压采集 接线说明: 实验现象:下载程序后,数码管上显示AD模块采集外部通道AIN3的电压值 注意事项: ***************************************************************************************/ #include public.h #include smg.h #include xpt2046.h /******************************************************************************* * 函 数 名 : main * 函数功能 :
[单片机]
51单片机中将变量、数组、函数设置在固定位置
一、不带初值的变量或数组 直接使用_at_ 关键字加上地址就行。 如: unsigned char idata myvar _at_ 0x40; unsigned char code myvar _at_ 0x40; _at_ 关键字的前后都有空格。 二、带初值的变量或数组 要将某变量定位在一绝对位置且要赋初值,此时用 _at_ 不能完成,要进行如下操作: 1、在工程中建立一个新的文件,如InitVars.c,在其中对要处理的变量赋初值(假设是code变量): char code myVer = { COPYRIGHT 2001-11 }; 2、然后将该文件加入工程,编译,打开M51文件,若定义的是co
[单片机]
学51单片机-按键的中断检测
接着昨天,继续说按键的事。昨天说的是扫描检测,今个说一下中断检测。先插播一个小故事~~ 当年我和凯凯学单片机的时候,我用扫描检测的方法做的项目,他用中断检测的方法做的项目。当我俩坐一起交流按键检测的方式时,他火了,直接跳起来跟我吼:你不用中断怎么检测? 当时我就意识到他可能陷入了只能用中断的误区,然后就乐呵呵的说:用扫描啊~ 他继续吼,我继续乐,我俩就这样陷入了死循环。终于都累了,然后把程序和原理给他看,了解~ 在STC89C52单片机上,具有外部中断功能的引脚有两个:P3.2 –INT0 和 P3.3-INT1。上电默认的情况下,他们是普通IO引脚;当配置好相关寄存器之后,他们就变成
[单片机]
51单片机学习之路 —— 1.1学习准备
学习准备 : 1 硬件准备 : 一台电脑(不需要很棒的配置,运行程序不卡既可以了) 学习板 (我自己是在淘宝上买了stc89c52的板子,功能不是很强,但用作学习应该是够了) #这里多说一句,很多学校实验室其实可以提供学习的板子,大家可以向专业老师询问,也能省不少下钱呢。 2 软件 : 驱动 (将自己的板子的驱动装好) 编写软件(主流有keil uVison4 或 keil uVision3 ) 烧写软件 (与板子对应的软件 如stc公司的烧写软件) #补一个 有的时候要画流程图,我用的是ProcessOn 通过它可以在线画流程图挺方便的
[单片机]