; 设计一个智能工件计数系统
;(1)要求模拟生产线上啤酒装箱计数过程,每过一瓶计数一次并通过4位数码管显示当计数到24瓶时声音报警。
;(2)画出硬件连接图,编写软件程序
;此程序应用一位单片爱好者而作,作者: 徐学军
;此程序的显示电路接P1口,74LS47直接接在P1口,74ls47与数码管的具体接法参考数字电路书
;此程序的报警电路接在P3.5,具体电路参考我博客上的音乐采灯程序电路
;此程序的P3.3接光电对管电路
;此程序在硬件上模拟调试通过
;2007-7-16
speaker bit p3.5 ;接报警电路
ORG 0000H
AJMP START
ORG 001BH ;T1中断入口地址
AJMP INT_T1
ORG 0040H
START:
MOV SP,#60H
MOV TMOD,#15H ;置T1为方式1
;置T0为方式1,计数方式,
MOV TL0,#0H ;计数器清零
MOV TH0,#0H
MOV TL1,#21H ;定时器报警音频常数
MOV TH1,#0F9H
SETB TR0 ;启动T0
SETB ET1
SETB EA ;开中断
loop:
MOV a,TL0 ;保存计数值
lcall display ;调用显示子程序
jz loop
clr tr1 ;不管满不满24瓶,每次开始计第一瓶,就关报警
mov b,#24
div ab
mov a,b
jz loop1
sjmp loop
loop1:
MOV TL0,#0H ;计数器清零
MOV TH0,#0H
setb tr1 ;满24瓶发声
SJMP loop
INT_T1:
MOV TL1,#21H ;定时器报警音频常数
MOV TH1,#0F9H
cpl speaker
reti
display:
mov p1,a
;;; 显示子程序
;;;
ret
END
关键字:51单片机 模拟生产线 计数过程 报警程序
引用地址:
基于51单片机的模拟生产线上啤酒装箱计数过程与报警程序
推荐阅读最新更新时间:2024-03-16 14:34
C51单片机 串口通信RX&TX
画图 最简单的串口通信代码 *难解释。没了解单片机内部怎么运行,可能看不懂 * #include reg52.h #include stdio.h sbit led=P1^0; void initUart()//最最最基本的 *串口通信初始化* 要熟记 { //首先来个定时器1工作方式2//0010 0000 TMOD = 0x20; TH1 = 0xfd;//波特率9600/晶振11.0592Mhz TL1 = 0xfd; TR1=1; //串口工作方式1为最常用0101 0000 SCON=0x50; //打开总中断 EA=1; //允许串口中断 E
[单片机]
51单片机闪烁流水灯
是51单片机的,利用定时器/计数器产生2秒定时,每当2秒到时候更换指示灯闪烁,指示灯闪烁频率为0.2秒(要用延时程序)。 -------- 做而论道的回答: 这个题目,又要用定时器,又要用延时程序,... 其实,各种定时要求,只需使用一个定时器,就都可以解决。 ;假设在 P0 口外接 8 个 LED,输出低电平时发光。 ;下面程序,已经通过了实验,符合题目的流水灯闪烁要求. ;------------------------------------------ ORG 0000H LJMP START ORG 000BH MOV TH0, #4CH ;50ms@11.
[单片机]
51单片机的串口通信详解-原理 寄存器 编程等
单片机的通信一般有并行通信和串行通信。并行通讯是数据的各位同时发送或接收,并行通信控制简单,传输速度快,传输线较多。 参看下图: 串行通讯传输线少,可利用电话网,但传送控制复杂。数据一位一位顺序发送或接收。 串行通讯中有一种是异步通信,即我们通常所说的串口通信。这是我们今天要分享的内容: 异步通讯用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。 一、在异步通讯中,CPU与外设之间必须有两项规定,即字符格式和波特
[单片机]
基于C51单片机的MP3播放器设计
0 引言 便携式MP3播放器作为一种集音频播放、数据存储为一身的数码产品,其功能结构为电子设计人员所津津乐道。MP3是MPEG一1音频III(1ayerIII)的简称。MPEG一1音频(ISO/IECll 172—3)是目前普遍应用的音频压缩标准,其中层III的算法最为复杂,但压缩比最大,效果也最好,在低码率的条件下基本能达到CD的音质效果。MP3标准用尽可能低的码流实现CD音质的声音而不会产生数据损失。如果对于一段声音不进行压缩的话,那么每存储一秒钟的立体声CD音质音乐必须用1.4Mbit,这是个十分大的开销。通过运用MPEG音频标准的压缩技术,我们可以把存储空间压缩到原来的1/12而不会降低声音的音质。即使使用1/24的压
[单片机]
51单片机AD模数转换学习板基本原理
1.功能 AD模数转换学习板的核心lC使用的是8路8位AD转换器ADC0809芯片,该板可以测量8路0~5V的电压值,并在四位LED数码管上轮流显示或单路选择显示,测量最小分辨率为O.019V,测量误差为0.02V,我们可以将其做成多路数字电压表。 2.基本原理 ADC0809是采样频率为8位的、以逐次逼近原理进行模一数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个模拟输入信号中的一个进行A/D转换。 ADC0809对输入模拟量要求为信号单极性,电压范围是0~5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则
[单片机]
51单片机实现主机的串口收发
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200720 ---- @ModifiedTime: 20200720 ----
[单片机]
ARMLinux(mini2440)串口与51单片机的9位串口通讯
当51单片机的串口模式在方式2或方式3时为9位通讯方式,即当串行数据第9位为 1 时,前8位数据指示的是用来和主机通讯的从机地址;当串行数据第9位为 0 时,前8位数据则用为真正的数据。具体请参考: https://www.eeworld.com.cn/mcu/2011/0621/article_4424_1.html 而FriendlyARM的mini2440可以设置的数据位数为5~8位,即CS5,CS6,CS7,CS8。关于Linux串口的编程教学请参见: http://www.adamjiang.com/pukiwiki/index.php?Linux串口编程详解#ec39e271 查阅了一下前人的做法,有两种:1.硬方
[单片机]
教你构造一个51单片机的实时操作系统
目前,大多数的产品开发是在基于一些小容量的单片机上进行的。51系列单片机,是我国目前使用最多的单片机系列之一,有非常广大的应用环境与前景,多年来的资源积累,使51系列单片机仍是许多开发者的首选。针对这种情况,近几年涌现出许多基于51内核的扩展芯片,功能越来越齐全,速度越来越快,也从一个侧面说明了51系列单片机在国内的生命力。 多年来我们一直想找一个合适的实时操作系统,作为自己的开发基础。根据开发需求,整合一些常用的嵌入式构件,以节约开发时间,尽最大可能地减少开发工作量;另外,要求这个实时操作系统能非常容易地嵌入到小容量的芯片中。毕竟,大系统是少数的,而小应用是多数而广泛的。显而易见,μC/OS—II是不太适合于以上要求的
[单片机]