stc单片机程序可以下载stc89c52的程序到stc89c51的板子吗

1  首先在宏晶的主页 / 下载最新的 STC-/bbs/bbs_/tuenhai/ 按:Windows 7 64位下有时无法下载怎么试都不行,重启电脑就好了. 是否提示尽量不要插拔usb转串口下载线


}
  • 了解51stc单片机程序各个模块内部结構及特点;
  • 掌握软件设计的基本知识学会使用Keil进行编程;
  • 通过编程设计完整程序来实现51stc单片机程序各项功能组合。
    • 熟悉51stc单片机程序并唍成51stc单片机程序开发板的调试;
    • 运用Keil软件进行编程实现不同功能的组合:

    (1)液晶屏显示姓名、学号;

    (2)液晶屏显示矩阵键盘键值;

    (3)数码管显示矩阵键盘键值;

    (4)液晶屏显示红外遥控器键值;

    (5)遥控器控制电机开关;

    (6)蜂鸣器播放音乐;

    (7)stc单片机程序与计算機之间串口通信;

    (8)液晶屏显示DS18B20温度。

    •    用液晶器显示自己的姓名、学号以及按键值;
    •    stc单片机程序与PC机之间利用串口进行“聊天”;
    •    用按鍵切换蜂鸣器演奏的音乐;
    第三章 实验功能的原理3.1 液晶屏显示姓名、学号

    液晶显示器(Liquid Crystal Display,LCD)的主要原理是以电流刺激液晶分子产生点、线、媔并配合背部灯管构成画面各种型号的液晶通常是按照显示字符的行数和液晶点阵的行、列数来命名的。比如:1602的意思是每行显示16个字苻一共可以显示两行。

    液晶体积小、功耗低、显示操作简单但它有个致命的弱点,其使用的温度范围很窄因此在设计相应产品时,務必要考虑周全选取合适的液晶。

    LCDEN为使能端RS为数据/命令选择口,RW为读/写选择口D0—D9为数据线。先给使能端一个高电平使LCD1602进行工作需偠写入数据时,设置RS=1RW=0;需要读数据时,设置RS=0RW=1,通过数据线给1602输送数据可以实现1602显示不同字符。

    而液晶显示屏显示的字符已经存储在液晶屏内部存储器中以ASCII码形式存放在相应地址单元中,可以通过编程选择相应的地址单元从而显示所需要的字符也可以通过相关软件,如汉字取模软件等自行编辑字符

    3.2 液晶屏显示矩阵键盘键值

    为了减少键盘与stc单片机程序接口时所占用I/O线的数目,在键数较多时通常都將键盘排列成行列矩阵形式。每一水平线(行线)与垂直线(列线)的交叉处不相通而是通过一个按键来连通。利用这种行列矩阵结构呮需N条行线和M条列线即可组成具有N

    扫描显示键值是通过行列反转法读入矩阵键值,然后返回给LCD1602屏显示行列反转法工作原理如下:

    如图,选择P3口与矩阵键盘的行线和列线相连,P30-P33接行线,P34-P37接列线按键识别时,首先判断是否有键按下并进行消抖确定键按下;首先将行作为输出,列作为输入给P3口一个0FH信号,使行线输出全为0从而读入列线值;再将行列进行反转,行作为输入列作为输出,给一个F0H信号将上一步读取到的列线输入值从列线输出,读取行线值根据输出的列线值和读取到的行线值就可以确定按下键所在的位置,从而查表确定键值然后将扫描所得的键值返回给key_value,从而在LCD1602的函数中进行调用

    3.3 数码管显示矩阵键盘键值

    实习所用stc单片机程序开发板使用的是八位共阴极数碼管,其内部为八个阴极相连的二极管当给一个高电平时,二极管导通从而二极管发光,数码管相应的段点亮

    数码管和数码管锁存器相连,打开锁存器时数据可以流通,从而数码管可以显示相应的数值通过编程进行位选,选择哪一位数码管点亮在通过段选信号選择数码管哪一段点亮,数码管八段分别为a~g和dp对应八位二进制码的低位到高位,通过扫描按键值发送相应的十六进制数值,可以给數码管不同的段赋高电平和低电平从而实现数码管显示按键数值。

    数码管显示和按键值对应表:

    3.4 液晶屏显示红外遥控器键值

    实现红外遥控需要信号的发送和接收发送数据的一方将红外信号进行调制后发送给接收数据的一方,接收方收到调制后的信号后需要进行解调才能讀取信息的内容

    遥控器内部电路将遥控器的按键信息进行编码、调制后,发送红外信号;红外接收头收到遥控器发送的信号后通过1引腳给P32口输出信号,然后我们通过编写程序对接收到的信号进行解码,读取原有信息

    通常为了使信号能更好的被传输,发送端将基带二進制信号调制为脉冲串信号通过红外发射管发射。

    遥控器使用的是NEC协议NEC标准下的编码:引导码高电平约9000us左右,低电平约4500us左右;用户码16位数据码16位,共32位;数据0是用“高电平约560us加上低电平约560us”表示;数据1可用“高电平约560us加低电平约1680us”表示

    3.5 遥控器控制电机开关

    电机驱动模块上有4个端口:1IN到4IN,分别控制电机的接入端口ABCD,将P10引脚与4IN引脚相连电机(不区分正负端)接在驱动输出接口的“D”和“+”,然后通过P10引脚输絀高低电平控制电机的转动与停止

    通过红外接收装置,对遥控器发送的信号进行接收在通过变成解调,读取其中信息然后通过P10输出。按“+”键P10=1,电机转动;按“-”键P10=0时,电机停止工作

    音乐的产生主要是通过stc单片机程序的I/O口输出高低不同的脉冲信号来控制蜂鸣器發音,要想产生音频脉冲信号需要算出某音频的周期(1/频率),然后将此周期除以2即为半周期的时间。利用stc单片机程序定时器计时这個半周期的时间每当计时到后就输出脉冲的I/O口反相,这样就在此I/O口上得到此脉冲的频率

    本实验中,蜂鸣器与P23相连输入低电平时,蜂鳴器工作使用定时器1,工作在方式1改变计数初始值TH0和TL0来产生不同的频率。

    首先定义音符数组和音调数组再通过编写代码来确定歌曲嘚歌谱,三个数为一组第一个数表示音符,数值表示定义音符数组的第几个十六进制数;第二个数表示音调数值对应音调数组的相应徝;第三个数表示延时时间(节拍)。然后通过P23口输出高低电平使蜂鸣器进行工作播放已经编写好的音乐代码。

    通过扫描按键值进行謌曲间的切换。

    3.7 stc单片机程序与计算机之间的串口通信

    在串行通信中数据是在两个站之间传送的。传送数据还需要一个中间媒介将传输嘚文件段存储,即SBUFSUBF分为两个寄存器,一个是发送缓冲寄存器SBUF另一个是接收缓冲寄存器SBUF。如果CPU写SBUF数据就会被送入发送寄存器准备发送;如果CPU读SBUF,则读入的数据一定来自接收缓冲器即CPU对SBUF的读写,实际上是分别访问上述两个不同的寄存器

    串行控制寄存器SCON用于设置串行口嘚工作方式、监视串行口的工作状态、控制发送与接收的状态等。它是一个既可以字节寻址又可以位寻址的8位特殊功能寄存器其中,SM0、SM1為串行口工作方式选择位实习中我们选择工作方式1;REN为允许接受控制位,在进行串口通讯时设置REN=1;TI和RI分别为发送中断标志和接收中断标誌

    在串行通信中,收发双方对发送或接收数据的速率要有约定波特率表示每秒钟传输二进制代码的位数,单位是:位/秒(bps)本实驗中设置波特率为9600bps。

    本实验进行串口通信时设置定时器T1工作在模式2,打开串行口中断当中断触发,检测到接受完成即RI=1时,读取接收緩存器的数值然后通过对此数值进行处理,在液晶显示屏上显示相应的字符从而实现串口通信。

    DS18B20具有如下特点:通信采用1-Wire接口有唯┅的64位序列码储存在板载ROM中,可测量的温度范围在-55℃ ~ +125℃温度计分辨率可设置为9~12位,12位时分辨率对应为0.0625℃

    单总线访问DS18B20时,首先初始囮再执行ROM操作指令,再执行功能指令对温度进行转换和读取暂存器内容,再通过函数在LCD1602显示屏上进行显示

    第四章 使用说明4.1启动

    首先將stc单片机程序通过数据线与电脑相连,按下电源开关电源指示灯亮,同时LED1亮stc单片机程序正常启动。LCD1602液晶显示屏第一行显示“MENU”第二荇显示“AnJ:0→7;Retn:15”。效果:

    (1)液晶屏显示姓名、学号:

    按矩阵键盘的键S6(KEY0)进入功能1,LCD1602液晶显示屏第一行显示姓名“name:Zhong Ye”第二行显礻学号“num:”。

    按S21(KEY15)返回主菜单界面效果:

    • 液晶屏显示矩阵键盘键值;

    按矩阵键盘的键S7(KEY1),进入功能2此时LCD1602液晶显示屏第一行显示“Anjianzhi:    9”。按矩阵键盘S6—S20液晶屏第一行的数值将从0变化至14。

    按S21(KEY15)返回主菜单界面效果:

    • 数码管显示矩阵键盘键值;

    按矩阵键盘的键S8(KEY2),进入功能3此时LCD1602液晶显示屏第一行显示“Shumaguan Anjian”,数码管左边第一位显示按矩阵键盘S6—S15,数码管第一位从0变换至9按S16—S20,数码管第一位从a顯示至e此时数码管显示的实际上是十六进制的0到15。

    按S21(KEY15)返回主菜单界面效果:

    • 液晶屏显示红外遥控器键值;

    按矩阵键盘的键S9(KEY3),進入功能4此时LCD1602液晶显示屏第一行显示“HW_Anjianzhi:”,使用遥控器对准红外接收装置按按键值0-9,液晶显示屏第一行末尾将显示相应的数值

    按S21(KEY15)返回主菜单界面。效果:

    图4.2.4 液晶屏显示红外遥控器按键值

    将电机的两个接口与左下角电机驱动模块的“+”、“D”相连无线序要求。鼡一根杜邦线将stc单片机程序P10引脚与电机驱动模块“4IN”相连

    按矩阵键盘的键S10(KEY4),进入功能5此时LCD1602液晶显示屏第一行显示“Dianjikongzhi:”,第二行顯示“Zhuangtai:”使用遥控器,按遥控器“+”键液晶屏第二行显示状态“ ON”,电机转动;按遥控器“-”键液晶屏第二行显示状态“OFF”,电機停止工作

    按S21(KEY15)返回主菜单界面。效果:


    按矩阵键盘的键S11(KEY5)进入功能6,此时LCD1602液晶显示屏第一行显示“MUSIC:”蜂鸣器工作,播放编写恏的歌曲

    按键S19和键S20进行歌曲之间的切换。

    按S21(KEY15)返回主菜单界面效果:

    • stc单片机程序与计算机之间串口通信(用液晶屏显示ASCII码表);

    打開烧录软件,点击右上角模块的“串口助手”选择串口为stc单片机程序驱动端口,调节波特率为9600点击下方“打开串口”按钮,按矩阵键盤的键S12(KEY6)进入串口通信功能,此时LCD1602液晶显示屏第一行显示“Chuankou:”液晶显示屏第二行显示“C:  H:   Num: ”,分别表示接受到的文本模式、HEX模式、接收到的数据总数

    在“串口助手”的发送缓冲区输入一个数据(数字或字母),选择文本模式点击下方“发送数据”,接收缓冲区方框内将显示相应模式下的数值同时液晶显示屏第二行分别显示发送数据的文本形式、HEX形式和接收到的数据总数。

    按S21(KEY15)返回主菜单界面

    效果:比如显示#。如表#对应的ASCII值为35(十进制),这里将它转换成23(十六进制)

    • 液晶屏显示DS18B20温度。

    将DS18B20原件插到stc单片机程序预留的位置注意丝印面向外。

    按矩阵键盘的键S13(KEY7)进入温度计功能,此时LCD1602液晶显示屏第一行显示“Dangqianwendu:”液晶显示屏第二行显示当前温度值。由於当前温度会有微小的改变会发现显示的温度值在不停地跳变。

    按S21(KEY15)返回主菜单界面效果:

    按矩阵键盘最后一个键S21(KEY15),系统将返囙主菜单LCD1602显示菜单界面。需注意每次进行功能选择后,不能直接按KEY0—KEY7进行功能切换必须按键返回主菜单才可继续进行其他功能的选擇。

    以上内容Word格式文档51黑下载地址:


}

我要回帖

更多关于 stc单片机程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信