微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC12F683微控制器实验板

PIC12F683微控制器实验板

时间:08-02 来源:互联网 点击:

ay_ms(1000); I = 1; (我== 8)I = 0; }(1);}

在mikroC编译这个程序,负载??内的PIC12F683与任何ICSP编程。输出:

在LED上显示的3位计数器实验第2号:轻触开关输入和电机控制。本次实验的目的是两个轻触开关来控制电机。当按下一个开关,电机就会开启,其他关闭。安装: 将SW1和SW2引脚(引脚7)GP0和GP1的PIC12F683(引脚6)。还可以连接电机驱动器的引脚GP2的(引脚5 )。因此,GP0和GP1均为输入和GP2输出。请记住,当按下开关时,相应的SW引脚被拉低 。在正常情况下,SW1和SW2拉高。

软件

/* Motor ON/OFF control with tact switches

Rajendra Bhatt, Sep 3, 2010

PIC12F683, MCLR OFF, Internal Oscillator @ 4.00MHz

*/

sbit Start_Button at GP0_bit;

sbit Stop_Button at GP1_bit;

sbit Motor at GP2_bit;

void main() {

CMCON0 = 7; // Disable Comparators

TRISIO = 0x03; // 0000 0011 GPIO 0, 1, Inputs; Rest are O/Ps

ANSEL = 0x00;

Motor = 0;

do {

if (!Start_Button) { /* When a tact switch is pressed, Logic I/P is 0*/

Delay_ms(100);

Motor = 1; // Turn Motor ON

}

if (!Stop_Button) {

Delay_ms(100);

Motor = 0; // Turn Motor ON

}

} while(1);

}

输出:当SW1按下时,电机将开启,并按下SW2时,它会熄灭。

实验3: 软件UART测试。

本次实验的目的是发送一个字符串到PC使用的软件UART例程。该字符串将被转移到PC上的超级终端窗口显示时,按下SW1开关。字符串将被按下开关

安装:微控制器端:

连接UTX和SW1引脚GP0(引脚7)和GP1端口分别。

PC端:

连接RX(2),TX(3)和GND(5)针板相应的PC机的RS232端口引脚。此外,在PC上定义以下设置一个新的连接的超级终端窗口。

BPS = 9600,数据位= 8;校验=无,停止位= 1; =硬件流量控制

软件

/*

PIC12F683 Experiment Board

Experimen No. 3 : Read analog voltage from AN0 and diplay

on Hyperterminal window on PC using Software UART.

Date: 06/25/2010

*/

char Message1[] = Digital Value= ;

unsigned int adc_value, backup=0 ;

char *temp = 0000, error;

int i;

void main() {

CMCON0 = 7;

TRISIO = 11; // GPIO 0, 1, 3 Inputs; Rest are O/Ps

ANSEL = 0;

GPIO = 0;

// Define GPIO.3 as UART Rx, and 5 as Tx

error = Soft_UART_Init(GPIO,3, 5, 9600, 0 );

Delay_ms(100);

do {

adc_value = ADC_Read(0);

if(adc_value != backup) {

if (adc_value/1000)

temp[0] = adc_value/1000 + 48;

else

temp[0] = '0';

temp[1] = (adc_value/100)%10 + 48;

temp[2] = (adc_value/10)%10 + 48;

temp[3] = adc_value%10 + 48;

for (i=0; i= 13; i++) {

Soft_UART_Write(Message1[i]);

Delay_ms(50);

}

for (i=0; i= 3; i++) {

Soft_UART_Write(temp[i]);

Delay_ms(50);

}

Soft_UART_Write(10); // Line Feed

Soft_UART_Write(13); // Carriage Return

backup = adc_value;

}

delay_ms(100);

} while(1);

}

输出

相应的模拟输入数字号码将显示在超级终端窗口。您可以改变电位器和数字同等数量也将发生变化。请记住,ADC是10位,让您在屏幕上看到的数量将会从0000到1023。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top