虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

P1

  • 最近买了块开发板学习单片机

    最近买了块开发板学习单片机,以下是电路原理图。不明白上面的4×4矩阵键盘(电路图最左上角)的编码原理。键盘的8条引线直接与P1.0^P1.7相连,疑惑的是即使按下任意按键也在P1口上读不到任何电平啊? 期待高手指点!

    标签: 开发板 单片机

    上传时间: 2017-08-11

    上传用户:TRIFCT

  • 本程序使用STC12C5AXXS2系列单片机

    本程序使用STC12C5AXXS2系列单片机,在P1.3输出0~5V的电压。可通过串口在线对输出电压进行控制,并通过串口在上位机显示当时的输出电压。仅需一片单片机和两个10k的电阻和0.1uF的电容。内有硬件连线图。

    标签: 5AXXS AXXS2 AXXS STC

    上传时间: 2014-12-05

    上传用户:dragonhaixm

  • Main program running when workpiece is ready on deferent belt(deferent_ready=ture). * Call Squ

    Main program running when workpiece is ready on deferent belt(deferent_ready=ture). * Call Square_Wave subroutine to generate 0.5ms square wave on P1.2 to drive * electromotor,then drive deferent belt step forward. When it steps to the measure * zone, it stops to be measured. Then call A_D subroutine to transform analog * signals to digital signals , after then call serial subroutine to transfer * digital signals to PC. Call square wave subroutine to drive deferent belt step to * original position waitting for defere ready flag to run the next circle.

    标签: deferent_ready workpiece deferent program

    上传时间: 2017-08-31

    上传用户:baiom

  • 本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器

    本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。

    标签: 8255A 51 ATSC MSC

    上传时间: 2014-01-18

    上传用户:sunjet

  • LCA51单片机实验书付实验程序

    LCA51单片机实验书付实验程序,数据排序,二进制数转换成ASCII码 ,内存块移动,数据传送子程序,查找相同数个数,脉冲计数(定时/计数器实验),扩展存储器读写实验, P1口输入、输出实验等等

    标签: LCA 51 单片机实验 实验

    上传时间: 2014-01-20

    上传用户:zhouli

  • 由8031内部定时器1

    由8031内部定时器1,按方式1工作,即作为16位定时器使用 每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发 光二极管。要求编写程序模拟一时序控制装置。开机后第一 秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四 秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4, L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又 从头开始,L1,L3亮,然后L2,L4亮......一直循环下去。

    标签: 8031 定时器

    上传时间: 2013-12-20

    上传用户:hullow

  • 点阵拉木。。hex

    用于仿真进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。此外,AT89C51还控制ADC0808的工作。其中,单片机AT89C51通过定时器中断从P2.4输出方波,接到ADC0808的CLOCK,P2.6发正脉冲启动A/D转换,P2.5检测A/D转换是否完成,转换完成后,P2.7置高从P1口读取转换结果送给LED显示出来[3]。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示功能,还需要有相应的软件配合,才能达到设计要求。

    标签: 程序

    上传时间: 2015-02-27

    上传用户:dpseternal

  • 直流稳压电源

    此电路的工作原理是:+5V模拟电压信号通过变阻器VR1分压后由ADC08008的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。此外,AT89C51还控制ADC0808的工作。其中,单片机AT89C51通过定时器中断从P2.4输出方波,接到ADC0808的CLOCK,P2.6发正脉冲启动A/D转换,P2.5检测A/D转换是否完成,转换完成后,P2.7置高从P1口读取转换结果送给LED显示出来[3]。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示功能,还需要有相应的软件配合,才能达到设计要求

    标签: 电源设计

    上传时间: 2015-02-27

    上传用户:dpseternal

  • 蚁群算法程序

    Ø 出动m只蚂蚁,每只蚂蚁各随机选择一条路径,记为I=[1 2 3···m],长度记为long(I); Ø 计算出每条路径的信息素浓度,记为P(I)=1/long(I),并进行归一化处理; Ø 重新出动m只蚂蚁,按如下规则选择路径: l 每只蚂蚁都以一个概率P1选择新路径(路径随机); l 未选择新路径的蚂蚁以概率P(I)选择路径I; l 所有蚂蚁都以一个小概率p2对自己的路径进行局部变化; Ø 更新所有路径,计算出每条路径的信息素浓度; Ø 重复上述步骤,直至仅剩一条路径。

    标签: 蚁群算法解决TSP问题的MATLAB实现

    上传时间: 2015-04-16

    上传用户:jackynie

  • 两个链表的交集

    两个链表的交集 #include<stdio.h> #include<stdlib.h> typedef struct Node{   int data;   struct  Node *next; }Node; void initpointer(struct Node *p){   p=NULL; } int  printlist(struct Node* head){   int flag=1;   head=head->next;   /*   因为标记1的地方你用了头结点,所以第一个数据域无效,应该从下一个头元结点开始   */   if(head==NULL)     printf("NULL\n");   else   {     while(head!=NULL)     {       if(flag==1)       {       printf("%d",head->data);       flag=0;       }       else       {         printf(" %d",head->data);       }       head=head->next;     }     printf("\n");   }   return 0; } struct Node *creatlist(struct Node *head) {      int n;    struct  Node *P1=(struct Node *)malloc(sizeof(struct Node));   P1->next=NULL; while(scanf("%d",&n),n!=-1) {   struct Node *pnode=(struct Node *)malloc(sizeof(struct Node));   pnode->next=NULL;      pnode->data=n;   if(head==NULL)     head=pnode;   P1->next=pnode;   P1=pnode; } return head; } struct Node *Intersect(struct Node *head1, struct Node *head2) { struct Node *P1=head1,*p2=head2;/*我这里没有用头指针和头结点,这里是首元结点head1里面就是第一个数据,一定要理解什么事头指针, 头结点,和首元结点 具体你一定要看这个博客:http://blog.sina.com.cn/s/blog_71e7e6fb0101lipz.html*/ struct Node *head,*p,*q; head = (struct Node *)malloc(sizeof(struct Node)); head->next = NULL; p = head; while( (P1!=NULL)&&(p2!=NULL) ) { if (P1->data == p2->data) { q = (struct Node *)malloc(sizeof(struct Node)); q->data = P1->data; q->next = NULL; p->next = q;//我可以认为你这里用了头结点,也就是说第一个数据域无效     **标记1** p = q; P1 = P1->next; p2 = p2->next; } else if (P1->data < p2->data) { P1 = P1->next; } else { p2 = p2->next; } } return head; } int main() {   struct Node *head=NULL,*headt=NULL,*t;   //initpointer(head);//这里的函数相当于head=NULL;  // initpointer(headt);//上面已经写了headt=NULL那么这里可以不用调用这个函数   head=creatlist(head);   headt=creatlist(headt);   t=Intersect(head,headt);   printlist(t); }

    标签: c语言编程

    上传时间: 2015-04-27

    上传用户:coco2017co