51单片机开发控制22-PCF8591AD转换4路数码管显示
2022-06-24 18:11:11 32KB 51,PCF8591
1
51单片机简易计算器
2022-06-24 16:49:05 5KB 51单片机
1
基于51单片机的利用TLC5615产生锯齿波
2022-06-24 13:00:30 17KB 51单片机 TLC5615 锯齿波
1
51单片机程序的反编!对于单片机的编程能看回它的源程序!
2022-06-24 00:48:23 247KB 51单片机智能反汇编工具
1
C51 交通信号灯 可以修改时长 带有倒计时数码管显示功能 还另外配有vb的上位机程序
2022-06-23 16:55:24 4KB c51 交通信号灯
1
全套视频一共6部分(共51讲)为: \01软件测试基础视频课程 \02软件测试流程及测试体系视频 \03自动化测试技术视频 \04自动测试工具QTP的使用视频 \05性能测试技术视频 \06性能测试工具loadrunner使用视频 第一讲 软件测试理论体系模型? 主要内容: 软件测试技术按照划分 软件测试能否单独由开发人员完成? 软件测试和软件开发那个工作难? 软件测试水平高还是软件开发水平高? 不同测试阶段测试的分工 第二讲 详细剖析软件测试过程及V模型? 主要内容: V模型对错探讨 什么是软件需求 软件需求获取的3个层次 概要设计都做什么 详细设计做什么 编码先还是单元测试先 集成测试怎么做 系统测试怎么做 系统测试和验收测试的区别 第三讲 软件开发及测试过程之详细V模型描述? 主要内容: 软件开发过程描述 软件开发和软件测试的关系 正式同行评审应该如何做 第四讲 测试用例的目标及X模型介绍 主要内容: V模型的问题是什么? 书写测试用例的目的是什么?
2022-06-23 13:06:27 452.45MB 测试 性能测试 功能测试 测试体系
51单片机密码锁制作的程序和流程图很详细
2022-06-22 21:37:53 2.11MB 51 单片机 密码 制作
1
小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源码 51旅游 (代码源)小程序源
2022-06-22 13:09:14 361KB 小程序源码51旅游(代码源)
用汇编写的9-0倒计时程序。P2.7为位选。接2.6段选。带注释。
2022-06-22 09:07:35 1KB 单片机 倒计时 反汇编
1
外部中断模拟串口,波特率不能超过65536 实验测试:发送57600可以正常,但接收只能 <= 38400 #include "Uart_EXT0.h" #include "MAIN.h" #define FOCS 22114800ul bit Over; bit bRxflag; unsigned char IEN0_NOW,IEN1_NOW; //中断临时变量 unsigned char idata bRxstate=0; //接收状态 unsigned char idata tmp_Len=0; //缓存数组下标 unsigned char idata bRxlen; //接收字节数 unsigned char xdata EX_buf[64]; //接收存放区 /*************************************************** baud = 56000 接收一字节 =178.6us ,接收会出现错误 baud = 38400 接收一字节 =260.4us //快速接收都容易出现错误 baud = 19200 接收一字节 =520us | baud = 14400 接收一字节 =694.5us | baud = 9600 接收一字节 =1041.6us | baud = 4800 接收一字节 =2.083ms 接收过长,定时器MODE2无法满足 //主机发送的数据最好加上校验字 发送:最大57600,发送还能正常。 ****************************************************/ void Time0_Uart(unsigned int baud) { TMOD &= 0XF0; TMOD |= 0X02; //使用定时器0方式2,使用方式1则2400波特也能有 TH0 = 256-(FOCS/12)/baud; TL0 = TH0; IP0 |= 0x02; //设置为最高优先级 IP1 |= 0x02; TR0 = 1; ET0 = 1; EA = 1; } void Time0_isr() interrupt 1 { //方式1则重装值 Over = 1; } /* 发送数据,1起始位,8数据,1停止位 发送波特率实验57600都不会错误,大量发送数据待测试 */ void Uart_set(unsigned char dat) { unsigned char i; Over = 0; TL0 = TH0; //防止发送数据开始时不知道TL0是多少 T_uart = 0; //起始位 while(Over==0); Over = 0; for(i=0;i<8;i++) //8数据位 {// Over = 0; //起始位时清零了 if(dat&0x01) //先发最低位 { T_uart = 1; } else { T_uart = 0; } while(Over==0); Over = 0; dat >>= 1; } // Over = 0; //数据位清零了 T_uart = 1; //停止位,此后如果没有数据则一直为高 while(Over==0); } unsigned char get_Uart() { unsigned char I=0,get_dat=0; Over = 0; TL0 = TH0; //重新赋值,防止出错 while(Over==0); Over = 0; for(I=0;I<8;I++) { get_dat >>= 1; if(Get_ex == 1) get_dat |= 0x80; else get_dat &= 0x7f; while(Over==0); Over = 0; } if(Get_ex == 1) { Over = 0; } return get_dat; } void EXuart_isr() interrupt 0 { unsigned char _chr; IEN0_NOW = IEN0; //进入接收1字节,关闭中断 IEN1_NOW = IEN1; IEN0 = 0X82; IEN1 = 0; _chr=get_Uart(); switch(bRxstate) { case 0: if(_chr==0x55) { bRxstate=1; } else bRxstate=0; break; case 1: if(_chr==0xaa) { bRxstate=2; } else bRxstate=0; break; case 2: //取得数据长度 bRxlen=_chr; bRxstate=3; break; case 3: EX_buf[tmp_Len]=_chr; tmp_Len++; if(tmp_Len==bRxlen) { bRxstate=0; tmp_Len=0; bRxflag=1; //一帧数据接收完毕,置位完成标志位 } break; default: break; } IE0 = 0; //清外部0中断标志,防止下次接收不到 IEN0 = IEN0_NOW; IEN1 = IEN1_NOW; } void main() { Time0_Uart(9600); EX_uart(); if(bRxflag==1) { bRxflag = 0; for(i=0;i<10;i++) RevBuffer[i] = EX_buf[i]; T0Uart_TX(10,RevBuffer); } }
2022-06-21 15:14:28 61KB 模拟串口 51
1