单片机演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。半个周期的时间是多长呢?众所周知,周期为频率的倒数
这个题目用51单片机的汇编语言来做,实际上是进行两个字节的BCD码的减法。列出竖式如下: 07 04H - 00 44H -------------- 06 60H由于51单片机的特点,BCD码的减法,必须要用加法进行,方能进行“十进制
;----------------------------------------------------------------------------------------P1口外接4×4按键, 常用的读出键值的方法有“查表法”和“反转法”。查表法的程序最为简短,但是稍多占用
问题:书上说的,要测P1口引脚电平,需要让对应的引脚先置位,比如测P1.0口: ORL P1, #01H ;先置位 MOV C, P1.0 ;再读接口既然给P1口数据可以产生电平的话,那先置位再测还有什么用,那不明摆着变成高
单片机的 P4.0,P2.0--P2.6 这几个 IO 上面接一个 4*4 的键盘。这里P4.0是最低位,P2.6是最高位。一个按键接在同一个端口上 很好操作的,但是这些 IO 在两个端口上面。这些端口不连续应该咋写键盘程序
通过矩阵键盘输入,并显示在一位数码管上。#include#define uint unsigned int#define uchar unsigned charsbit duanx = P2^6;sbit weix = P2^7;uchar key, k_tmp, view;uchar show[] = { 0x3f,0x06,0
要求:上电灯不亮,按一下按键灯亮,再按一下灯闪烁,再按一下灯闪烁更快,再按一下灯灭...。如此循环。为此,编程如下。//----------------------------------------------#includeunsigned char n =
51单片机,要求用 8 位数码管动态显示 12 位学号。还要用按键调整走动速度,C语言的。//-------------------------------------------#include #include sbit k_add = P3^1;sbit k_sub = P3^4;//------
遇到的问题如下:第二个数码管不亮,电平跳变都是对的。如果在中断的P1,P2赋值那一块加上死循环两个数码管就都能亮了,但是不能时刻测电压值了,纠结。道编程如下: #includeunsigned char tab[16] =
要求:P1.0输出周期为2ms的方波,P1.1输出5ms的方波,占空比都为1:1.(高低电平一样的)。晶振频率为24MHz。(使用T0和T1两个定时计数器)汇编或C都行。编程如下://================================
要求:使用4×4矩阵键盘,由 P0 经过 164 驱动数码管显示按键值,并发音。用PROTEUS仿真运行时的屏幕截图如下://电路说明如下。//单片机:使用51系列兼容的即可;//4×4矩阵键盘:接在P1口;//一位数码
//有个题目,要求顺序按下四个按键。//如果不按照指定的次序来按,将显示出错误提示。//要求如下://第一次、SW1 按住时 D1 亮,松开时 D1 灭(如第一次按的不是 SW1,是SW2、3、4的话,D5 常亮);//第
硬件:74HC164驱动四个数码管,矩阵键盘。设计要求:第一次按按键1显示1- - -、按按键2显示2- - -,以此类推,按1~9都是这样显示。第二次按按键(如果第一次按的是1)(第二次按的是2)显示12-- ;第
;用51单片机控制 2位数码管动态显示 00 ~ 99。;从 00 开始显示,显示数字每隔一段时间加 1,一直到 99,然后回到 00。;从 00 到 10 每隔 100ms 加 1;;从 10 到 20 每隔 200ms 加 1;;其它依此类推;;从
给STC89C51安一个LCD1602液晶显示器。写一段程序,使得STC89C51有计时、显示功能。当给STC89C51一个连续的高电平时,单片机开始计时,同时在显示器上显示计时的秒数;当结束高电平时,计时停止,但是显