PIC单片机
洒满阳光的午后
学习不追求快,慢才是快。
展开
-
PIC单片机实现x ms/1s钟精确延时
1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。;**************DelayMS**************DelayMS ; 延时x毫秒,x由变量w寄存器设定 movwf L1 ;Loop1 movlw原创 2017-03-04 12:29:40 · 4363 阅读 · 0 评论 -
PIC单片机-利用Timer2定时器的溢出中断实现动态扫描数码管
编写程序,令数码管的显示顺序为:0123,1230,2301,3012。数码管显示分静态扫描和动态扫描,动态扫描显示一般分两种方式1、选用一个数码管位,写断码显示,延时一定的时间,关闭显示,选择下一位,依次类推,完成数码管的多位扫描显示,这种方式比较耗CPU资源。2、利用定时器,每隔一个固定的时间去选通,写断码,这种方式可以降低CPU的占用时间,同时,每个数码管显示时间固定原创 2017-03-04 12:49:23 · 4365 阅读 · 0 评论 -
PIC单片机-AD转换
编写程序,使用数码管显示ADC测量得到的电压值。电压值由1位整数和1位小数构成。例如若当前AN0通道上的电压为6V,则数码管应显示3.6。#include #include #define uint8 unsigned char#define uint16 unsigned int__CONFIG(FOSC_HS &WDTE_OFF &BOREN_OFF &PWRTE_OFF &L原创 2017-03-04 12:51:17 · 3469 阅读 · 0 评论 -
PIC单片机-RS232串口通信
编写程序实现以下功能。在计算机上使用串口大师向开发板发每次发送1个字符。开发板每接收到一个数据,则交换该数据的高低4位,再发送回计算机。端口初始化时使能发送与接收,使用扫描方式接收数据,接收到数据后立即交换高低四位并发送,交换高低四位方式如下:i = ((RCREG & 0xff) 4) | (RCREG >> 4)完整程序:/***********************原创 2017-03-04 12:58:49 · 3094 阅读 · 1 评论 -
PIC单片机-PWM波
一、编写程序,使用RC2的PWM功能生成频率250Hz的正弦波#include #define uint8 unsigned char#define uint16 unsigned int__CONFIG(FOSC_HS &WDTE_OFF &BOREN_OFF &PWRTE_OFF &LVP_OFF); //设置配置位//WDTE_OFF:disable watchdog tim原创 2017-03-04 13:04:10 · 7299 阅读 · 0 评论 -
PIC单片机-蜂鸣器使用示例
PIC中档单片机蜂鸣器原理图:使用示例:/******************************************************************************** 跳线接法:短接P2的2、3* 功能描述:无源蜂鸣器发声**************************************************************转载 2017-03-04 13:15:59 · 2547 阅读 · 0 评论 -
PIC单片机-继电器使用示例
PIC单片机继电器原理图:使用示例:/******************************************************************************** 跳线接法:短接P12的2、3端* 功能描述: 利用单片机的IO来驱动继电器******************************************************转载 2017-03-04 13:16:40 · 1101 阅读 · 1 评论 -
PIC单片机-步进电机的正转与反转
PIC步进电机原理图:一、步进电机单双八拍正转步进电动机是一种将电脉冲信号转换成角位移或线位移的机电元件。步进电动机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。本程序采用单双八拍工作方式:A-AB-B-BC-C-CD-D-DA (即原创 2017-03-04 13:19:58 · 4099 阅读 · 0 评论 -
PIC单片机-LED阵列的使用
编写程序,在Led阵列上依次循环显示自己的学号及姓名拼音的缩写/******************************************************************************** 标 题: LED点阵显示* 功能描述: LED点阵循环显示"141270049ZRJ"************************************原创 2017-03-04 13:21:26 · 1117 阅读 · 0 评论 -
PIC单片机-定时器的应用
一、利用定时器Timer0的定时功能,设计一个倒计时,显示在数码管上。#include #define uint8 unsigned char#define uint16 unsigned int#define SCK_595 RA5#define RCK_595 RE0#define SER_595 RC0__CONFIG(WDTDIS & LVPDIS &原创 2017-03-04 12:48:24 · 1577 阅读 · 0 评论 -
PIC单片机-七段数码管的使用
一、编写子程序LED_Display,根据入口参数在某一位7段码LED显示一个数字。点亮的LED位的位数在W寄存器中,该位显示的数字在变量wdata中。变量wdata的位置由用户自行设定。调用该子程序后,选中的数码管持续显示所需的数字100微秒,之后将数码管关闭,退出子程序。/***********************************************************原创 2017-03-04 12:47:14 · 2036 阅读 · 0 评论 -
PIC单片机实现双字节无符号数加减法
一、编写子程序 Add_16,实现双字节无符号数加法。要求在地址0x70~0x73定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。ACCALO ;存放加数或减数低8位ACCAHI ;存放加数或减数高8位ACCBLO ;存放被加数或被减数低8位ACCBHI 存放被加数或被减数高8位list p=16f877A ; 标明所用的处理器类型 #include原创 2017-03-04 12:30:47 · 4766 阅读 · 0 评论 -
PIC单片机实现双字节无符号数的乘法
一、编写子程序Mpy_16,实现双字节无符号数乘法。自行定义变量,其中:ACCALO ;存放乘数低 8 位ACCAHI ;存放乘数高 8 位ACCBLO ;存放被乘数低 8 位和乘积第 16~23 位ACCBHI ;存放被乘数高 8 位和乘积第 24~31 位ACCCLO ;存放乘积第 0~7 位ACCCHI ;存放乘积第 8~15 位编写Main主程序,使用乘数 0x4015和被原创 2017-03-04 12:32:57 · 5710 阅读 · 0 评论 -
PIC单片机实现双字节无符号数的除法
编写子程序Div_16,实现双字节无符号数除法。自行定义变量,其中:ACCALO ;存放被除数低 8 位ACCAHI ;存放被除数高 8 位ACCBLO ;存放除数 8 位ACCCLO ;存放余数 8 位ACCCHI ;存放商 8 位采用移位法,设被除数为ACCA、除数为ACCBLO、商为ACCCHI(初值为0)、余数为ACCCLO(初值为0)。ACCA由高位至低位依次左移进入AC原创 2017-03-04 12:35:28 · 2892 阅读 · 2 评论 -
PIC单片机实现二进制码与压缩BCD码的相互转换
编写子程序Bin2BCD、BCD2Bin实现二进制数到压缩BCD码的相互转换。待转换的二进制数存放在w寄存器内,子程序调用完成后得到的BCD码仍存放在w寄存器内返回。例如:movlw .45 ; w=45call Bin2BCD ;nop ; w=0x45一、实现二进制数到压缩BCD码的转换二进制数转压缩BCD码的方法是将二进原创 2017-03-04 12:38:02 · 4207 阅读 · 0 评论 -
PIC单片机花式点亮LED
编写LED点亮程序,要求循环实现以下功能:打开所有的LED灯从左到右依次熄灭其中一个LED灯从左到右依次点亮其中一个LED灯从右到左依次熄灭其中一个LED灯从左到右逐个点亮LED灯关闭所有的LED灯从右到左逐个点亮LED灯关闭所有的LED灯从外向内对称点亮LED灯从外向内对称关闭LED灯;*************************************************原创 2017-03-04 12:39:47 · 2596 阅读 · 0 评论 -
PIC的中断系统
一、编写程序,使用RB0的外部中断,实现对key1事件的响应。每按下key1一次,则令LED点亮的位向左移位1位。;********************************************************************************; 跳线接法:用短接帽短接P14; 功能描述: 使用RB0的外部中断,实现对key1事件的响应。每按下key1一次,原创 2017-03-04 12:42:07 · 1153 阅读 · 0 评论 -
PIC单片机存储器拓展
使用Protel DXP绘制以PIC16F877A为CPU,IS65C256AL为外部数据存储器的计算机系统。单片机的B口作为数据/低8位地址复用总线,C口的0~6位作为高7位地址总线,以C口的第7位控制存储器的读写#WR,以D口的0位和1位分别控制存储器的输出使能#OE和片选使能#CE。采用74HC573作为地址锁存器。源文件下载地址:http://pan.baidu.com/s原创 2017-03-04 12:44:13 · 852 阅读 · 0 评论 -
PIC单片机实现冒泡排序算法
编写子程序paixu,实现1Byte数的顺序排列。待排序的10个二进制数(自定义数据大小)存放在内存空间内。编写宏定义实现大小比较和换位,入口参数为待比较的两个数据地址。注意排序过程中需要使用间接寻址方式,即利用FSR和INDF两个特殊功能寄存器实现寻址操作。编写子程序,调用宏定义,使用冒泡排序算法实现排序。1、冒泡排序算法冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,原创 2017-03-04 12:45:34 · 3914 阅读 · 0 评论 -
PIC单片机-普通IO口模拟I2C总线对24C02进行读写操作
使用PIC单片机的普通IO口模拟I2C总线,对24C02进行读写操作。其中,总线定义为:#define IIC_SCLK RC3 //24C02时钟线#define IIC_SDAT RC4 //24C02数据线将跳线帽P11短接至24C02方向,将跳线帽P6段接至IIC方向。I2C 总线协议规定任何将数据传送到总线的原创 2017-03-04 13:22:42 · 7447 阅读 · 0 评论