12F系列PIC单片机是方便的小型8引脚器件,设计用于不需要太多I/O资源且体积较小的小型嵌入式应用。这些应用包括各种各样的日常产品,例如吹风机,电动牙刷,电饭煲,吸尘器,咖啡机和搅拌器。尽管PIC12F系列单片机体积很小,但它们仍提供有趣的功能,包括宽工作电压,内部可编程振荡器,4个10位ADC通道,板载EEPROM存储器,片上基准电压源,多个通信外设(UART,SPI和I2C),PWM等。以下项目板旨在使用PIC12F单片机快速轻松地开发独立应用。它具有板载稳压+ 5V电源,用于访问I/O引脚的插头连接器,用于编程的ICSP插头,复位电路以及用于放置其他组件的小原型区域。
PIC12F开发板驱动串行七段式LED显示屏
下图显示了板上功能的详细视图。
板载功能
PIC12F微控制器
轻触开关连接到RA3 I/O引脚,仅输入。如果启用了MCLR,则可用于重置微控制器。否则,它可以用作用户输入开关。
用于使用chipKIT2/3进行ICSP编程的接头连接器。
用于访问I/O引脚和电源引脚的接头(Vcc = + 5V)。 请注意,在丝网印刷上RA5被错误地标记为RP5。
用于连接其他电路的小原型区域。可以从Vcc插头引脚获得附加电路的+ 5V稳压电源。
重要提示: RA0-RA5名称用于增强型中档系列(PIC12F1822,PIC12F1840等)中PIC12F微控制器的I/O引脚。老式的相应I/O引脚(PIC12F629,PIC12F675,PIC12F683等)被命名为GP0-GP5,并且具有相同的引脚配置。因此,该板可同时用于这两种电路板。
测试程序
下面的程序是用mikroC Pro编写的PIC编译器,用于说明《带有PIC12F开发板的strong》 4位串行七段LED显示模块。板上使用的单片机是PIC12F683。 PIC12F683的GP0,GP1和GP2引脚分别驱动7段显示模块的CS,MOSI和CLK引脚,以创建4位向上计数器。计数器的计数从0000到9999,然后重置为零,然后重新开始。
// Define Soft-SPI connections
#define CS_Pin GP0_bit
#define MOSI_Pin GP1_bit
#define CLK_Pin GP2_bit
void SPI_Write_Byte(unsigned short num){
unsigned short t, Mask, Flag;
CLK_Pin = 0;
Mask = 128;
for (t=0; t《8; t++){
Flag = num & Mask;
if(Flag == 0) MOSI_Pin = 0;
else MOSI_Pin = 1;
CLK_Pin = 1;
CLK_Pin = 0;
Mask = Mask 》》 1;
}
}
void MAX7219_INIT() {
// Disable Shutdown mode
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(0x0C); // Select Shutdown register
SPI_Write_Byte(0x01); // Set D0 bit to return to normal operation
CS_Pin = 1; // CS pin is pulled HIGH
// Set BCD decode mode for digits DIG0-DIG3
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(0x09); // Select Decode Mode register
SPI_Write_Byte(0x0F); // Select BCD mode for digits DIG0-DIG3
CS_Pin = 1; // CS pin is pulled HIGH
// Set display brighness
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(0x0A); // Select Intensity register
SPI_Write_Byte(0x0F); // Set maximum brightness
CS_Pin = 1; // CS pin is pulled HIGH
// Set display refresh
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(0x0B); // Select Scan-Limit register
SPI_Write_Byte(0x03); // Select digits DIG0-DIG3
CS_Pin = 1; // CS pin is pulled HIGH
// Enable Display-Test
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(0x0F); // Select Display-Test register
SPI_Write_Byte(0x01); // Enable Display-Test
CS_Pin = 1; // CS pin is pulled HIGH
Delay_ms(1000);
// Disable Display-Test
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(0x0F); // Select Display-Test register
SPI_Write_Byte(0x00); // Disable Display-Test
CS_Pin = 1; // CS pin is pulled HIGH
}
void Display_Counter(unsigned int j){
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(4); // Send thousands digit
SPI_Write_Byte((j/1000)%10);
CS_Pin = 1; // CS pin is pulled HIGH
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(3); // Send hundreds digit
SPI_Write_Byte((j/100)%10);
CS_Pin = 1; // CS pin is pulled HIGH
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(2); // Send tens digit
SPI_Write_Byte((j/10)%10);
CS_Pin = 1; // CS pin is pulled HIGH
CS_Pin = 0; // CS pin is pulled LOW
SPI_Write_Byte(1); // Send ones digit
SPI_Write_Byte(j%10);
CS_Pin = 1; // CS pin is pulled HIGH
}
unsigned short i;
unsigned int counter = 0;
void main() {
TRISIO=0b00001000; // GP3 is input only
CMCON0 = 0x07;
ANSEL = 0x00;
MAX7219_INIT(); // Initialize MAX7219
do{
for (counter=0; counter《10000; counter++) {
Display_Counter(counter);
Delay_ms(1000);
}
}while(1);
}
想知道如何使用此板?如果在线搜索,您会发现使用PIC12F单片机完成的许多很棒的项目。以下是其中的一些列表。
具有串行接口的初学者数据记录器
0-20V数字电压表 》
使用PIC12F683播放乐曲
超声波声音检测器
金属检测器
PAL视频叠加器
激光投影仪
超级简单红外遥控器
带有诺基亚3310 LCD的温度计
傍视频游戏
小型伺服控制器
温度感应杯
红外灯调光器
还有更多!
现在我有12个PCB。我将为自己保留五个,其余的将分发出去。让我知道您是否需要一个。一块PCB的价格为7.99美元,包括美国境内的免费送货。您将需要以下零件来组装电路板。
四个电容器:C1,C2,C4 = 0.1uF陶瓷电容器和C3 = 10uF-100uF电解电容器。
一个电阻器,R1 = 10K。
一个2针轻触开关,尺寸为6mm x 6mm。
一个AMS1117 TO-223调节器。
一个1N4004 1.0A二极管。
一个用于DC输入的2引脚接线端子(间距5mm)。
一个8引脚DIP插座。
您选择的PIC12F单片机(PIC12F683,
用于ICSP和I/O引脚的接头连接器。
我还可以帮助您提供其中的一些组件,并提供以下组件:PIC12F675,PIC12F1822,PIC12F1840等。 PCB。如果需要,请通过admin(at)embedded-lab(dot)com向我发送电子邮件。然后,我将向您发送我的Paypal ID以进行付款。
PCB尺寸为1.95英寸x 1.95英寸
PCB板底面
注: PIC12F单片机的引脚号1由其在PCB上占位面积的小方形焊盘标识。
组装好的板
责任编辑:wv
-
单片机
+关注
关注
6034文章
44546浏览量
634369
发布评论请先 登录
相关推荐
评论