摘要:要想实现人机交互,显示装置是不可缺少的。前面讲到了如何利用单片机控制数码管的显示,这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示的定时器搬到液晶屏上来。这里用到的液晶为LCD1602,能够同时显示16x02即32个字符(16列2行)。1602液晶模块内部的字符发...
阅读全文
摘要:上篇文章主要是关于串口通信中单片机部分的程序编写。在实际应用中,常常还要有上位机的配合才能完成工作。写串口通信的上位机程序,常常应用的编程语言有C++,VB,C#等。VB没有学过,C++编写窗口应用程序接触也不多,暑假自己看了一些C#的书,也有了一些了解,所以就用C#写窗口应用程序,用来作上位PC机的串口通信程序。在写的过程中,主要参见了这篇博客http://blog.csdn.net/wuyazhe/article/details/5598945,感谢这位博主。C#中的串口通信编程主要用到了SerialPort类,它位于命名空间System.IO.Ports下,所以在程序开始要包含这个命名空
阅读全文
摘要:上一篇文章主要罗列了一些编写串口通信必要的知识点。在具体的编程中,还有很多要注意的地方。下面的程序的主要功能为:通过串口调试助手向51单片机发送一个字母,单片机接收后,在数码管上显示这个字母,并将这个字母反向显示到串口调试助手的界面里。51单片机的头文件中已经定义了串口缓冲区等一系列特殊功能寄存器,打开头文件就可以找到下面这样的定义:sfr SCON = 0x98;sfr SBUF = 0x99;等等。首先新建立一个头文件,将程序中要用到的变量和函数声明写进去:#include <reg52.h>#include <ctype.h>#define uchar unsig
阅读全文
摘要:单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。一.51单片机的串行通信管脚P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传...
阅读全文
摘要:用51单片机的定时器0的方式1计时,结果用4位数码管显示,分别为秒十位,秒个位,毫秒百位,毫秒十位。所以总共最大计时为1分钟,精确到了0.01s。同时,加上3个独立按键,分别控制秒表的清零,暂停和开始功能。 按照模块化的思想,首先先把要用的函数和预定义写到一个头文件中,要用到的预定义和全局变量如下...
阅读全文
摘要:这几天打算好好开始看郭天祥的单片机视频,自己也写了一个独立键盘的51单片机程序,开发环境为Keil C51。刚开始看,功能并不是很复杂,由51单片机的P1^7口接LED灯,P0口作为6位数码管的位选线和段选线,6位数码管每次显示相同的数字。位选和段选的控制由P2^7,P2^6口。按键只有一个,一端与...
阅读全文