⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 baudrate.cpp

📁 大学微型计算机接口技术实验源代码,直接就可以运行,包含了C++和asm代码,比较前面.
💻 CPP
字号:

//*------------------------------------------------------*/
//*    Cexp6.cpp(波特率时钟发生器接口实验)                 */
//*    波特率时钟发生器程序Source File                     */
//*    Copyright (c) 2001 by HUST                        */
//*------------------------------------------------------*/
#include <conio.h>     //kbhit();
#include <stdio.h>     //printf();

//定时常数数组
int tc_table[8]={
	678,	// 0=110bps
	497,    // 1=150b/s
	249,    // 2=300b/s
	124,    // 3=600b/s
	62,     // 4=1200b/s
	31,     // 5=2400b/s
	16,     // 6=4800b/s
	8      // 1=9600b/s
};

void main()
{
	int getvalue=0;
	int temp=-1;
	int sendhigh=0;
	int sendlow=0;

	outportb(0x307,0xb6);	//init 8253	
	outportb(0x303,0x80);	//init 8255
	outportb(0x303,0x0c);	//close 8253???

	for(;;)
	{
		clrscr();
		printf("please select baudrate\n 0---110\n 1---150\n 2---300\n 3---600\n 4---1200\n 5---2400\n 6---4800\n 7---9600\n");

		getvalue=getch();
		if((getvalue<'0') || (getvalue>'7'))
		{
			if(getvalue==0x1b)//ESC返回
			{
				return;
			}
			printf("\n Input error! try again please! \n");	//error message
			getch();
			continue;
		}
		else
		{
			break;
		}
	}
	temp = getvalue - '0';		
	sendhigh = tc_table[temp] & 0xff00;
	sendlow	= tc_table[temp] & 0x00ff;
	outportb(0x306,sendlow);//装入计数初值低字节
	outportb(0x306,sendhigh);//装入计数初值高字节

	printf("\n Now begin to generate baud-rate's clk! \n Hit ESC to quit!\n"); //提示信息
	outportb(0x303,0x0d);//使PC6=1,启动8253,产生波特率时钟

	
	for(;;)
	{
		if(kbhit())
		{
			if(getch()==0x1b)//检测是否是Esc键
			{
				outportb(0x303,0x0c);	//关闭8253
				return;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -