TX-1C 单片机开发板实验

合集下载

简单51单片机开发板的电路设计

简单51单片机开发板的电路设计

简单51单片机开发板的电路设计51单片机开发板电路设计详细步骤及说明如下:一、准备工作1.定义开发板功能需求:根据具体需求确定开发板所需的功能模块,如AD转换、LCD显示、键盘输入等。

2.确定系统时钟源:选择合适的晶振,并确定时钟源用于驱动单片机。

二、电源设计1.选择适当的电源电压:根据单片机的工作电压范围选择合适的电源电压,并设计电源电路。

2.设计稳压电路:根据电源要求设计合适的稳压电路,保证单片机工作时电压稳定。

三、时钟电路设计1.选择合适的晶振:根据系统时钟需求选择合适的晶振,并设计相应的晶振电路。

2.设计时钟源电路:根据晶振的工作参数设计合适的时钟源电路,确保时钟信号稳定且频率准确。

四、复位电路设计1.根据单片机复位要求设计复位电路,保证单片机正常复位。

2.设计复位延时电路:根据需要设计复位延时电路,保证单片机复位后稳定运行。

五、外部IO电路设计1.根据开发板需求,设计并布局合适的IO接口电路,如LED指示灯、按键输入接口等。

2.设计并连接AD转换电路:根据需求设计和连接AD转换电路,实现模拟信号的采集和处理。

六、通信接口电路设计1.根据需求设计并连接串口接口电路,实现与其他设备的通信。

2.根据需要设计并连接其他通信接口电路,如SPI、I2C等。

七、存储器电路设计1.根据需求设计并连接存储器电路,如RAM、ROM等。

2.根据需要设计和连接外部存储器接口电路,实现扩展存储器的功能。

八、电路调试与优化1.完成电路设计后,进行电路连线、焊接等工作,并检查和修正可能存在的错误。

2.进行电路测试并优化,确保电路正常工作,并根据需要进行性能优化。

九、布局设计与外壳制作1.进行电路板的布局设计,合理安排各个模块的位置。

2.制作外壳和连接线,并进行电路板的安装。

最后,完成电路设计之后,可以进行软件编程和调试,将单片机与外设模块进行连接和通信,实现开发板的各项功能。

TX-1C单片机实验板使用手册

TX-1C单片机实验板使用手册

天祥电子 /
Email:chaoyue02812@ TEL:13796625294
2
TX-1C 单片机实验板使用手册
1.准备工作
拿到实验板后首先需要做的几件事 当用户拿到实验板后的第一件事是先看实验板供电是否正常、 下载程序功能是 否正常、各芯片功能是否都能成功实现,检测方法如下所示: 1. 先把产品包装中的四个铜柱及镙母安装在实验板上,具体安装步骤请查看 光盘中的视频教程。 2. 将包装中的 USB 线两端分别插接实验板左侧的 USB 供电接口和电脑 USB 口, 打开实验板上电源,这时会看到实验板左侧开关旁边的电源指示灯会亮, 紧接着会看到实验板上数码管或是流水灯都有随机的亮灭现象出现,也有 可能只看到电源指示灯亮而无其它现象,这是因为我们在发货前要对产品 进行综合测试,单片机内部装有测试时的程序,用户不必奇怪,以上状态 说明实验板供电系统正常。 3. 安装 STC 单片机程序下载软件,下载光盘中写好的例程测试各功能是否正 常,安装过程及下载方法在视频中都有详细介绍,关于 STC 单片机程序下 载软件的 STC-ISP 安装,请查看本手册后面的说明或同光盘中的文档。 4. 安装单片机编程软件 KEIL 或是 WAVE,这两个软件在产品配套光盘里的软 件目录下都有,用户可自由选择使用任何一种软件,这两种软件都支持单 片机的 C 语言或是汇编语言编译, 我们推荐用户使用 KEIL, 在 TX-1C 配套 的单片机视频教学光盘中全部使用的是 KEIL 软件讲解, 在视频教学的第 1 讲中有详细的 KEIL 软件建立工程及编译源代码的介绍,请大家自行查看。 我们在手册中也做了详细的介绍,请大家查看本手册后面的说明。
[源代码] #include<reg51.h> /********************************************************** 上面这行是一个"文件包含"处理。所谓"文件包含"是指一个文件将另外 一个文件的内容全部包含进来这里的程序虽然只写了一行,但 C 编译器在处 理的时候却要处理几十或几百行,这里包含 reg51.h 的目的在于本程序要使用 P1 这个符号,而 P1 是在 reg51.h 这个头文件中定义的。大家可以在编译器目 录下面用记事本打开这个文件看看。 *********************************************************/ sbit P1_0=P1^0; //定义 IO 口这步的目的是让编//译器知// 道 P1_0 代表的就是单片机的 P1.0 口 void delay02s(void) //延时 0.2 秒子程序 { unsigned char i,j,k; //定义 3 个无符号字符型变量。 for(i=20;i>0;i--) //三个 FOR 循环用来延时,这里为 for(j=20;j>0;j--) //什么是 0.2S 大家可以用 WAVE 或 KEIL for(k=248;k>0;k--); //设置断点仿真,就可知道大概 } //是 0.2S 了。 void main(void) //每一个 C 语言程序有且只有一个主函数, {

51单片机实验手册

51单片机实验手册

51单片机实验手册一、概述51单片机是一种经典的8位微控制器,具有广泛的应用领域。

本实验手册旨在提供详细的实验指导,帮助初学者快速入门,并为进一步的学习提供基础。

二、实验准备在进行51单片机实验之前,我们需要准备以下材料:1. 一块51单片机开发板2. USB数据线或者串口线3. 电脑及编程软件4. 面包板及对应的连接线5. 红、绿、蓝LED以及相应的电阻三、实验一:LED闪烁LED闪烁是最基础的实验之一,通过控制51单片机的I/O口状态,使LED灯交替亮灭。

1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将LED的长脚连接到P1.0引脚,短脚连接到GND引脚。

2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>void main() {while(1) {P1 = 0x00; // P1置低电平,LED灯熄灭Delay(1000); // 延时1秒P1 = 0xFF; // P1置高电平,LED灯点亮Delay(1000); // 延时1秒}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。

4. 运行实验将USB数据线或串口线连接到51单片机开发板和电脑,将开发板上的开关打开,观察LED灯的闪烁情况。

四、实验二:数码管显示通过控制51单片机的I/O口状态,驱动数码管显示数字。

1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将数码管的A、B、C、D、E、F、G引脚分别连接到P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6引脚。

2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>unsigned char code segment[] = { // 数码管段码表0x3F, // 数字00x06, // 数字10x5B, // 数字20x4F, // 数字30x66, // 数字40x6D, // 数字50x7D, // 数字60x07, // 数字70x7F, // 数字80x6F // 数字9};void main() {unsigned int i;while(1) {for(i = 0; i < 10; i++) {P1 = segment[i]; // 依次在数码管上显示数字0-9 Delay(1000); // 延时1秒}}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。

TX-1C开发板秒表实例

TX-1C开发板秒表实例

一时兴起所做,基于TX-1C开发板。

内包含二极管、发光管、内部中断、独立按键等知识点。

简要操作说明b1-b4对应开发板四个独立按键。

启动之后b1进入计时器,同时计时开始。

进入计时器之后b2可以暂停计时、b3可以记录成绩。

对应发光管上依次是分个位,秒十位,秒个位、毫秒百位、毫秒十位、毫秒个位。

同时用发光二级管作为分十位的补充,每亮一个发光二级管计十分钟。

按b3记录成绩,针对该程序最多十组成绩。

但由于数码管位数,仅能精确到100毫秒。

在计时中可按b4键退出计时,同样计满十组数据也将强制退出计时部分。

退出计时部分后可按b2进入查看功能,未进行记录成绩之前无法进入该功能。

进入之后按b1、b2切换数据,10号采用A计数(16位),有兴趣的也可以对这部分进行修改、调整。

同样按b4退出该功能。

#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};sbit wela=P2^7;sbit dula=P2^6;sbit b1=P3^4;//声明四个按键sbit b2=P3^5;sbit b3=P3^6;sbit b4=P3^7;sbit beep=P2^3;//蜂鸣器uchar clock[]={0,0};//时钟分秒部分uint clock1ms=0;//毫秒部分uint chengji[10];//成绩记录uchar num=0;//记录十位分钟数uchar renshu=0;//记录人数uchar n=0;//二极管记录十位分钟uchar zanting=0;//计时暂停void delay(uchar ms)//延时函数{uchar n,m;for(n=ms;n>0;n--)for(m=110;m>0;m--);}void clock1()//时间计算{if(zanting==0)//判断是否进行暂停{clock10ms++;if(clock10ms==1000){clock[1]++;clock10ms=0;if(clock[1]==60){clock[0]++;clock[1]=0;}}}}void add()//控制发光二级管显示分钟十位{if(n==0) n=0xfe;else n=n<<1;//采用位操作P1=n;num++;}void warning(uchar n)//蜂鸣器控制,n位次数{uchar i;for(i=0;i<n;i++){beep=0;delay(500);beep=1;}}void display()//计时部分{uchar temp1[6],i;while(1){if(clock[0]==10){clock[0]=0;add();}temp1[0]=clock[0];//分别记录数码管每位显示的数字temp1[1]=clock[1]/10;temp1[2]=clock[1]%10;temp1[3]=clock10ms/100;temp1[4]=clock10ms%100/10;temp1[5]=clock10ms%10;for(i=0;i<6;i++)//将数字显示在数码管上{wela=1;P0=weixuan[i];wela=0;P0=0xff;dula=1;P0=table[temp1[i]];dula=0;delay(3);//稳定在20ms-10ms数码管显示的比较清晰//delay(800);//←调试用的可以无视}if(b2==0)//计时暂停{delay(10);if(b2==0){zanting=~zanting;warning(1);while(b2==0)for(i=0;i<6;i++)//将数字显示在数码管上,防止按下暂停时屏幕显示错误{wela=1;P0=weixuan[i];wela=0;P0=0xff;dula=1;P0=table[temp1[i]];dula=0;delay(3);}}}if(b3==0&&b2!=0)//记录成绩{delay(10);if(b3==0){renshu++;if(renshu==10)//人数计满{warning(3);}chengji[renshu-1]=num*10000+clock[0]*1000+clock[1]*10+clock10ms/100;warning(1);while(b3==0)for(i=0;i<6;i++)//将数字显示在数码管上{wela=1;P0=weixuan[i];wela=0;P0=0xff;dula=1;P0=table[temp1[i]];dula=0;delay(3); /}if(renshu==10) goto loopfinish;}}if(b4==0){delay(10);if(b4==0){warning(1);loopfinish:wela=1;P0=0xff;wela=0;break;}}}}void check()//显示成绩{uint p=0,temp2[6],i;if(renshu==0){warning(3);while(b2==0); goto loopend; }//人数为0则返回,并警报while(1){temp2[0]=p+1;//将数据拆分处理便于显示temp2[1]=chengji[p]/10000;temp2[2]=chengji[p]%10000/1000;temp2[3]=chengji[p]%1000/100;temp2[4]=chengji[p]%100/10;temp2[5]=chengji[p]%10;for(i=0;i<6;i++){wela=1;P0=weixuan[i];wela=0;P0=0xff;dula=1;P0=table[temp2[i]];dula=0;delay(15);}if(b1==0)//选择上一人{delay(10);if(b1==0){wela=1;P0=0xff;wela=0;while(b1==0);if(p==0) p=renshu-1;elsep--;}}if(b2==0)//选择下一人{delay(10);if(b2==0){wela=1;P0=0xff;wela=0;while(b2==0);if(p==renshu-1) p=0;elsep++;}}if(b4==0)//退出{delay(10);if(b4==0){loopend:wela=1;P0=0xff;wela=0;break;}}}}void main(){TMOD=0x01;TH0=(65535-1000)/256;TL0=(65535-10000)%256;EA=1;ET0=1;loopmain:while(1){if(b1==0){delay(10);if(b1==0){while(b1==0);goto loop1;}}if(b2==0){delay(10);if(b2==0){while(b2==0);goto loop2;}}}loop1://计时TR0=1;//while(b1==0);display();zanting=0;while(b4==0);clock10ms=0;clock[0]=0;clock[1]=0;TR0=0;;goto loopmain;loop2://时间查询//while(b2==0);check();while(b4==0);goto loopmain;}void time() interrupt 1//中断服务{clock1();TH0=(65535-1000)/256;TL0=(65535-1000)%256;}。

单片机实验开发板测试程序详解

单片机实验开发板测试程序详解

单片机实验开发板测试程序详解测试程序对于初学者来说可能比较复杂,但是也是由网站上几个小程序组合而成的,初学者可以通过后面教程的学习来掌握这段程序。

这个测试程序的功能是:接通电源后P0口的八个发光二极管依次从下往上点亮,然后蜂鸣器鸣叫一声,两个继电器轮流动作一次,数码管的个位显示8,再换成十位显示8,然后不断循环,如果这时按下红外遥控器的按键时,蜂鸣器立即发出“滴滴滴”的提示音,同时将这个按键的键值通过串口在电脑屏幕上显示出来(需要运行串口调试软件)通过这个程序可以判断单片机实验开发板的各个部分的硬件和软件都是完好的,具体的源程序如下:ORG 0000HAJMP MAIN;转入主程序ORG 0003H;外部中断P3.2脚INT0入口地址AJMP INT;转入外部中断服务子程序(红外遥控解码程序);以下为主程序进行CPU中断方式设置MAIN:LCALL YS3;等待硬件上电稳定SETB EA;打开CPU总中断请求SETB IT0;设定INT0的触发方式为脉冲负边沿触发SETB EX0;打开INT0中断请求MOV SCON,#50H;设置成串口1方式MOV TMOD,#20H;波特率发生器T1工作在模式2上MOV PCON,#80H;波特率翻倍为2400x2=4800BPSMOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值) MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值) SETB TR1;启动定时器T1;以上完成串口通讯初始化设置START:MOV P1,#01111111BLCALL DELAYMOV P1,#10111111BLCALL DELAYMOV P1,#11011111BLCALL DELAYMOV P1,#11101111BLCALL DELAYMOV P1,#11110111BLCALL DELAYMOV P1,#11111011BLCALL DELAYMOV P1,#11111101BLCALL DELAYMOV P1,#11111110B;P1口的LED循环由下往上点亮一次,延时约250毫秒LCALL DELAYMOV P2,#11011111B;蜂鸣器鸣响一声LCALL DELAYMOV P2,#11101111B;继电器J1吸合一次LCALL DELAYMOV P2,#11110111B;继电器J2吸合一次LCALL DELAYMOV P0,#0FFHMOV P2,#01111111B;数码管个位显示8LCALL DELAYMOV P0,#0FFHMOV P2,#10111111B;数码管十位显示8LCALL DELAYAJMP START;反复循环;以下为进入P3.2脚外部中断子程序,也就是解码程序INT: CLR EA;暂时关闭CPU的所有中断请求MOV R6,#10SB: ACALL YS1;调用882微秒延时子程序JB P3.2,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序;以上完成对遥控信号的9000微秒的初始低电平信号的识别。

单片机开发板实验指导书最终

单片机开发板实验指导书最终

单片机开发板实验指导书目录实验一熟悉编程软件的使用 (1)实验二熟悉下载环境 (9)实验三延时流水灯实验 (12)实验四IO口中断实验 (13)实验五定时中断实验 (13)实验六独立按键实验 (14)实验七CH451驱动数码管显示实验 (15)实验八矩阵键盘扫描与数码管显示实验 (15)实验九串口通信实验 (16)实验十数字温度传感器DS18B20实验 (17)实验十一RTC实时时钟DS1302实验 (18)实验十二DAC0832实验 (18)实验十三ADC0804实验 (19)附录一元器件的极性识别 (21)附录二焊接要求与注意事项 (23)实验一熟悉编程软件的使用一、实验目的掌握KEIL编程软件的安装及使用方法,熟悉KEIL编程环境。

二、实验步骤(一)、先安装下载软件:1.在单片机开发板的开发工具文件夹中找到KEIL文件夹,然后双击“C51V900修正版1.1.exe”,按照提示安装即可。

安装完成后会在桌面上出现一个KEIL uVision4的图标。

2.对KEIL软件进行在线注册,首先打开uVision4,在菜单栏中找到File选项,然后再File栏中选择License Management选项,如图1所示,在打开的License Management窗口,复制右上角的CID。

图1在KEIL文件夹中找到“Keil_lic-v3.2.exe”,然后双击。

打开注册机,在CID窗口里填上刚刚复制的CID,其它设置不变,点击Generate生成许可号,复制许可号,如图2所示。

将许可号复制到License Management窗口下部的New LicenseID Code,点击右侧的Add LIC。

若上方的Product显示的是PK51 Prof。

Developers Kit即注册成功,Support Period为有效期,一般可以到30年左右,若有效期较短,可多次生成许可号重新注册。

如图3所示。

图2图3(二)、此时,KEIL软件我们就注册成功了。

TX-1C 单片机开发板实验

TX-1C 单片机开发板实验
【硬件电路】
【程序代码】
#include <reg52.h> sbit BY1=P3^4; unsigned char count; unsigned char temp; unsigned char a,b; void delay10ms(void) {
unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } key() {
【实验说明】
关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为 的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的 时间大约为 50ms 左右,在按下瞬间到稳定的时间为 5-10ms,在松开的瞬间到稳定的时间也 为 5-10ms,如果我们在首次检测到键被按下后延时 10ms 左右再去检测,这时如果是干扰 信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。
基于TX 单片机实验板的基本实验
实验一:流水灯实验 【实验目的】
掌握循环移位的工作原理和操作方法,学会使用 C51 封装好的函数库 C51LIB,延时函数的 时间估算。
【实验现象】
单片机 P1 口相连的 8 个发光二极管中的一个循环移位点亮,同时蜂鸣器发出滴滴的响声。
【实验说明】
蜂鸣器用一 PNP 型三极管驱动,集电极(C 极)通过蜂鸣器线圈接 5V 电源,基极(B 极) 是控制端,发射极(E 极)接地,当三极管 C,B 极 PN 结正偏时,PN 结导通,即 B 极为低电 平时,三极管导通,蜂鸣器发声,视频中有介绍,若大家有疑问可参考模电书。
delay10ms(); beep=0; delay10ms(); beep=1; j=_crol_(k,1); k=j; P1=j; } }

c51单片机实验报告

c51单片机实验报告

C51单片机实验报告实验目的本实验旨在通过对C51单片机的学习和实践,了解单片机的基本原理和使用方法,掌握C语言与单片机的编程技巧。

实验器材•C51单片机•电脑•C语言开发环境•连接线实验步骤步骤一:准备工作1.将C51单片机与电脑连接,确保连接线连接正确且稳固。

2.在电脑上安装C语言开发环境,如Keil等。

3.打开C语言开发环境,创建一个新的工程。

步骤二:编写程序1.在新建的工程中,打开主程序文件。

2.根据实验要求,编写相应的C语言程序。

3.确保程序逻辑正确,没有语法错误。

步骤三:编译程序1.在C语言开发环境中,点击编译按钮,对程序进行编译。

2.检查编译结果,确保没有出现错误提示。

步骤四:下载程序1.将编译成功的程序下载到C51单片机中。

2.确保下载过程中连接稳定,避免中断导致下载失败。

步骤五:运行程序1.完成程序下载后,断开C51单片机与电脑的连接。

2.将C51单片机连接到相应的电路中。

3.打开电源,启动C51单片机。

4.观察程序的运行情况,检查是否符合预期的结果。

实验结果根据实验要求,我们可以通过观察C51单片机的运行结果来验证程序的正确性。

如果程序实现了预期的功能,且单片机能够正常运行,即可认为实验结果是成功的。

实验总结本次实验通过对C51单片机的学习和实践,我们掌握了单片机的基本原理和使用方法,同时也提升了C语言与单片机的编程技巧。

在实验中,我们遵循了一步一步的思路,从准备工作到编写程序、编译程序、下载程序以及最终的运行程序,每个步骤都有条不紊地进行,确保实验的顺利进行。

通过本次实验,我们深刻认识到了单片机在现代电子技术中的重要性,它广泛应用于各个领域,如家电、汽车、通信等。

掌握单片机的原理和使用方法,对于我们今后的学习和工作都具有重要的意义。

参考资料[1] C51单片机实验指导书[2] C语言与单片机编程教程。

1T指令单片机配合18B20测温程序与经验总结

1T指令单片机配合18B20测温程序与经验总结

谈STC的1T指令51单片机上一周,我为了我们的创新基金项目而做了一个ds18b20温度显示试验,用的是郭天祥郭老师的TX-1C实验板,将温度传感器采集到的温度显示在1602液晶屏幕上,显示一切正常因为之前上一个寒假也做过。

所以也没什么难的,很顺利就做好了。

实验室一女生看到后就想让我给他们寝室做一个这温度显示的玩意儿,随时能知道外边的温度以不至于他们女生穿得太少而挨冻!然后我就觉得小菜一碟嘛,看我的,三下五除二给你整一个,然后我就开始找了一块5*7的洞洞板开始焊接了。

我准备用一个20脚的单片机11f02e来做,然后用一个3位的共阳数码管来显示温度,16个IO口用12个够用了。

然后我就开工了,很快我就把硬件给焊接好了。

把单片机烧好我写的程序,上电之后竟然数码管显示3位零。

然后就到处调程序但是还是没有作用。

在调试程序的过程中我发现18b20根本就没有应答单片机,数码管显示的零是各位的默认初值。

也就是说单片机根本就没有检测到存在脉冲,难道是时序有问题?然后我就把程序烧到我的开发板上,哎,一切显示正常。

这见鬼了,怎么会出现这种事情呢?后来我就想硬件有问题吗?然后我就把我焊接的小板上的所有的引脚都用杜邦线连接到单片机开发板上的IO口,一模一样的程序结果还是能够正常显示,这就很有力地印证了第一,我焊接的板子没问题;第二,问题绝对出在单片机上。

然后我就换了一块20脚的单片机烧好程序后发现还是老样子。

顿时我都没有信心继续搞了,但是当时已经答应人家,怎么能说不做就不做呢?必须得把问题找出来。

最起码我现在已经确定是单片机的问题,而且单片机没有损坏,那说明我用的不对。

然后我就上网查这款单片机,我发现一句至关重要的话:“11系列是后来研发生产的,STC11系列:1T时钟周期,高速运算能力,是89系列的8-12倍。

”然后我就恍然大悟,原来是11系列的单片机是1T指令的;然后就是原来ds18b20里的时序里边的延时库函数延时要比89系列的短好多,这也就印证了为什么用开发板(板载单片机为89C52RC)可以用,而我焊的板就不行。

单片机C51程序设计实验报告书

单片机C51程序设计实验报告书

实验一并行输入输出口的使用一、实验目的:学会设计proteus 7仿真电路,学习P1口的使用方法和延时子程序的编写用Keil uVision 3编程实现发光二极管的流水点亮。

二、实验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1)。

P1口作为输出,接8个发光二极管D1~D8三、实验代码:#include<reg51.h>#include<intrins.h> //移位库函数包含于此头文件中void delay(unsigned int d) //定义延时子函数{ while(--d>0);}void main(){ unsigned char i,sel;while(1){ sel=0xfe;for(i=0;i<=8;i++){ P1=sel; //显示变量赋给P1口delay(50000); //延时sel=_crol_(sel,1); //改变显示变量}}}四、实验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。

实验二C51分支程序设计一、实验目的:学习多分支选择结构和switch语句,了解循环的嵌套。

二、实验原理:do while 循环先执行后判断是否循环,switch括号中的表达式的值与某case后的常量表达式的值相同时,就执行它后面的语句,遇到break语句则退出switch语句。

本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include <reg51.h>void main(){ char a;do{ P1=0xff;a=P1;a=a&0x03;switch(a){ case 0:P2=0x0e;break;case 1:P2=0x0d;break;case 2:P2=0x0b;break;case 3:P2=0x07;break;}}while(1);}四、实验结论:多分支选择的switch/case语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。

单片机的软件复位(TX-1C开发板学习单片机的软件复位)

单片机的软件复位(TX-1C开发板学习单片机的软件复位)

(2)“ISP_CONTR=0x20;”用软件复位到用户应用程序区(AP区),重新开始执行程序。
(3)从演示结果可看出,当数码管上的数字显示到“09”,再加一秒时,数字立即变成“00”,则说明程序复位从头开始执行了。
ISP_CONTR=01100000B,SWBS=1(选择ISP区),SWRST=1(软复位)。
本复位是整个系统复位,所有的特殊功能寄存器都会复位到初始值,I/O口也会被初始化。
用户应用程序区(AP区)指仅仅是用户自己编写的程序区。
0
0
1
22
120
21885
小于20MHz
0
0
0
43
240
43769
小于40MHz
SWBS与SWRST组合情况如下:
从用户应用程序区(AP区)软件复位并切换到用户应用程序区(AP区)开始执行程序:
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
分析:
(1)“sfr ISP_CONTR=0xe7;”定义ISP/IAP控制寄存器。
#include <reg52.h> //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sfr ISP_CONTR=0xe7;
sbit dula=P2^6; //申明U1锁存器的锁存端
}
void delayms(uint,j;

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文单片机(Microcontroller)是指一种封装了微处理器(Microprocessor)、存储器和各种输入输出接口电路功能的集成电路。

单片机在电子设计与开发中有广泛应用,可以用于控制和监测各种系统和设备。

本实验报告将介绍在实验中使用单片机所进行的实验步骤和实验结果。

实验目的:1.理解单片机的基本工作原理和功能。

2.掌握单片机的编程和调试方法。

3.应用单片机实现简单的控制功能。

实验仪器和材料:1.单片机开发板2.计算机B数据线4.电源适配器5.LED灯6.麦克风模块7.温度传感器实验步骤:1.准备工作:将单片机开发板与计算机连接,接通电源适配器。

2.熟悉开发工具:安装单片机开发软件,并了解软件的基本功能。

3.学习编程语言:了解单片机的编程语言,例如C语言或汇编语言,并编写简单的程序。

4.硬件连接:将LED灯、麦克风模块和温度传感器连接至开发板的相应引脚。

5.编程实现:根据实验要求,编写相应的程序,控制LED灯、获取麦克风模块的声音信号或获取温度传感器的温度值。

7.实验结果:根据实验要求,记录LED灯的亮灭状态、麦克风模块的声音信号强度或温度传感器的温度数值。

实验结果:通过实验,我们成功地控制了LED灯的亮灭状态,获取了麦克风模块的声音信号强度和温度传感器的温度数值。

在编程实现过程中,我们学会了使用单片机编程语言,了解了一些常用的语法和函数。

在调试测试中,我们可以通过相关的输出或显示结果来判断程序的正确性,及时发现和修复错误。

实验总结:本实验通过单片机开发板和相应的硬件以及编程实现了简单的控制和监测功能。

通过实验,我们深入了解了单片机的基本工作原理和功能,并掌握了一些基本的编程和调试方法。

实验结果表明,我们成功实现了实验要求,并对单片机的应用有了更加深入的理解。

通过这次实验,我们不仅提高了动手实践能力,也增加了对科技发展的看法。

南昌大学单片机实验

南昌大学单片机实验

南昌大学实验一清零实验(基础实验)一、实验目的1. 掌握存储器读写方法。

2. 了解存储器的块操作方法。

二、实验内容1. 指定内部RAM中某块的起始地址和长度,要求能将其内容清零。

2. 指定外部RAM中某块的起始地址和长度,要求能将其内容清零。

3. 指定外部RAM中某块的起始地址和长度,要求能将其内容置为某固定值(如0FFH)。

三、实验说明通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。

四、实验仪器和设备PC机、W A VE软件。

五、参考程序框图设置块起始地址设置块长度当前地址内容清零地址加1否是否清除完?是结束存储器块清零参考程序框图六、参考程序(略)实验二拆字程序(基础实验)一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把7000H的内容拆开,高位送7001H低位,低位送7002H低位。

7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。

三、实验说明通过本实验,屏蔽半字节及拆字的方法,同时也可以了解单片机编程、调试方法。

四、主要仪器设备及耗材PC机、W A VE软件五、参考程序框图六、参考程序(略)开始7000内容送A高低位交换屏蔽高位后送7001H 7000H内容送A屏蔽高位后送7002H结束实验三拼字程序(基础实验)一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把7000H的低四位BCD数和7001H的低四位BCD数,拼成压缩BCD码的形式存放在7002H。

三、实验说明通过本实验,掌握拼字的编程方法,同时也可以了解单片机编程、调试方法。

四、主要仪器设备及耗材PC机、W A VE软件五、参考程序框图开始7001H内容送A,A-〉30H,7000H内容送AA中低四位和30H低四位相拼,存AA-〉7002H结束六、参考程序(略)实验四数据块移动(基础实验)一、实验目的1.了解内存的移动方法。

2.加深对存储器读写的认识。

TX-1C型单片机开发板介绍V2.0

TX-1C型单片机开发板介绍V2.0

TX-1C型单片机学习板介绍一.51系列单片机实验板 (直接USB口和串口两种方式直接下载程序和在线仿真调试)本实验板使用的是STC公司生产的STC89C52RC单片机,它是一款性价比非常高的单片机,普通用户可完全将其当作一般的51单片机使用,高级用户可使用其扩展功能。

STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它内部有1280字节的SRAM、8-64K字节的内部程序存储器、2-8K字节的ISP引导码、除P0-P3口外还多P4口(PLCC封装)、片内自带8路8位AD(AD系列),片内自带EEPROM、片机自带看门狗、双数据指针等。

目前STC公司的单片机在国内市场上的占有率与日俱增。

TX系列单片机学习板可完全作为各种51单片机的实验板,用汇编语言或C语言对其进行编程。

通过板上USB程序下载接口可直接通过计算机的USB口下载程序给单片机,同时也支持USB口在线仿真调试功能。

二.TX-1C实验板基本配置及功能介绍1、89C52单片机,支持USB口在线下载程序及USB口在线仿真调试,也就是用户不用再买单片机烧写器也能够随时烧写程序到你的片子里查看您编写的程序状况。

2、6位数码管(做数码管动态扫描及静态显示实验)。

3、8位LED发光二极管(做流水灯实验)。

4、串口RS232通讯接口(可以作为与计算机通讯的接口同时也可作为该实验板下载程序及仿真调试的接口)5、USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直流电源。

6、蜂鸣器(做单片机发声实验)7、ADC0804芯片(做模数转换实验)。

8、DAC0832芯片(做数模转换实验)9、PDIUSBD12芯片,(USB设备开发,通过此芯片可实现计算机与单片机之间的数据传输,高级用户可开发USB设备产品,如MP3,U盘等)。

10、USB转串模块(实现USB协议转RS232协议,即使用户对USB协议非常陌生也可通过此芯片非常方便的开发USB周边产品)11、DS18B20数字温度传感器(亲自编写程序获知当前温度)12、AT24C02 外部EEPROM芯片(IIC总线数据存储元件原理实验)。

工作报告之单片机数码管实验报告

工作报告之单片机数码管实验报告

单片机数码管实验报告【篇一:单片机实验报告——led数码管显示实验】《微机实验》报告led数码管显示实验指导教师:专业班级:姓名:学号:联系方式:一、任务要求实验目的:理解led七段数码管的显示控制原理,掌握数码管与mcu的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容:利用c8051f310单片机控制数码管显示器基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1hz。

提高要求:在4位数码管显示器上依次显示当天时期和时间,显示格式如下: yyyy (年份)mm.dd(月份.日)hh.mm(小时.分钟)思考题:数码管采用动态驱动方式时刷新频率应如何选择?为什么?二、设计思路c8051f310单片机片上晶振为24.5mhz,采用8分频后为3.0625mhz ,输入时钟信号采用48个机器周期。

0到9对应的断码为:fch、60h、dah、f2h、66h、b6h、beh、e0h、feh、f6h 基础部分:由于只需要用末位数码管显示,不需要改变位码,所以只需要采用led的静态显示。

采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重新开始循环。

每次循环延时1s,采用定时器0定时方式1。

提高部分:四个数码管都要显示,所以采用led的动态显示。

由于数码管的位选由p0.7、p0.6控制,p0端口的其他引脚都没用到,所以对p0端口初始化赋00h,每次循环加40h、选中下一位,四次后十六进制溢出,p0端口变又为00h回到第一个数码管。

每位数码管显示一个段码后都延时1ms(否则数码管太亮,刺眼)采用定时器0定时方式1,依然采用查表法改变段码值。

通过循环: djnz r5,backmovr5,#250 djnz r4,back movr4,#8来控制每种模式的切换时间,我采用2s切换一次(8*250*1ms=2s)。

切换模式,可以采用改变查表法的偏移量来实现,没切换一次模式,偏移量加04h,三次后回到初始偏移量,来实现三种模式的循环显示。

天狼星开发板使用手册(带目录)

天狼星开发板使用手册(带目录)
1.1 产品概述............................................................................................................................3 1.2 板载资源介绍....................................................................................................................3 1.3 TLX-1C单片机开发板接口说明 ......................................................................................4 1.4 整板测试............................................................................................................................6 1.5 51 单片机下载软件的使用...........................................................................................13 1.6 TLX-1C开发板各种连接方法 .....................................................................................19 2 TLX-1C开发板例程详细介绍 ..................................................................................................21 2.1 闪烁灯..............................................................................................................................21 2.2 流水灯实验 1...................................................................................................................23 2.3 流水灯实验 2....................................................................................................................25 2.4 流水灯实验 3....................................................................................................................27 2.5 蜂鸣器操作实验...............................................................................................................28 2.6 继电器操作实验..............................................................................................................29 2.7 步进电机操作实验...........................................................................................................31 2.8 数码管动态显示实验.......................................................................................................32 2.9 8×8LED点阵显示实验 ....................................................................................................33 2.10 独立按键检测实验........................................................................................................35 2.11 矩阵键盘检测实验........................................................................................................37 2.12 外部中断 0 实验............................................................................................................39 2.13 定时器 0 实验................................................................................................................41 2.14 串口通信实验................................................................................................................42 2.15 LCD1602 液晶显示实验 ...............................................................................................44 2.16 DAC0832 转换实验 .......................................................................................................47 2.17 ADC0804 转换实验 .......................................................................................................48 2.18 PS/2 键盘键值检测实验................................................................................................51 2.19 红外遥控器解码实验....................................................................................................53 2.20 IIC总线芯片AT24C02 芯片操作..................................................................................57 2.21 实时时钟芯片DS1302 芯片操作..................................................................................62 2.22 数字温度传感器DS18B20 芯片操作 ...........................................................................67 2.23 EEPROM芯片AT93C46 的使用 ..................................................................................70 2.24 LCD12864 液晶显示实验 .............................................................................................75 2.25 NOKIA5110 液晶显示实验 ..........................................................................................79 3 开发板使用注意事项 .................................................................................................................90 4 产品装箱单和售后服务及联系方式.........................................................................................92

:TX-51STAR单片机综合实验箱

:TX-51STAR单片机综合实验箱

子客服 更多>>售前咨询售前咨询售前咨询投诉建议3m索索产品设接 更多>>圳分公司设计联盟当前位置:首页 > 产品展示产品名称:TX-51STAR 单片机综合实验箱产品编号:TX-51STAR产品规格:330*300*70产品价格:0.00元/个产品人气:6809上传时间:2008-12-29 12:07:54推荐:★★★★★产品简介:如要购买,请联系我们的客服。

谢谢!功能特点:51STAR单片机综合实验箱完全兼容TX-1C 51单片机开发板所有功能,除此之外该板还扩展了以下实验功能:1.实验箱主芯片采用STC89C516(51内核,更大的1280字节SRAM,64KB程序存储空间);2.铝合金外箱包装(特制铝合金外壳,方便移动和运输);3.PS/2接口(用来连接PS/2接口的键盘和鼠标);4.DS1302实时时钟(板载钮扣电池座和标准时钟晶振,用来设计精确时钟);5.双路继电器(使用小电流驱动继电器,预留用户外接接口);7.红外遥控接收器(可用普通遥控器当作发射装置,实现红外遥控功能);8.MP3模块(采用MP3专用解码芯片,直接连接音箱设备实现歌曲播放);9.U盘读/写模块(可实现对U盘文件系统的直接读取与写入);10.FM收音机模块(通过按键调节接收频率,可自行设计出数字收音机);11.SD卡读/写模块(可实现对扇区的直接读写与文件系统的直接读写功能);12.板载320×240彩色触摸屏液晶(学习彩色液晶和触摸屏的工作原理);13.板载12864图形显示液晶(学习普通黑白液晶的文字显示及图片显示原理);14.电机模块(集4相步进电机、直流电机和舵机于一体);配套实验例程(C语言):1.闪烁灯。

2.流水灯。

3.单键识别。

4.59秒计数器。

5.矩阵键盘检测。

6.利用定时器让蜂鸣器唱歌。

7.模数转换AD试验。

8.数模转换DA试验。

9.DS18B20温度传感器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【实验说明】
关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为 的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的 时间大约为 50ms 左右,在按下瞬间到稳定的时间为 5-10ms,在松开的瞬间到稳定的时间也 为 5-10ms,如果我们在首次检测到键被按下后延时 10ms 左右再去检测,这时如果是干扰 信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。
【硬件电路】
25
【程序代码】
#include<reg51.h>
#define uchar unsigned char
uchar j,k,i,a,A1,A2,second; sbit dula=P2^6;
//锁存器控制端定义
sbit wela=P2^7;
uchar code table[]= {
//数字编码
参考程序:
程序一:
ORG 0000H AJMP START
ORG 000BH AJMP TIME0
;定时器 0 的中断向量地址 ;跳转到真正的定时器程序处
ORG 0030H
START:
MOV P1,#0FFH ;关所有灯
MOV TMOD,#00000001B ;定时/计数器 0 工作于方式 1
MOV TH0,#15H
【实验说明】
本开发板上数码管为共阴极。静态数码管显示原理(视频中有详细介绍):这里就共阴极数 码管显示原理进行讲解,一位数码管内一共有 8 个发光二极管,对共阴极来说其 8 个发光二极 管的阴极在数码管内部全部接在一起,也就是“共阴”说法的来源,阳极是独立的,设计电路时 一般把阴极接地,当我们从外部给任一个阳极加一个高电平时这个发光二极管就亮了,如果想要 出一个 8 字,并且把右下角的小数点也点亮的话,那可以给 8 个阳极全送高电平,想让数码管 显示几就给相对应的发光二极管送高电平,因此我们在显示数字的时候首先做的就是给 0-9 十个 数字编好码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。另外说一下,一般 的数码管每一段亮至少需要 10 个毫安的电流,而单片机的 IO 口送不出如此大的电流,所以我 们需要加数码管的驱动电路,可以用上拉电阻的方法,也可以使用专门的驱动芯片,本开发板使 用的 74HC573,其输出电流较大,足够点亮数码管。本开发板上的六位数码管中每个相同段号 (段指 a,b,c,d,e,f,g,h)全部是接在一起的,其中每一个位(阴极)是独立的,所以在做静态显 示的时候所有的数码管只能显示相同的数字,当然可以控制哪几位显示,如果让它们显示不同的 数字那就得给每一个数码管加一套驱动电路了。但这样做是没有必要的,后面我们会讲到关于数 码管动态显示原理。
{ delay10ms();
//延时,软件去抖动干扰
if(BY1==0)
//再次检测确认按键按下
{ count++;
//按键计数加 1
if(count==8) //计 8 次重新计数
{ count=0;
//将 count 清零
}
} while(BY1==0); //等待按键释放,如果键未释放则一直在此等待。
MOV TL0,#0A0H ;即数 5536
SETB EA
;开总中断允许
SETB ET0 ;开定时/计数器 0 允许
SETB TR0
;定时/计数器 0 开始运行
LOOP: AJMP LOOP
;真正工作时,这里可写任意程序
TIME0:
;定时器 0 的中断处理程序
PUSH ACC
PUSH PSW
;将 PSW 和 ACC 推入堆栈保护
JNB TF0,$ CLR TF0 CPL P1.0 JNB TF1,AT2 CLR TF1 SJMP AT1 END
实验四:59秒计数器及数码管动态显示 【实验目的】
练习进位操作,数码管动态显示。
【实验现象】
用软件延时的方法实现 0-59 秒自动计数器,用数码管的前两位显示出来。
【实验说明】

下面给出本开发板共阴极数码管数字编码
矩阵键盘的四行分别与 P3.0-P3.3 连接,四列分别与 P3.4-P3.7 连接。 27
【硬件电路】
键盘电路请参阅“单键识别”,此处略。
28
【程序代码】
#include<reg51.h>
sbit beep=P2^3;
//蜂鸣器接口
sbit dula=P2^6;
基于TX 单片机实验板的基本实验
实验一:流水灯实验 【实验目的】
掌握循环移位的工作原理和操作方法,学会使用 C51 封装好的函数库 C51LIB,延时函数的 时间估算。
【实验现象】
单片机 P1 口相连的 8 个发光二极管中的一个循环移位点亮,同时蜂鸣器发出滴滴的响声。
【实验说明】
蜂鸣器用一 PNP 型三极管驱动,集电极(C 极)通过蜂鸣器线圈接 5V 电源,基极(B 极) 是控制端,发射极(E 极)接地,当三极管 C,B 极 PN 结正偏时,PN 结导通,即 B 极为低电 平时,三极管导通,蜂鸣器发声,视频中有介绍,若大家有疑问可参考模电书。
//先给 k 一个初值 11111110 等待移位
//打开蜂鸣器 //让它响 10ms //关闭蜂鸣器 //把 k 循环左移一位 //把移完的值再送给 k //同时把值送到 P1 口点亮发光二极管 //再次循环
22
实验二:单键识别实验
【实验目的】
独立按键的识别方法、键盘消抖等。
【实验现象】
每按一次独立键盘的 S2 键,与 P1 口相连的八个发光二极管中点亮的一个往下移动一位。
CPL P1.0
MOV TH0,#15H
MOV TL0,#0A0H ;重置定时常数
POP PSW
POP ACC
RETI
END
程序二:
ORG 0000H AT0: MOV P1,#0FFH
MOV TMOD,#61H ;设置 T1 为计数器,工作于方式 2;设置 T0 为定时器,工作于方式 1 MOV TL1,#246 MOV TH1,#246 SETB TR1 AT1: CPL P1.7 AT2: MOV TL0,#00H ; MOV TH0,#4CH ;即数 15536 SETB TR0
为止。 五、编程提示 1、程序 1 说明 定时器 T0、T1 的数据寄存器都是 16 位,定时间隔有限,因此会发 现 LED3 闪烁的速度很快。 2、程序 2 说明 (1)该程序要求定时时间间隔为 1 秒,故应采用复合定时的方法。 即设 T0 为 50ms 定时器,每 50ms 使 P1.0 输出变化一次,则 100ms 后 P1.0 输出一个完整的计数脉冲,作为 T1 计数器的计数输入,所以 T1 每计数 10 次就能完成 1 秒的定时。 六、实验报告 1、画出硬件接线图。 2、写出程序清单(要写出必要的注释)和执行结果。 3、根据单片机定时器工作方式,如何选择好的工作方式?在长时间 定时中,如何提高定时精度?
delay10ms(); beep=0; delay10ms(); beep=1; j=_crol_(k,1); k=j; P1=j; } }
//后面要用到它里面的_crol_(k,l)函数这个函数的意思是把一 个字符变量 k 循环左移 l 位,关于它的说明请查看安装 KEIL 目录下的\Keil\C51\HLP 文件夹里面的 c51lib,这个文件里面 有各种用 C 语言封装好的函数库,我们在以后使用其中某些函 数时可以直接使用而自己不必再写。 //定义四个字符变量 // 定义蜂鸣器的接口 //延时子程序,大约延时 10ms
【硬件电路】
【程序代码】
#include <reg52.h> sbit BY1=P3^4; unsigned char count; unsigned char temp; unsigned char a,b; void delay10ms(void) {
unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } key() {
//显示函数
{
dula=0; P0=table[sh_c];
//显示十位
dula=1;
dula=0;
wela=0;
P0=0xfe;
wela=1;
wela=0; delay(5);
//亮 5ms
P0=table[g_c];
//显示个位
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0; delay(5);
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};
void delay(uchar i)
/t;0;j--)
for(k=125;k>0;k--);
} void display(uchar sh_c,uchar g_c)
}
} move()
//广告灯向下移动移动函数
{ a=temp<<count;
//这三句为一个循环移位,相当于前面提到的
b=temp>>(8-count); // _crol_()函数,这里是自己写的过程,大家可对比
P1=a|b; //下。
}
main()
{ count=0;
//初始化参数设置
temp=0xfe;
//显示部分。至于时间大概是多少
{
//请用户用软件仿真看时间约等于 1 秒
display(A1,A2);//便可,如果需要精确定时请用定时器
相关文档
最新文档