基于单片机30mv和300v量程的电压表仿真设计

本文介绍了如何通过编程操控ADC0832进行数字管显示,并配以1ms延时函数,适用于电子硬件和嵌入式开发。涉及段选和位选定义,以及串行协议应用实例。

百度网盘下载地址(964):点击下载

#include <reg52.h>
#define uchar	unsigned char
#define uint	unsigned int
#include <intrins.h>


/* 数码管段选定义      0     1    2    3    4    5	6	 7	  8	   9 */
uchar code smg_du[] = { 0x28, 0xee, 0x32, 0xa2, 0xe4, 0xa1, 0x21, 0xea, 0x20, 0xa0,
			0x60, 0x25, 0x39, 0x26, 0x31, 0x71, 0xff };     /* 断码 */
/* 数码管位选定义 */
uchar code	smg_we[] = { 0xef, 0xdf, 0xbf, 0x7f };
uchar		dis_smg[8] = { 0 };
uchar		smg_i = 4;                                              /* 显示数码管的个位数 */

sbit	SCL	= P2 ^ 2;                                               /* SCL定义为P1口的第3位脚,连接ADC0832SCL脚 */
sbit	DO	= P2 ^ 3;                                               /* DO定义为P1口的第4位脚,连接ADC0832DO脚 */
sbit	CS	= P2 ^ 0;                                               /* CS定义为P1口的第4位脚,连接ADC0832CS脚 */
sbit	key_30	= P0 ^ 7;
sbit	key_300 = P0 ^ 6;

uint p1[9];

bit flag = 1;


/***********************1ms延时函数*****************************/
void delay_1ms( uint q )
{
	uint i, j;
	for ( i = 0; i < q; i++ )
		for ( j = 0; j < 120; j++ )
			;
}


/***********读数模转换数据********************************************************/
/*
 * 请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
 *  1  1  0 通道
 *  1  1  1 通道
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值