51测试网 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

点击察看说明书(64页彩色PDF文档)

1.1 系统简介

4.3 ISP引脚连接

端口按键判断

红外线遥控555硬件振荡器

1.2 模块接口定义

5.1 仿真概述

矩阵按键识别技术

汉字显示屏PS2键盘实验
2.1 软件安装  5.2 KEIL软件指南

74LS14反向器

1602液晶显示屏SD 卡实验
2.2 软件界面介绍 

51引脚说明

74LS138译码器

8155试验

485通信实验 
2.3 软件操作

八路跑马灯

74LS164串入并出

24C02储存

DS1302实时时钟
3.1 USB驱动安装

继电器控制

74LS165并入串出步进电机产生hex文件
3.2  特别 usb安装 

8路拨动开关

dac0832应用

93c46 演示

常见问题解答
4.1 ISP 介绍 

数码管静态扫描 

模拟/数字转换器

串行双向通信系统配置指南
4.2  下载头之插头定义

数码管动态扫描

小喇叭警报器18B20温度显示购买方式

                     实验23 NE555硬件振荡器计数实验   

  利用NE555可以组成相当多的应用电路,甚至多达数百种应用电路,在各类书刊中均有介绍,例如家用电器控制装置、门铃、报警器、信号发生器、电路检测仪器、元器件测量仪、定时器、压频转换电路、电源应用电路、自动控制装置及其它应用电路都有着广泛的应用,这是因为NE555巧妙地将模拟电路和数字电路结合在一起的缘故。在本机中组成一个硬件振荡器,通过W2调节输出频率。由JP80输出,可以给单片机做计数实验。

NE555的外形图:

相关原理:

程序运行的照片:

1、接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51.

2、接8位数码管的显示位线。将数码管部份的显示位口 JP8接到CPU部份的P2口JP52.

3、用一条1PIN线连接555部分的JP80和CPU部分的P3.5

程序流程图:

汇编语言参考程序:

a_bit equ 20h ;个位寄存器
b_bit equ 21h ;10位寄存器
c_bit equ 22h ;百位寄存器
d_bit equ 23h
e_bit equ 24h
f_bit equ 25h
org 0000h
ajmp star
org 0080h
star: ;初始化把所有的位全部清零
mov a,#00h
mov a_bit,a
mov b_bit,a
mov c_bit,a
mov d_bit,a
mov e_bit,a
mov f_bit,a
stlop: acall display ;调用显示
jb p3.5,stlop ;监测键盘,如果p3.2按下那么执行显示
we: acall display ;显示保持!
acall d1ms ;延时1ms避免键盘误动作
jnb p3.5,we ;如果p3.2还没有放开继续延时
count: ;计算数据部分
inc a_bit ;个位加1
mov a,a_bit
cjne a,#10,stlop ;如果在10以内显示
mov a_bit,#00h ;如果到了10则清除
inc b_bit ;10位加1
mov a,b_bit
cjne a,#10,stlop ;如果在10以内显示
mov b_bit,#00h ;如果到了10则清除
inc c_bit ;百位加1
mov a,c_bit
cjne a,#10,stlop
mov c_bit,#00h
inc d_bit
mov a,d_bit
cjne a,#10,stlop
mov d_bit,#00h
inc e_bit
mov a,e_bit
cjne a,#10,stlop
mov e_bit,#00h
inc f_bit
mov a,f_bit
cjne a,#10,stlop
mov f_bit,#00h
ajmp stlop
display: ;显示
mov dptr,#numtab ;送数据表
mov a,a_bit ;送个位数据
MOVC A,@A+DPTR ;查表
mov p0,a ;送p0口显示
clr p2.6 ;选中第一个数码管
acall d1ms ;显示1ms
setb p2.6 ;关闭显示
mov a,b_bit ;送10位数据
MOVC A,@A+DPTR ; 查表
mov p0,a ;送p0口显示
clr p2.5 ;选中第二个数码管
acall d1ms ;显示1ms
setb p2.5 ;关闭显示
mov a,c_bit
MOVC A,@A+DPTR
mov p0,a
clr p2.4
acall d1ms
setb p2.4
mov a,d_bit
MOVC A,@A+DPTR
mov p0,a
clr p2.3
acall d1ms
setb p2.3
mov a,e_bit
MOVC A,@A+DPTR
mov p0,a
clr p2.2
acall d1ms
setb p2.2
mov a,f_bit
MOVC A,@A+DPTR
mov p0,a
clr p2.1
acall d1ms
setb p2.1
ret
D1MS: ;数码管延时
MOV R7,#2
DJNZ R7,$
RET
;数码管代码表
numtab: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
;0 1 2 3 4 5 6 7 8 9
end

c语言参考程序:
#include <AT89X55.H>
#include <string.h> //头文件
#include<intrins.h>
#define uchar unsigned char //宏定义,为方便编程
#define uint unsigned int
#define SELECT P2 //宏定义,将P2口定义为数码管选择位
#define DIGI P0
uchar digivalue[]={0x28,0x7e,0x0a2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};
//显示的数字数组,依次为0,1,..,9
uchar gewei=0,shiwei=0,baiwei=0,qianwei=0,wanwei=0; //定义位变量
uint num=0;
void delay() //跳变延迟函数
{
uchar ii=250;
while(ii--);
}
void init()
{
TMOD=0x50;
TH1=0xff;
TL1=0xff;
TR1=1;
ET1=1;
EA=1;
}
void display()
{
if(num>65500)
num=0;
wanwei=num/10000; //位之间的关系
qianwei=num%10000/1000;
baiwei=num%1000/100;
shiwei=num%100/10;
gewei=num%10;
SELECT=0x7f; //个位数码管位选择
DIGI=digivalue[gewei];
delay();
SELECT=0xbf;
DIGI=digivalue[shiwei];
delay();
SELECT=0xdf;
DIGI=digivalue[baiwei];
delay();
SELECT=0xef;
DIGI=digivalue[qianwei];
delay();
SELECT=0xf7;
DIGI=digivalue[wanwei];
delay();
SELECT=0xfb;
DIGI=digivalue[0];
delay();
SELECT=0xfd;
DIGI=digivalue[0];
delay();
SELECT=0xfe;
DIGI=digivalue[0];
}
char code SST516[3] _at_ 0x003b; //仿真器入口
main()
{
init(); //初始化串口,并打开接收与发送
while(1)
{
display();
}
}
void timer1(void) interrupt 3
{
TH1=0xff;
TL1=0xff;
num+=1;
}

 

精致外观

精致外观

精致外观

精致外观

精致外观

精致包装

精致包装

精致包装

配套附件

配套附件

使用手册

使用手册

使用手册

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

精致细节

精致细节

精致细节

精致细节

配套光盘