单片机C语言中标志位的经典应用
/*本例程是C语言的位域操作示例这里为什么位域结构体与联合体一起使用?-->因为这样定义后,即可以单独使用标志位 也可同时使用整个字节数据主要应用:单片机C语言好处:用标志位可以节省RAM空间 操作灵活 执行速度快*///==...
AT89S52两单片机之间的通信 C程序
#include#define uint unsigned int#define uchar unsigned charsbit key1 = P1^0; //按键位定义sbit key2 = P1^1;sbit key3 = P1^2;sbit key4 = P1^3;void send(uchar key_num) //通过串口发送按键值子函数{SBUF ...
51单片机串口C程序
#includeunsigned char tmp;//初始化串行口void csh(){SM0=0;SM1=1;REN=1;TI=0;RI=0;//以上是初始化scon寄存器,想当于SCON=0x50;PCON=0;//初始化电源,为波特率不增加TH1=0xF3;TL1=0XF3;//设置波特率为2400TMOD=0X20;/...
STC单片机EEPROM功能模块
// STC单片机EEPROM功能模块#include #include// 声明与IAP相关的SFRsfr IAP_DATA = 0xE2;sfr IAP_ADDRH = 0xE3;sfr IAP_ADDRL = 0xE4;sfr IAP_CMD = 0xE5;sfr IAP_TRIG = 0xE6;sfr IAP_CONTR = 0xE7;// 定义ISP/IAP...
AVR单片机按键处理与按键防抖动程序
#include #include #includeunsigned char A,B;unsigned char n; bit step1, step2, step3,step4; //使用几个位变量记忆按键状态/#include #include #includeunsigned char A,B;unsigned char...
单片机的抗干扰措施
1单片机自身的抗干扰措施研制-------------------------------------------------------------------------为提高单片机本身的可靠性。近年来单片机的制造商在单片机设计上采取了一系列措施以期提高可靠性。这些技术...
51单片机与74HC164静态显示接口
在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用...
一个PIC读写内部EEPROM的程序(c)
#includeint i,j=1,k=1;void initial(void) //初始化{TRISB=0x00; //RB为输出 EEDATA=0x00; //数据赋初值EEADR=0x00; //地址赋初值}void write_data(void) { fo...
AVR编程_如何用C语言设置,清除和检查是否置位I/O
Question如何用C语言设置,清除和检查是否置位I/O 寄存器?Answer在AVR Studio的Help菜单中选择the online AVR Tools User Guide然后打开AVR Assembler --> User Guide --> Expressions,在这里你能获得很多汇编语言关于算...
AVR编程_如何通过软件复位AVR
Question如何通过软件复位AVR?Answer如果你想通过软件复位AVR,你应该使用内部看门狗。简单的使能它和让它溢出。当看门狗触发后,程序计数器返回到0,清除所有的寄存器和其他正在执行的任务,这与将RESET脚拉低有同样的效果。...
C8051F330串口UART0示例程序
//****************************************************************************// 功能:C8051F330串口UART0示例程序//****************************************************************************//使用F330,...
AVR-GCC如何调用存储于Flash中的指向函数的指针
//---------------------------------------------------------------// 功能:演示AVR-GCC如何调用存储于Flash中的指向函数的指针 (摇摆灯)//---------------------------------------------------------------#include...
51单片机简单易懂矩阵式键盘程序
;30H存列号31H存行号32H装键值,要改键盘的值排列可以通过改变后面TAB的值。;程序构思,先给键盘的接入口p1赋0F0H,通过检测p1.4-p1.7那个出现低电平,举例如果是p1.4那列有键按;下则p1.4出现低电平,则跳到y0得到列号为0,接下...
单片机C语言中volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面...
基于51单片机红外编码解码的C语言程序
当学习键按下后,红外接收头便可将接受到的信号存储到单片机中。在接受到通用遥控器发出的信号后,如果按下发射键,单片机将调出刚刚储存的信息,通过红外发射头发射出和遥控器一样的信号来达到控制的作用。#include #includ...
51单片机的中断函数
中断使用interrupt 关键字和终端编号0-4来实现:返回值 函数名 interrupt nn对应中断源的编号,中断编号告诉中断器中断程序的入口地址,它对应着IE寄存器中的使能位,即IE寄存器中的0位对应着外部中断0。8051单片机的中断源...
关于MCS-51单片机实现PWM的方法
关于MCS-51单片机实现PWM的方法PWM 是“脉冲宽度调制”的意思。PWM 实际上是在单片机的某个引脚输出一系列的矩形波,其周期一般是固定的;而其高电平、低电平所占用的时间,是可以受控调整的。高电平、低电平所...
ARM中断向量两种设置方法
例如:IRQEntry B HandleIRQ ;跳转范围较小B HandleFIQ或IRQEntry LDR PC,=HandleIRQ ;跳转的范围是任意32位地址空间LDR PC,=HandleFIQLDR伪指令等效生成1条存储读取指令和1条32位常数定义指令。32位常数存储在LDR指令...
msp430液晶屏1602驱动程序
1602液晶显示:1,16脚:地2,15脚:+53脚:接滑动变阻器,滑动变阻器另一端接地4脚:P4.5(RS)5脚: P4.6 (RW)6脚: P4.7 (E)7~14脚:接单片机的数据口P5(D0~D7)#include#define RS_HIGN P4OUT|=BIT5 //P4.5#define RS_LOW P4O...
msp430矩阵式按钮驱动程序
#include "msp430x14x.h"unsigned char LineScan[4]={0xef,0xdf,0xbf,0x7f}; //列值列举void ADD(){P4OUT+=1;}void SUB(){P4OUT-=1;}unsigned int key_check(void) //检测是否有按键按下{unsigned char temp; ...
msp430外部中断程序
中断在我们生活中无处不在,51单片机外部中断只有两个,而强大的msp430有很多,比如P1、P2口全部是其驱动程序如下:int main( void ){WDTCTL = WDTPW + WDTHOLD;P2IE |=0x01; //下降沿触发P2IES |=0x01; P2IE...
51单片机 用数码管显示动态检测结果
注:本数码管为共阴极,P2为位选口,P0为数据口本实验是一个60s计数器,当满60s后,此时又从00开始计数#includeunsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char int_time;unsigned ch...
89c51 汇编 串口发送数据
ORG 00HSTART:MOV SCON,#50H //设置串口方式1,允许接受MOV TMOD,#20HMOV TH1, #0F3H //波特率为2400B/sMOV TL1, #0F3HSETB TR1SEND:MOV A, #41HMOV P1, A //显示要发送的...
89c51 汇编 串口接受数据
ORG 00HSTART:MOV SCON,#50H //串口方式1,允许接受MOV TMOD,#20HMOV TH1, #0F3H //波特率为2400B/sMOV TL1, #0F3HSETB TR1WAIT:JBC RI, DISPLAYJMP WAITDISPLAY:MOV A, SBUFMOV P1, ...
c51 c和汇编语言混合编程
1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:#pragma ASM; Assembler Code Here#pragma ENDASM2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Gener...
C51 模仿PWM,可调编码
#includesbit LED_0 = P1^0;sbit LED_1 = P1^1;unsigned Pwm = 0; // 控制 LED_0 的有暗到亮 其中LED_1 作为对比unsigned Count=0;void Time_Init(void){TMOD = 0x02; //定时器0 定时,方式2TH0 = 0x9c; //100us...
stm32_ps2键盘显示测试程序
//PS2键盘测试程序,可换行,按shift不放接着输入 //可输出大写,按下CAPS输出大写,再次按下输出小写 //此程序只用来测试,代码冗余,仅供参考,可根据需要自行删减 //PA13->PS2.CLK PA15->PS2.DATA #include #include "s...
STM32GPIO——快速IO的使用
STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的...
单片机中断方面的知识
但是仔细一想如果不懂中断就只能写最简单的顺序执行程序而且非常浪费单片机的这些中断方面的资源,所以咬咬牙就拼命的学习这些特殊功能寄存器。今天写此文章也是为了以后忘记时查阅着方便。闲话少说言归正传。51单片机...
STM32-跑马灯实验代码分析
工程建立的主要步骤1.新建3个文件夹:USER、SYSTEM、HARDWARE2.新建led.c、led.h和test.c3.在Target目录树上右击Manage Component,新建USER、SYSTEM、HARDWARE,并添加相关C文件(具体见前文MDK使用方法与技巧),跟前面一样HAR...
STM32-按键输入实验学习笔记
按键扫描函数key.c片段:[cpp] view plaincopy//按键初始化函数 //特别注意:在该函数之后,JTAG将无法使用(SWD也无法使用) //如果想JTAG仿真,可以屏蔽该函数。 //PA0.13.15 设置成输入 void KEY_Init(void) { RCC->APB...
STM32-串口超时判断方式接收未知长度数据
usart.c串口中断处理函数:[cpp] view plaincopyvoid USART1_IRQHandler(void) { u8 res; if(USART1->SR&(1
AVR外部晶振是否起振的测试小程序
#include#includevoid delay_1ms(void) //1ms延时函数 主频为16MHz{ _delay_loop_2(4000); // 16-bit count,4 cycles/loop} // 4000*4/16000000=1ms,使用不同的晶振,可以自己来计算出()...
STM8单片机ADC应用(IAR)
STM8片上集成了10位逐次比较型模数转换器,在开发板上有个电位器接到了AIN3,但没有可以显示数据的LED数码管或LCD液晶显示屏,怎么办呢?可以把AD采集数据通过UART发送到电脑上显示。#i nclude void CLK_init(void){CLK_CKDIV...
STM8S系统时钟应用(IAR)
STM8上电运行时默认使用内部16M的RC振荡器经8分频后的2M时钟频率作为系统时钟。程序开始运行后可以通过设置相关寄存器来修改主时钟源,可以选择外部晶振作为主时钟源和CPU时钟分频。那么这里就选择比较简单的操作,修改...
STM8单片机PWM应用(IAR)
PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。本例程通过电位器调整PWM脉宽来调整接在PD3的LED1亮度。#include void CLK_init(void){CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M}void GPIO_in...
89C52单片机之点阵使用
这次是要通过8*8点阵显示出万代兴三个字,这里每一个汉字的编码都需要自己手写在本子上,然后根据点阵情况写出对应的编码,是个体力活。程序:#includeunsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}...
89C52单片机之数字时钟制作
整个显示分为时、分、秒三部分。时为24时置为0,分为60时置为0并向时进1,秒为60时置为0并向分进1。 程序:#include#includevoid delay(unsigned char dly){unsigned char i,j;for(i=100;i>0;i--)for(j=dly;j>0;j--);}unsi...
89C52单片机之按键控制
这是一个用按键调节七段显示屏显示数字的值的程序,其中一个按键按下加1,另外一个按下减1 程序:#include#includesbit P2_2=P2^2 ;sbit P2_3=P2^3 ;sbit P3_3=P3^3;sbit P3_4=P3^4;unsigned char num=18,shi,fen;unsigned...
89C52单片机制作秒表
1. 动态显示 2. 七段译码的编码表 3. 定时器的设置 单片机的时钟信号为11.0592MHz,选取46080对应0.05s。 程序:#include#includesbit P2_2=P2^2 ;sbit P2_3=P2^3 ;void delay(unsigned char dly){unsigned char i,j;for...
MSP430单片机A/D转换LCD1602&TUBE显示
#include#define uint unsigned int#define uchar unsigned char#define ulint unsigned long int#define RS BIT0;#define RW BIT1;#define EN BIT2;uint Volt0; //设置电压变量ulint Volttem0;unsign...
ARM指令中STM和LDM的理解误区
STM和LDM的主要用途是现场保护、数据复制、参数传递等,其模式有8种,如下:注:前面4种用于数据块的传输,后面4种用于堆栈操作(1)IA 每次传送后地址加4(2)IB 每次传送前地址加4(3)DA 每次传送后地址减4(4)DB 每次传送前地址减4(5)FD 满...
分享一些单片机控制的开关电源基本方法
其一是单片机输出一个电压(经DA芯片或PWM方式),用作电源的基准电压。这种方式仅仅是用单片机代替了原来的基准电压,可以用按键输入电源的输出电压值,单片机并没有加入电源的反馈环,电源电路并没有什么改动。这种方式最简单...
STM32 JTAG端口作为普通I/O口使用的方法
STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//开启AFIO...
PIC系列单片机程序相关问题
1、PIC单片机程序的基本格式先介绍二条伪指令:EQU --标号赋值伪指令ORG --地址定义伪指令更多芯片资料PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:PIC16C54/55...
ARM汇编伪指令 宏的用法详解
宏是一段独立的程序代码,它是通过伪指令定义的,在程序中使用宏指令即可调用宏。当程序被汇编时,汇编程序将对每个调用进行展开,用宏定义取代源程序中的宏指令。MACRO、MEND语法格式:MACRO[$ label] macroname{ $ parameter...
有源晶振和无源晶振简介
无源晶振和有源晶振在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上交变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。当外加...
ARM汇编中ldr与adr的区别
ldr r0, _start adr r0, _startldr r0, =_startnopmov pc, lr_start:nop编译的时候设置 RO 为 0x0c008000↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓...
S3C2440之UART操作(FIFO中断模式)
3个独立的串口,每一个都可以利用DMA和中断方式操作。每个包含2个64字节FIFO,一个接,一个发。非FIFO模式相当于FIFO模式的一个寄存器缓冲模式。每一个UART有7种状态,overrun错误,校验错误,帧错误,断点,接收缓冲区准备好,发送缓...
STM32F4xx位带操作
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr&0xFFFFF)<<5)+(bitnum<<2))#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))#define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAN...
51单片机精确延时函数集锦
C语言延时程序:50us延时子程序(12MHZ)void delay_50us(uint16 t){uint8 j;for(;t>0;t--)for(j=19;j>0;j--); }10ms延时子程序(12MHZ)void delay10ms(void){unsigned char i,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)for(k=248;k...
清零、移数、判断(80C51单片机汇编语言编程)
将片内30H~40H及片外0010H~0100H清零,然后将片内41H~47H的内容移到片外0041H~0047H,判断1、若(0041H)15,则减15存放到0050H中,并将位02H置1 汇编程序:ORG 0000H;设置初始地址MOV R0,#30...
排序、加法(80C51单片机汇编语言编程)
有两个长度为10H的数,分别放到30H和40H为首地址的存储器中(低字节),求其对应之和,放在50H为首地址的存储器中(处理进位位),然后按升序排列,放在70H为首地址的存储器中。 汇编程序:ORG 0000H;设置初始位置START:MOV R0,#30HMOV R...
查表、多分支(80C51单片机汇编语言编程)
设一表格,表中数为:00H、11H、22H……FFH,将片内00H单元中的低4位放到片外0000H中(0000H中的高4位为0),高4位放到片外0001H中(0001H中的高4位为0),根据0000H中的数取出表中相应的值存到片内30H中;根据0001H中的数...
外中断(80C51单片机汇编语言编程)
S1加1键,S2减1键要求:上电全灭。每按一次S1亮的灯多一盏;每按一次S2亮的灯少一盏。按8次后重复开始状态。ORG 0000HLJMP MAINORG 0003HLJMP INT0ORG 0013HLJMP INT1ORG 0030HMAIN:SETB EASETB EX0SETB EX1SETB IT0SETB I...
定时器(80C51单片机汇编语言编程)
P1.0、P1.1接两个发光管,INT0接一启动按键,启动后两个发光管一亮一灭,亮灭时间为1s,再按按键停止发光管。 实验箱晶振:6MORG 0000HAJMP MAINORG 0003HAJMP INT0ORG 000BHAJMP T0ORG 0030HMAIN:MOV TMOD,#01HMOV TH0,#3CHMO...
串行通信(80C51单片机汇编语言编程)
主机:每隔1秒读一次P1口并将读数发给从机,同时接收从机的信号,若与所发数相同,则P3.2的灯亮,若不同或不回答则P3.3的灯亮。从机:将接收的数据从P1口推出,并回发此数据波特率自定,编写主机程序和从机程序。 主机:ORG 0000HAJMP ...
交通灯控制(80C51单片机汇编语言编程)
设计一交通灯控制系统,控制东西方向的红、黄、绿灯和南北方向的红、黄、绿灯,可手动控制和自动控制,设置两个输入控制开关(可用P1.0、P1.1做输入控制),控制过程如下:东西方向 南北方向P1.0 P1.1 红 黄 绿 ...
定时、记数、显示(80C51单片机汇编语言编程)
设计一个带有控制功能的脉冲发生器/计数器系统,脉冲发生器发出周期为2秒的方波(提示:可由P3.0口输出,用发光二极管显示);被计数脉冲由T0口输入,所记录的脉冲数以十进制形式在数码管显示(至少应可记录256个脉冲);设两个按键,一个...
MDK软件不能模拟仿真STM32的问题解决方法
引言MDK软件在模拟仿真时,不能很好地支持各种STM32系列芯片,目前对STM32F103系列芯片支持模拟仿真,但对于其他系列芯片不支持或只是部分支持。主要存在的问题是:PC和SP不能自动装载,存储器不能访问,中断服务程序不能执行或...
单片机关于RAM的作用
1、内部RAM:共256个单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。前128单元具体分为:1.工作寄存器区:共4个组,每组为8个存储单元,即00H-07H,08H-0FH,10H-17H,18H-1FH,具体选择哪一个由程序状态...
51 IO口模拟串口通讯C源程
#include 51.h>sbit BT_SND =P1^0;sbit BT_REC =P1^1;/**********************************************IO 口模拟232通讯程序使用两种方式的C程序 占用定时器0**********************************************/#defi...
51单片机的FIFO(先入先出)循环队列实现
//////////////////////////////////////////////////////////// 文件:config.h//////////////////////////////////////////////////////////#ifndef __CONFIG_H#define __CONFIG_H//这一段无需改动//This segment sh...
采用AT89C2051的数字可调稳压电源单片机源程序
ORG 0000H ;定位LJMP MAIN ;跳转到MAIN主程序;ORG 0003H ;定位LJMP IT_0 ;转入INT0的中断服务程序;ORG 000BH ;定位LJMP IT_1 ;转入INT0的中断服务程序;ORG 0100H ;定位MAIN: MOV R6,#32H ;将50送R6ANL P3,#4FH ;将P3...
AVR的SPI程序
一个SPI的实例,通过SPI实现两机通讯, 采用中断方式实现双全工通讯。 本例用两MEGA8515实现,连接为: MISO----MISO MOSI----MOSI SCK ----SCK /SS ----/SS 将要发送的数据加载到发送缓冲区的函数fill_tx_buffer和从接收缓...
PIC16F690 时钟初始化实例
//时钟源选择#defineCLKS_INT(1<<1)//内部时钟#defineCLKS_CONFIG(0<<1)//由配置1决定时钟//内部振荡频率选择 #defineIRCF_31KLF (0<<4)#defineIRCF_125KMF (1<<4)#defineIRCF_500KMF (3<<4)#defineIR...
MSP430单片机比较器A模块
首先,整个比较器A的工作必需由CAON位置为1时才能工作的,此位属CACTL1控制寄存器。单片机上电时此位是为0的,也就是说比较器是不工作的。以下大概讲述几个部分电路的功能和一些相关信息。模拟输入电路:外部模拟引脚信号CA0...
msp430矩阵式4×4键盘源代码
#include char key;manage_key1(){}..................................manage_key16(){}void delays( ){int v=500;while(v!=0)v--;}void keyscan( ){ char sccode,recode;P1DIR=0X0f; P1OUT=0X...
51单片机P0口上拉电阻的深入研究
如果是驱动led,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了,但是对...
ATMega8 PWM 功能(T/C 1)测试程序
#include#include#define uchar unsigned char#define uint unsigned int#define FREQ 4//延时void DelayMs(uint ms){uint i;for(i=0;i _delay_loop_2(FREQ * 250);}int main (void){uchar direction=1;...
基于WinAVR的DS18B20源程序
#ifndef _DS18B20_C_#define _DS18B20_C_#define DQ_18B20 (1<<3) // PD3#define DQ_TO_0() (DDRD |= DQ_18B20) // PD3=’0′#define DQ_TO_1() (DDRD &= ~DQ_18B20) // PD3=’float’#defi...
AVR_M8单片机串口控制应用程序
#include #include #include "Io_define.h"unsigned char RX_data[4]={0}; //串口接收的数据unsigned char keyb_state=0;unsigned char keyc_state=0;unsigned char RX_counter=0; //串口接收到的字...
浅谈单片机调试方法
1. 利用I/O1.1 利用LED进行可视化管理这种方法需要有多余的I/O。(如果可能,也可以将实现次要功能的I/O暂时借来一用。)其电路很简单,一个LED通过限流电阻接到VCC电源。I/O设置为输出方式。我们可以用下面的宏来定义LED的...
PIC单片机AD通道转换函数
由于PIC单片机有八路AD转换通道,如果每路都写一个转换函数,哪样非常麻烦并且不便于写程序,缘此我写了一段如下转换可实现八路通用的函数:uchar get_ad(uchar n) //带通道选择的AD采样函数{ uchar advalu; ADCON0=n; ADCON...
PIC单片机IIC通信程序
#include#define uchar unsigned char#define uint unsigned int__CONFIG(0X3B31);const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar a1,a2,a3,a...
单片机技术C51串口输出输入函数
*----------------------------------------ComFun.c C51串口输出输入函数外部声明 ComFun.h----------------------------------------*/#include//串口初始化 晶振为11.0592M方式1 波特率300-57600void InitCom(unsi...
串口编程实现单片机和PC的通讯
串口API通信函数编程16位串口应用程序中,使用的16位的Windows API通信函数: ①OpenComm()打开串口资源,并指定输入、输出缓冲区的大小(以字节计) CloseComm() 关闭串口; 例:int idComDev; idComDev = OpenComm("COM1", ...
AVR单片机的SPWM程序
#include //程序中现在只有SPWM产生的相关的程序,其他的程序都已经删除#include#pragma interrupt_handler T0:17 //定时器0的溢出中断向量unsigned int SPWM_OCR1A[101]={493,492,491,490,489,488,487,486,485,484,4...
C51单片机与PC串口通信的单片机部分程序
注意波特率是9600功能:电脑通过串口给单片机发一个字节,单片机收到后又给电脑发回去、#include#define uchar unsigned char#define uint unsigned intuint temp;bit flag;void init_ser1();main(){init_ser1();while(1...
WDT做定时器使用,产生定时中断,使灯循环亮灭
#includevoid main(){WDTCTL = WDTPW + WDTSSEL + WDTTMSEL;P4DIR |= BIT0;//P4.0定义为输出P4OUT |= BIT0;//P4.0初始化为1,灯灭IE1 |= WDTIE;//使能WDT定时器中断IFG1 &= ~WDTIFG;//清中断标志_BIS_SR(GIE);//使能总...
STM8-利用TIM2的定时功能,实现灯每隔1S闪烁
#include"stm8s.h"#include "stm8s_gpio.h"#include "stm8s_tim2.h"void CLK_Configuration();void TIM2_Configuration_set_1ms(void);void GPIO_Configuration();void main(){CLK_Configuration();TIM2_Conf...
STM8-利用外部中断编写两个按键控制灯的亮灭
#include"stm8s.h"#include "stm8s_exti.h"#define uchar unsigned char#define uint unsigned int#define ulong unsigned longvoid delay(uint i){while(i--);}void main(){GPIO_DeInit(GPIOD);GPIO_Init(...
STM8-利用外部中断编写一个按键控制灯的亮灭
#include"stm8s.h"#include "stm8s_exti.h"#define uchar unsigned char#define uint unsigned int#define ulong unsigned longvoid delay(uint i){while(i--);}void main(){GPIO_DeInit(GPIOD);GPIO_Init(...
STM8-按键切换灯的亮灭
#include "stm8s.h"#define ulong unsigned longvoid delay(ulong i){ while(i--);}//延时函数void main(void)////////////主函数{ unsigned char flag=0; GPIO_DeInit(GPIOD); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO...
msp430单片机控制lcd1602显示C程序
//MSP430写的1602液晶显示程序2011/8/26//硬件连接 //P4 数据口 P3.7---E P3.6---RW P3.5----RS#include"msp430x14x.h"#define uint unsigned int#define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0);unsi...
单片机C语言位操作实例
C语言本身有较强的位处理功能,但在控制领域有时候经常需要控制某一个二进制中的某一位,为此在MCS_51的KEIL C51中扩充了两个数据类型bit和sbit。前者可以在MCS_51的位寻址区进行分配,而后者只能定义为可位寻址的特殊功能...
8051单片机存储器地址分配
一、程序存储器空间MCS-51单片机具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。1、对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的使能端端必须接地。强制CPU从...
将单片机应用于电动机保护器
单片机是将CPU、ROM、RAM、TIMER/COUNTER以及输入/输出接口(I/O)等集成在一块超大规模集成电路芯片上而制成的,有些单片机还集成了模数转换器(ADC)、脉宽调制模块(PWM)、通讯接口等,使用者只需用少量的外围电路就可组成各种应...
AVR单片机读PS2鼠标
#include#include #include "myh.h"//MOUSE//时钟接CLK:5--INT0--PD2#define PINMCLK (PIND&BIT2)#define PRTMCLK_H {DDRD&=NBIT2;PORTD|=BIT2;}#define PRTMCLK_L {DDRD|=BIT2;PORTD&=NBIT2;}//数据接DAT...
AVR单片机EEPROM的读写
一 AVR存储类型 不要外挂方便使用1.FLASH 存储程序代码2.EEPROM 运行的数据掉电不丢失的 数据存储 分页的数据3.SRAM 运行的临时数据EEPROM:读写以字节为单位 通过专用指令或SPI、JTAG直接读写使用RC震荡作为时钟,典型...
51单片机 温湿度传感器DHT11
//硬件连接: P2.0口为通讯口连接DHT1#include #include typedef unsigned char U8; typedef signed char S8; typedef unsigned int U16; #define uchar unsigned char#define uint unsigned ints...
基于51单片机can总线头文件定义
#include#include #include#define data_ora P1 //MCU P1 LCM#define uchar unsigned char#define uint unsigned int#define NOP _nop_()sbit req =P3^1;...
51单片机行列式键盘扫描程序
#include#include#define uchar unsigned char#define uint unsigned intunsigned char code seg7[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};//0到f的字型码unsigned...
定时器控制数码管扫描显示
************************************************************************************功能:定时器控制两位数码管扫描显示器件:STC12C5A32S2 两个数码管*********************************************************...
外中断(按键)控制数码管显示
#include "config.h"#define uint unsigned int#define uchar unsigned char#define ulong unsigned long#define SIGNAL P3_5 // 键盘初始信号#define KEY6 P3_2 // KEY6口就是INT0口#define KEY2 P3_3in...
单片机系统硬件抗干扰的常用方法
单片机系统硬件抗干扰的常用方法 影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机...
MSP430教程:MSP430单片机ADC12模块
MSP430单片机的ADC12模块是一个12位精度的A/D转换模块,他具有高速度,通用性等个性。大局部都内置了ADC模块.而有些不带ADC模块的片子,也可穿越利用内置的模仿比拟器来告终AD的转换。在系列产品中,我们能够穿越以下列表...
msp430F149单片机的flash读写程序
//基于msp430F149单片机的flash读写,记录430的运行状态,//实现在复位和掉电的情况下,恢复原始运行状态。#include #include "function.h"unsigned char value1=0; // 待写入段A的值unsigned char *data ...
基于ARM9的18B20温度传感器程序
//-------------------------------------------------------------------------------------//函数名称:dmsec //入口参数:count //函数功能:延时子程序//-----------------------------------------------------------...
51单片机定时器计数器中断总结
一.TMOD:定时器计数度器模式寄存器M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。1. 工作方式1工作方式1是16位的定时/计数方式,将M1M0设为01即可,其它特性与工作方式0相同。工作方式2在介绍...